Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

windev et les bases sql

14 réponses
Avatar
Jacques TREPP
Bonjour,
juste une question concernant les bases de type sql (postgresql, mysql, etc)
ces bases n'acceptent pas des colonnes tableau, contrairement à HF.
Dans le cas de logiciels de gestion, c'est très pratique (hors taxes, tva,
familles, etc.)

je me retrouve avec des déclarations de tables du genre :
base_exo numeric(10,2) NOT NULL DEFAULT 0,
base_ht1 numeric(10,2) NOT NULL DEFAULT 0,
base_ht2 numeric(10,2) NOT NULL DEFAULT 0,
base_ht3 numeric(10,2) NOT NULL DEFAULT 0,
base_ht4 numeric(10,2) NOT NULL DEFAULT 0,
taux_tva1 numeric(10,2) NOT NULL DEFAULT 0,
taux_tva2 numeric(10,2) NOT NULL DEFAULT 0,
taux_tva3 numeric(10,2) NOT NULL DEFAULT 0,
taux_tva4 numeric(10,2) NOT NULL DEFAULT 0,
tva_tva1 numeric(10,2) NOT NULL DEFAULT 0,
tva_tva2 numeric(10,2) NOT NULL DEFAULT 0,
tva_tva3 numeric(10,2) NOT NULL DEFAULT 0,
tva_tva4 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise1 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise2 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise3 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise4 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise5 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise1 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise2 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise3 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise4 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise5 numeric(10,2) NOT NULL DEFAULT 0,

On peut bien sur utiliser un varchar, et écrire tous les chiffres
(verschaine) avec un séparateur genre pipe '|', et décompacter à la lecture.
c'est ce que je fais avec des chaines, mais ça m'embête avec des chiffres.

Comment faites-vous, sachant que l'indirection ne fonctionne pas :
avec sqlmanagerX, l'indirection : {"ETFAC:m_mt_remise"+1} n'est pas reconnue
?

Merci

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)

10 réponses

1 2
Avatar
Gilles
Jacques TREPP avait soumis l'idée :
Bonjour,
juste une question concernant les bases de type sql (postgresql, mysql, etc)
ces bases n'acceptent pas des colonnes tableau, contrairement à HF.
Dans le cas de logiciels de gestion, c'est très pratique (hors taxes, tva,
familles, etc.)



On fait des tables séparées.
Je n'ai jamais utilisé ces tableaux hyperfile parce que ce n'est pas
standard justement.

Et je m'en suis félicité quand j'ai eu à transférer des données vers
d'autres bases ;)
Avatar
Firetox
Bonjur, jacques

j'utilise aussi des tables liées :
- pas de probleme de d'indirection sur les colonnes
- je peux mettre plus de 10 valeur sans modifier l'analyse
- les elements n'ayant pas 10 lignes n'occupe pas d'espace sur la base
bref que des avantages et en plus cela devient plus simple en programmation

sinon l'inderction fonctionne mais pas en externe
tu peux faire {":nomMembre"} = "Toto" dans la classe mais pas a l'exterieur

bon dev
@+

"Jacques TREPP" a écrit dans le message de news:
48e333d5$0$312$
Bonjour,
juste une question concernant les bases de type sql (postgresql, mysql,
etc)
ces bases n'acceptent pas des colonnes tableau, contrairement à HF.
Dans le cas de logiciels de gestion, c'est très pratique (hors taxes, tva,
familles, etc.)

