bonjour
voici mes 2 tables : achats et achats_lignes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 CREATE TABLE ACHATS ( ID_ACHAT INTEGER NOT NULL , AC_PIECE_DESIGNATION VARCHAR(40), AC_DATE DATE DEFAULT 'NOW', AC_TIME TIME, AC_TYPEPIECE SMALLINT, AC_ID_FOURNISSEUR INTEGER DEFAULT 0, AC_TOTALHT NUMERIC(14,2) , AC_TOTALTVA NUMERIC(14,2) , AC_TOTALTTC NUMERIC(14,2) , AC_NET_PAYER NUMERIC(14,2) , AC_ID_MODE_PAIMENT INTEGER, AC_TIMBRE NUMERIC(14,2) , AC_REMISE NUMERIC(14,2) , AC_REGLE SMALLINT , AC_NPIECE_FOURNISSEUR VARCHAR(20), );j'utilise un trigger afterinsert pour calculer la moyenne pondérée et mettre a jour les prix d'achat pondérés comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE TABLE ACHATS_LIGNES ( ID_ACHAT_LIGNE INTEGER NOT NULL, AL_ID_ACHAT INTEGER, AL_ID_ARTICLE INTEGER, AL_PU_HT NUMERIC(14,2) , AL_QTE NUMERIC(14,2) , AL_REMISE NUMERIC(5,2) , AL_TVA P NUMERIC(5,2) );
ça marche normalement ,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 tmppmpa = ((:Artprixachat * :artqte) + (new.al_pu_ht * new.al_qte)) / (:artqte + new.al_qte); update articles set art_qteenstock = art_qteenstock + new.al_qte, art_prix_achat = :tmppmpa where id_article = new.al_id_article;
maintenant je doit ajouter le prix de revient des articles en fonction des charges d'achat , donc une troisième table
d'ou mes 2 questions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE TABLE CHARGES_ACHAT ( ID_CHARGE_ACHAT INTEGER NOT NULL, CA_ID_ACHAT INTEGER, CA_DESIGNATION VARCHAR(255), CA_MONTANT NUMERIC(14,2) );
- quel est la formule exacte pour ajouter ces charges au prix de revient pondéré global de l'article ?
- quel est la formule exacte pour calculer le prix pondéré a l'envers par exemple j'ai supprimer un achat donc je doit retourner au prix initial avant la pondération
merci et bonne journée
Partager