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),
);
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) 
);
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
 
 
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;
ça marche normalement ,
maintenant je doit ajouter le prix de revient des articles en fonction des charges d'achat , donc une troisième table

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) 
);
d'ou mes 2 questions :

- 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