je me retrouve avec des déclarations de tables du genre :
base_exo numeric(10,2) NOT NULL DEFAULT 0,
base_ht1 numeric(10,2) NOT NULL DEFAULT 0,
base_ht2 numeric(10,2) NOT NULL DEFAULT 0,
base_ht3 numeric(10,2) NOT NULL DEFAULT 0,
base_ht4 numeric(10,2) NOT NULL DEFAULT 0,
taux_tva1 numeric(10,2) NOT NULL DEFAULT 0,
taux_tva2 numeric(10,2) NOT NULL DEFAULT 0,
taux_tva3 numeric(10,2) NOT NULL DEFAULT 0,
taux_tva4 numeric(10,2) NOT NULL DEFAULT 0,
tva_tva1 numeric(10,2) NOT NULL DEFAULT 0,
tva_tva2 numeric(10,2) NOT NULL DEFAULT 0,
tva_tva3 numeric(10,2) NOT NULL DEFAULT 0,
tva_tva4 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise1 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise2 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise3 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise4 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise5 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise1 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise2 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise3 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise4 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise5 numeric(10,2) NOT NULL DEFAULT 0,

On peut bien sur utiliser un varchar, et écrire tous les chiffres
(verschaine) avec un séparateur genre pipe '|', et décompacter à la
lecture.
c'est ce que je fais avec des chaines, mais ça m'embête avec des chiffres.

Comment faites-vous, sachant que l'indirection ne fonctionne pas :
avec sqlmanagerX, l'indirection : {"ETFAC:m_mt_remise"+1} n'est pas
reconnue ?

Merci

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)


Avatar
Roumegou Eric
Gilles a formulé la demande :
Jacques TREPP avait soumis l'idée :
Bonjour,
juste une question concernant les bases de type sql (postgresql, mysql,
etc)
ces bases n'acceptent pas des colonnes tableau, contrairement à HF.
Dans le cas de logiciels de gestion, c'est très pratique (hors taxes, tva,
familles, etc.)



On fait des tables séparées.
Je n'ai jamais utilisé ces tableaux hyperfile parce que ce n'est pas standard
justement.

Et je m'en suis félicité quand j'ai eu à transférer des données vers d'autres
bases ;)



Tout juste ! Je ne veux pas de ça dans mes tables.
Mes tables résultats sont paramétrables et certaine peuvent contenir
jusqu'à 50 valeurs.
Quel est le probleme avec un ordre sql de dupliquer la ligne et
d'indenter la variable ?
Après les opérateurs d'indirection permettent de faire le traitement en
boucle.

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Moua
Jacques TREPP a couché sur son écran :
Bonjour,
juste une question concernant les bases de type sql (postgresql, mysql, etc)
ces bases n'acceptent pas des colonnes tableau, contrairement à HF.
Dans le cas de logiciels de gestion, c'est très pratique (hors taxes, tva,
familles, etc.)

je me retrouve avec des déclarations de tables du genre :
base_exo numeric(10,2) NOT NULL DEFAULT 0,
base_ht1 numeric(10,2) NOT NULL DEFAULT 0,
base_ht2 numeric(10,2) NOT NULL DEFAULT 0,
base_ht3 numeric(10,2) NOT NULL DEFAULT 0,
base_ht4 numeric(10,2) NOT NULL DEFAULT 0,
taux_tva1 numeric(10,2) NOT NULL DEFAULT 0,
taux_tva2 numeric(10,2) NOT NULL DEFAULT 0,
taux_tva3 numeric(10,2) NOT NULL DEFAULT 0,
taux_tva4 numeric(10,2) NOT NULL DEFAULT 0,
tva_tva1 numeric(10,2) NOT NULL DEFAULT 0,
tva_tva2 numeric(10,2) NOT NULL DEFAULT 0,
tva_tva3 numeric(10,2) NOT NULL DEFAULT 0,
tva_tva4 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise1 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise2 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise3 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise4 numeric(10,2) NOT NULL DEFAULT 0,
taux_remise5 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise1 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise2 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise3 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise4 numeric(10,2) NOT NULL DEFAULT 0,
mt_remise5 numeric(10,2) NOT NULL DEFAULT 0,

On peut bien sur utiliser un varchar, et écrire tous les chiffres
(verschaine) avec un séparateur genre pipe '|', et décompacter à la lecture.
c'est ce que je fais avec des chaines, mais ça m'embête avec des chiffres.

Comment faites-vous, sachant que l'indirection ne fonctionne pas :
avec sqlmanagerX, l'indirection : {"ETFAC:m_mt_remise"+1} n'est pas reconnue
?

Merci



Bonjour,

Comme tout le monde, j'utilise des tables liées.

Pas de problème si l'on doit avoir plus d'item que l'indice maximun
prévu dans l'analyze. (On aura toutjours un cas où la dimention du
tableau est trop petite).

Utilisation plus souple des données, surtout dans les états, et dans
les requêtes.

Utilisation plus écologique de l'espace disque (pas de valeurs
inutilements stockées).

De plus, pour moi, plus la taille de l'enregistrement d'une table est
petit mieux on se porte.

Et pas de problème de comptabilité entre SGBDR.
Avatar
Jacques TREPP
"Firetox" a écrit dans le message de
news:48e3396a$0$6891$
Bonjur, jacques

j'utilise aussi des tables liées :
- pas de probleme de d'indirection sur les colonnes
- je peux mettre plus de 10 valeur sans modifier l'analyse
- les elements n'ayant pas 10 lignes n'occupe pas d'espace sur la base
bref que des avantages et en plus cela devient plus simple en
programmation

sinon l'inderction fonctionne mais pas en externe
tu peux faire {":nomMembre"} = "Toto" dans la classe mais pas a
l'exterieur

bon dev
@+




Bonjour Frederic,

je comprend ... et je bute sur la réalisation.
Admettons que je crée une table tva_factures dont les colonnes seraient :
id_auto, id_facture, baseht, taux_tva, montant_tva
je peux aller jusqu'à 5 taux de tva :
0 % -> exonéré
2 % -> taux spécial Corse
8% -> taux spécial Corse
5,5 % -> bien connu
19,6% -> encore mieux connu !

Vu que tous les taux ne sont pas utilisés dans la même facture, il faut que
j'ajoute unc colonne id_tva pour retrouver mes petits.
Sachant que le taux 0 qui n'existe pas sera codé à 0 (id_tva =0).
Dans ce cas, ce serait jouable en utilisant une table mémoire cachée:
select id_tva, id_auto, id_facture, baseht, taux_tva, montant_tva from
tva_factures where id_facture = x
suivi d'un pgsql;mysqltable(nreq,tablemémoire)

Est-ce que je vais bien dans le bon sens ?

Merci pour vos conseils

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Avatar
Moua
Jacques TREPP a couché sur son écran :
"Firetox" a écrit dans le message de
news:48e3396a$0$6891$
Bonjur, jacques

j'utilise aussi des tables liées :
- pas de probleme de d'indirection sur les colonnes
- je peux mettre plus de 10 valeur sans modifier l'analyse
- les elements n'ayant pas 10 lignes n'occupe pas d'espace sur la base
bref que des avantages et en plus cela devient plus simple en programmation

sinon l'inderction fonctionne mais pas en externe
tu peux faire {":nomMembre"} = "Toto" dans la classe mais pas a l'exterieur

bon dev
@+




Bonjour Frederic,

je comprend ... et je bute sur la réalisation.
Admettons que je crée une table tva_factures dont les colonnes seraient :
id_auto, id_facture, baseht, taux_tva, montant_tva
je peux aller jusqu'à 5 taux de tva :
0 % -> exonéré
2 % -> taux spécial Corse
8% -> taux spécial Corse
5,5 % -> bien connu
19,6% -> encore mieux connu !

Vu que tous les taux ne sont pas utilisés dans la même facture, il faut que
j'ajoute unc colonne id_tva pour retrouver mes petits.
Sachant que le taux 0 qui n'existe pas sera codé à 0 (id_tva =0).
Dans ce cas, ce serait jouable en utilisant une table mémoire cachée:
select id_tva, id_auto, id_facture, baseht, taux_tva, montant_tva from
tva_factures where id_facture = x
suivi d'un pgsql;mysqltable(nreq,tablemémoire)

Est-ce que je vais bien dans le bon sens ?

Merci pour vos conseils



Il faut une table TVA avec un ID et le taux (Pour être plus précis, il
faudrait aussi une notion de date en cas de changement de taux).

Code TVA : Date d'application : Taux
________________________________
0 : 01/01/1998 : 0%
1 : 01/01/1998 : 2%
2 : 01/01/1998 : 8%
3 : 01/01/1998 : 5,5%
4 : 01/01/1980 : 20,6% <----- Changement de taux
4 : 01/01/1998 : 19,6%

Il faut mettre l'ID de la TVA dans la table des lignes de factures.
(Pas le taux)

ID Facture : ID LIGNE : ID TVA : Montant HT ...........
____________________________________________
1 : 1 : 3 : 123 <--- Une ligne à 5,5%
1 : 2 : 4 : 234,50 <--- Une ligne à 19,6%


Il faut une table des entêtes de factures

ID Facture : Date Facture : Id Client ............
_____________________________________________________
1 : 01/10/2008 :


Pour plus de facilité, il faut aussi une table des TVA par facture qui
enregistre le total par ID TVA dans la facture, avec L'ID de la facture
L'ID de la TVA et le total. (On peut avoir plusieurs TVA dans une
facture)

ID Facture : ID TVA : Montant HT : Montant TVA
_______________________________________________
1 : 3 : 123 :
1 : 4 : 234,50 :

Le taux de la TVA 4 est retrouvé avec la date de la facture (plusieurs
taux en cours).

Voili, y'a plus ca !!!!!!!!!!
Avatar
Jacques TREPP
"Moua" a écrit dans le message de
news:gbvnl4$kuo$
Jacques TREPP a couché sur son écran :
"Firetox" a écrit dans le message de
news:48e3396a$0$6891$
Bonjur, jacques

j'utilise aussi des tables liées :
- pas de probleme de d'indirection sur les colonnes
- je peux mettre plus de 10 valeur sans modifier l'analyse
- les elements n'ayant pas 10 lignes n'occupe pas d'espace sur la
base
bref que des avantages et en plus cela devient plus simple en
programmation

sinon l'inderction fonctionne mais pas en externe
tu peux faire {":nomMembre"} = "Toto" dans la classe mais pas a
l'exterieur

bon dev
@+




Bonjour Frederic,

je comprend ... et je bute sur la réalisation.
Admettons que je crée une table tva_factures dont les colonnes seraient :
id_auto, id_facture, baseht, taux_tva, montant_tva
je peux aller jusqu'à 5 taux de tva :
0 % -> exonéré
2 % -> taux spécial Corse
8% -> taux spécial Corse
5,5 % -> bien connu
19,6% -> encore mieux connu !

Vu que tous les taux ne sont pas utilisés dans la même facture, il faut
que j'ajoute unc colonne id_tva pour retrouver mes petits.
Sachant que le taux 0 qui n'existe pas sera codé à 0 (id_tva =0).
Dans ce cas, ce serait jouable en utilisant une table mémoire cachée:
select id_tva, id_auto, id_facture, baseht, taux_tva, montant_tva from
tva_factures where id_facture = x
suivi d'un pgsql;mysqltable(nreq,tablemémoire)

Est-ce que je vais bien dans le bon sens ?

Merci pour vos conseils



Il faut une table TVA avec un ID et le taux (Pour être plus précis, il
faudrait aussi une notion de date en cas de changement de taux).

Code TVA : Date d'application : Taux
________________________________
0 : 01/01/1998 : 0%
1 : 01/01/1998 : 2%
2 : 01/01/1998 : 8%
3 : 01/01/1998 : 5,5%
4 : 01/01/1980 : 20,6% <----- Changement de taux
4 : 01/01/1998 : 19,6%

Il faut mettre l'ID de la TVA dans la table des lignes de factures. (Pas
le taux)

ID Facture : ID LIGNE : ID TVA : Montant HT ...........
____________________________________________
1 : 1 : 3 : 123 <--- Une ligne à 5,5%
1 : 2 : 4 : 234,50 <--- Une ligne à 19,6%


Il faut une table des entêtes de factures

ID Facture : Date Facture : Id Client ............
_____________________________________________________
1 : 01/10/2008 :


Pour plus de facilité, il faut aussi une table des TVA par facture qui
enregistre le total par ID TVA dans la facture, avec L'ID de la facture
L'ID de la TVA et le total. (On peut avoir plusieurs TVA dans une facture)

ID Facture : ID TVA : Montant HT : Montant TVA
_______________________________________________
1 : 3 : 123 :
1 : 4 : 234,50 :

Le taux de la TVA 4 est retrouvé avec la date de la facture (plusieurs
taux en cours).

Voili, y'a plus ca !!!!!!!!!!





Merci,
la table tva, je l'ai : c'est un truc que je connais assez bien, vu que
j'équipe des hôteliers qui, chacun le sait, ont des régimes de tva assez
Rock'nRoll :
tva sur les pensions calculées à 75% au taux 5.5% et 25% au taux 19.6%, le
tout calculé sur le ttc.

Mon souci était la structure de la table factures.
Si je lis bien ton post, tu confirmes ce que préconise plus haut. Pour info,
je stocke le code tva, mais aussi le taux, justement . ça permet en cas de
changement de taux, de pouvoir ré-imprimer une facture au taux en vigueur
lors de sa création.

Merci encore

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Avatar
Emmanuel LECOESTER
"Jacques TREPP" a écrit dans le message de news:
48e333d5$0$312$
Bonjour,
juste une question concernant les bases de type sql (postgresql, mysql,
etc)
ces bases n'acceptent pas des colonnes tableau, contrairement à HF.
Dans le cas de logiciels de gestion, c'est très pratique (hors taxes, tva,
familles, etc.)



OK mais ce n'est pas dans la norme SQL donc... pas portable donc... à éviter
^^
Avatar
Moua
Jacques TREPP a émis l'idée suivante :
"Moua" a écrit dans le message de
news:gbvnl4$kuo$
Jacques TREPP a couché sur son écran :
"Firetox" a écrit dans le message de
news:48e3396a$0$6891$
Bonjur, jacques

j'utilise aussi des tables liées :
- pas de probleme de d'indirection sur les colonnes
- je peux mettre plus de 10 valeur sans modifier l'analyse
- les elements n'ayant pas 10 lignes n'occupe pas d'espace sur la base
bref que des avantages et en plus cela devient plus simple en
programmation

sinon l'inderction fonctionne mais pas en externe
tu peux faire {":nomMembre"} = "Toto" dans la classe mais pas a
l'exterieur

bon dev
@+




Bonjour Frederic,

je comprend ... et je bute sur la réalisation.
Admettons que je crée une table tva_factures dont les colonnes seraient :
id_auto, id_facture, baseht, taux_tva, montant_tva
je peux aller jusqu'à 5 taux de tva :
0 % -> exonéré
2 % -> taux spécial Corse
8% -> taux spécial Corse
5,5 % -> bien connu
19,6% -> encore mieux connu !

Vu que tous les taux ne sont pas utilisés dans la même facture, il faut
que j'ajoute unc colonne id_tva pour retrouver mes petits.
Sachant que le taux 0 qui n'existe pas sera codé à 0 (id_tva =0).
Dans ce cas, ce serait jouable en utilisant une table mémoire cachée:
select id_tva, id_auto, id_facture, baseht, taux_tva, montant_tva from
tva_factures where id_facture = x
suivi d'un pgsql;mysqltable(nreq,tablemémoire)

Est-ce que je vais bien dans le bon sens ?

Merci pour vos conseils



Il faut une table TVA avec un ID et le taux (Pour être plus précis, il
faudrait aussi une notion de date en cas de changement de taux).

Code TVA : Date d'application : Taux
________________________________
0 : 01/01/1998 : 0%
1 : 01/01/1998 : 2%
2 : 01/01/1998 : 8%
3 : 01/01/1998 : 5,5%
4 : 01/01/1980 : 20,6% <----- Changement de taux
4 : 01/01/1998 : 19,6%

Il faut mettre l'ID de la TVA dans la table des lignes de factures. (Pas le
taux)

ID Facture : ID LIGNE : ID TVA : Montant HT ...........
____________________________________________
1 : 1 : 3 : 123 <--- Une ligne à 5,5%
1 : 2 : 4 : 234,50 <--- Une ligne à 19,6%


Il faut une table des entêtes de factures

ID Facture : Date Facture : Id Client ............
_____________________________________________________
1 : 01/10/2008 :


Pour plus de facilité, il faut aussi une table des TVA par facture qui
enregistre le total par ID TVA dans la facture, avec L'ID de la facture
L'ID de la TVA et le total. (On peut avoir plusieurs TVA dans une facture)

ID Facture : ID TVA : Montant HT : Montant TVA
_______________________________________________
1 : 3 : 123 :
1 : 4 : 234,50 :

Le taux de la TVA 4 est retrouvé avec la date de la facture (plusieurs taux
en cours).

Voili, y'a plus ca !!!!!!!!!!





Merci,
la table tva, je l'ai : c'est un truc que je connais assez bien, vu que
j'équipe des hôteliers qui, chacun le sait, ont des régimes de tva assez
Rock'nRoll :
tva sur les pensions calculées à 75% au taux 5.5% et 25% au taux 19.6%, le
tout calculé sur le ttc.

Mon souci était la structure de la table factures.
Si je lis bien ton post, tu confirmes ce que préconise plus haut. Pour info,
je stocke le code tva, mais aussi le taux, justement . ça permet en cas de
changement de taux, de pouvoir ré-imprimer une facture au taux en vigueur
lors de sa création.

Merci encore



Bonjour,

Par principe, je ne stocke pas les données de bases (teux de TVA)
dans les autres tables (ligne de facture) pour :

Raisons écologique, cette données est redondante.
Raisons de maintenance des données, le taux est stocké une seule
fois, donc si le comptable oubli de changer le taux on peut
théoriquement avoir de lignes de TVA avec le mauvais taux.
Raisons de maintenance de l'application, le taux étant stocké une
seule fois, il y a moins de risque d'erreur (taux de TVA dans les
lignes commandes ? taux de TVA dans les lignes des livraisons des
expéditions ? ...)
Avatar
Firetox
Bonjour, jacques

comme le dit moua le stockage de la tva dans la facture fait une redondance
d'information
j'ai pris pour habitude de stocker dans la facture toutes les infos liées a
la facture et qui permettent de la recréer ou de la rééditer sans relire le
taux de tva qui a pu changer
je m'explique

le taux de tva est pour ma part dans une table parametre (cela rempli aussi
les combos) donc pour la mise a jour du taux un seul endroit et toutes les
fenetres sont impactées même les combos de selection. par contre dans la
facture je stock le ht le ttc par ligne de produit avec aussi les remises en
valeur. cela permet de réediter la facture a l'identique meme apres
plusieurs années je fais egalement une archive de l'edition qui permet de
réediter la facture telle qu'elle etait si elle n'est plus dans la base ou
si la structure evolue. ce qui est important n'est pas la valeur du taux de
tva mais bien la valeur du ttc (on peut recalculer le taux tres facilement,
mais c'est prendre des risques de recalculer le ttc tu risque d'avoir des
difference entre ce qui est partie en compta et ton ecran alors qu'en
figeant le ttc tu as toujours la bonne valeur.

de ce fait la tva peut evoluer sans modifier les factures, ni les archives,
seules les nouvelles factures seront impactées. on peut egalement choisir de
recalculer une facture avec les nouveau taux si elle n'est pas passée en
compta : car une fois en compta plus de modif possible. a ce moment la c'est
un update simple des valeurs ttc ( en jointure sur mes parametres je peux en
une seule requete mettre a jours toutes les lignes de la facture a
modifier.)

c'est juste pour nfos de ma façon de fonctionner

"Jacques TREPP" a écrit dans le message de news:
48e37904$0$10806$
"Moua" a écrit dans le message de
news:gbvnl4$kuo$
Jacques TREPP a couché sur son écran :
"Firetox" a écrit dans le message de
news:48e3396a$0$6891$
Bonjur, jacques

j'utilise aussi des tables liées :
- pas de probleme de d'indirection sur les colonnes
- je peux mettre plus de 10 valeur sans modifier l'analyse
- les elements n'ayant pas 10 lignes n'occupe pas d'espace sur la
base
bref que des avantages et en plus cela devient plus simple en
programmation

sinon l'inderction fonctionne mais pas en externe
tu peux faire {":nomMembre"} = "Toto" dans la classe mais pas a
l'exterieur

bon dev
@+




Bonjour Frederic,

je comprend ... et je bute sur la réalisation.
Admettons que je crée une table tva_factures dont les colonnes seraient
: id_auto, id_facture, baseht, taux_tva, montant_tva
je peux aller jusqu'à 5 taux de tva :
0 % -> exonéré
2 % -> taux spécial Corse
8% -> taux spécial Corse
5,5 % -> bien connu
19,6% -> encore mieux connu !

Vu que tous les taux ne sont pas utilisés dans la même facture, il faut
que j'ajoute unc colonne id_tva pour retrouver mes petits.
Sachant que le taux 0 qui n'existe pas sera codé à 0 (id_tva =0).
Dans ce cas, ce serait jouable en utilisant une table mémoire cachée:
select id_tva, id_auto, id_facture, baseht, taux_tva, montant_tva from
tva_factures where id_facture = x
suivi d'un pgsql;mysqltable(nreq,tablemémoire)

Est-ce que je vais bien dans le bon sens ?

Merci pour vos conseils



Il faut une table TVA avec un ID et le taux (Pour être plus précis, il
faudrait aussi une notion de date en cas de changement de taux).

Code TVA : Date d'application : Taux
________________________________
0 : 01/01/1998 : 0%
1 : 01/01/1998 : 2%
2 : 01/01/1998 : 8%
3 : 01/01/1998 : 5,5%
4 : 01/01/1980 : 20,6% <----- Changement de taux
4 : 01/01/1998 : 19,6%

Il faut mettre l'ID de la TVA dans la table des lignes de factures. (Pas
le taux)

ID Facture : ID LIGNE : ID TVA : Montant HT ...........
____________________________________________
1 : 1 : 3 : 123 <--- Une ligne à 5,5%
1 : 2 : 4 : 234,50 <--- Une ligne à 19,6%


Il faut une table des entêtes de factures

ID Facture : Date Facture : Id Client ............
_____________________________________________________
1 : 01/10/2008 :


Pour plus de facilité, il faut aussi une table des TVA par facture qui
enregistre le total par ID TVA dans la facture, avec L'ID de la facture
L'ID de la TVA et le total. (On peut avoir plusieurs TVA dans une
facture)

ID Facture : ID TVA : Montant HT : Montant TVA
_______________________________________________
1 : 3 : 123 :
1 : 4 : 234,50 :

Le taux de la TVA 4 est retrouvé avec la date de la facture (plusieurs
taux en cours).

Voili, y'a plus ca !!!!!!!!!!





Merci,
la table tva, je l'ai : c'est un truc que je connais assez bien, vu que
j'équipe des hôteliers qui, chacun le sait, ont des régimes de tva assez
Rock'nRoll :
tva sur les pensions calculées à 75% au taux 5.5% et 25% au taux 19.6%, le
tout calculé sur le ttc.

Mon souci était la structure de la table factures.
Si je lis bien ton post, tu confirmes ce que préconise plus haut. Pour
info, je stocke le code tva, mais aussi le taux, justement . ça permet en
cas de changement de taux, de pouvoir ré-imprimer une facture au taux en
vigueur lors de sa création.

Merci encore

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)


1 2