1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

AIDE Comment calcul un PMP ?

Discussion dans 'Windev' créé par aminej76, Mai 19, 2018.

  1. aminej76

    aminej76 Active Member
    MEMBRE WX

    Inscrit:
    Jan 23, 2018
    Messages:
    283
    J'aime reçus:
    102
    Bonjour,
    Je trouve une grande difficulté pour calculer le prix moyen pondéré d'un article.

    Prenons l'exemple suivant du REF A100 :

    Achat : 01/01/2018 à 10:00 QT= 100 P.U= 10 PMP=10
    Vente : 05/01/2018 à 12:00 QT= 95 Stock = 5 et PMP= 10
    Achat : 06/01/2018 à 12:00 QT= 20 P.U= 15 PMP= (( 5 * 10 ) + ( 20 * 15 )) / 25 = 14

    On'a 3 problèmes : ajout, modification, suppression
    1) Ajout d'une ligne Achat : ce traitement s’exécute avant l'ajout de la ligne
    PMP = (( STOCK_PHYSIQUE * PMP ) + ( QT_ACHETE * PRIX_ACHAT) ) ( STOCK_PHYSIQUE + QT_ACHETE)

    2) Modification : pas de solution ???

    :relievedface: Suppression : pas de solution ???


    Une piste svp pour la modification et la suppression.
    Merci d'avance.
     
    Tags:
  2. epitagl1990

    epitagl1990 New Member

    Inscrit:
    Jan 10, 2018
    Messages:
    23
    J'aime reçus:
    11
    bonsoir si tu utilise un fichier stock tu créer une variable stock.pmp
    Achat : 01/01/2018 à 10:00 QT= 100 P.U= 10 PMP=10
    stock.pmp =100
    stock.qte=10

    Vente : 05/01/2018 à 12:00 QT= 95 Stock = 5 et PMP= 10

    mise a jour quantité sortie stock
    stock.pmp =10
    stock.qte=stock.qte-qtevente

    mise a jour quantité entrée stock

    Achat : 06/01/2018 à 12:00 QT= 20 P.U= 15 PMP= (( 5 * 10 ) + ( 20 * 15 )) / 25 = 14
    si HLitRecherche(stock,codearticle,codearticleachat,hIdentique) alors
    stock.pmp =((stock.pmp*stock.qte)+(qteachat *prixachat)) / (stock.qte +qteachat)
    stock.qte=stock.qte +qteachat
    hmodifie(stock)
    fin
     
  3. aminej76

    aminej76 Active Member
    MEMBRE WX

    Inscrit:
    Jan 23, 2018
    Messages:
    283
    J'aime reçus:
    102
    Merci bien
    Ce code fonctionne parfaitement en cas d'ajout d'achat
    Mais le problème se pose en cas de modification de prix ou de la quantité.
    Supposons que j'ai 100 bon de réception et je vais modifier le bon de e réception numéro 30.
    Ca pose beaucoup de problème.
     
    joker apprécie ceci.
  4. epitagl1990

    epitagl1990 New Member

    Inscrit:
    Jan 10, 2018
    Messages:
    23
    J'aime reçus:
    11
    bonsoir si vous utilisez une ligne de bon de reception qui contient une rubrique totalligneHt ou totallineTTc il suffit de créer une requête et de calculer le pmp a partir de la requête exemple :
    SELECT
    LigneBReceptionFour.Référence AS Référence,
    SUM(LigneBReceptionFour.Quantité) AS la_somme_Quantite,
    SUM(LigneBReceptionFour.TotalHtAchat) AS la_somme_TotalHtAchat,
    SUM(LigneBreceptionFour.TotalTTC) AS la_somme_TotalTTC
    FROM
    LigneBReceptionFour
    GROUP BY
    LigneBreceptionFour.Référence

    après modification de la ligne du bon de reception :
    HAnnuleDéclaration(REQ_PMP)
    SI HExécuteRequête(REQ_PMP,hRequêteDéfaut,ReferenceProduit) ALORS
    HLitPremier(REQ_PMP)
    HLitRecherche(Stock,Reference,ReferenceProduit,hIdentique)
    Stock.pmp=REQ_PMP.la_somme_TotalHtAchat/REQ_PMP.la_somme_Quantite
    HModifie(Stock)
    FIN
     
    suenodesign et aminej76 aiment ça.
  5. aminej76

    aminej76 Active Member
    MEMBRE WX

    Inscrit:
    Jan 23, 2018
    Messages:
    283
    J'aime reçus:
    102

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Merci bien.
    j'utilise maintenant votre solution mais ce n'est pas correcte à 100%
    ----------------------------------------
    ce que je cherche: PMP = 14

    Achat : 01/01/2018 à 10:00 QT= 100 P.U= 10 PMP=10
    Achat : 06/01/2018 à 12:00 QT= 20 P.U= 15 PMP= (( 5 * 10 ) + ( 20 * 15 )) / 25 = 14
    ----------------------------------------
    votre solution : PMP = 13.333

    Achat : 01/01/2018 à 10:00 QT= 100 P.U= 10 total achat 10*10=100
    Achat : 06/01/2018 à 12:00 QT= 20 P.U= 15 total achat 20*15=300
    PMP= (100+300)/(10+20)=13.333
     
  6. bindev

    bindev Member

    Inscrit:
    Mar 11, 2018
    Messages:
    35
    J'aime reçus:
    18
    Ton calcul est faux
    Achat : 01/01/2018 à 10:00 QT= 100 P.U= 10 total achat 100*10=1000
    PMP= (1000+300)/(10+20)=10.83
    mais bon ca ne change rien au probleme

    :)
    Un bon réception a une date d'entrée et le Prix achat,
    un bon de livraison a une date de sortie.
    On peut ainsi reconstituer un stock à un instant T en triant les évènements E/S par date
    Et donc recalculer un PMP à une date précise à tout moment, à fortiori en cas de modif ou d'ajout.
     
    #6 bindev, Mai 20, 2018
    Dernière édition par un modérateur: Déc 1, 2018
    Fouedusa et aminej76 aiment ça.
  7. Fouedusa

    Fouedusa Active Member

    Inscrit:
    Avr 22, 2018
    Messages:
    141
    J'aime reçus:
    120
    Bonjour;
    Si ma mémoire ne me trompe pas, une rubrique calculable ne doit être stocker. (même que je ne travail pas a 100% avec cette règle :p)
    Par contre la quantité initiale et le PMP initial doivent être stocker.
    Donc on doit écrire une procédure avec comme paramètre en entrée DATE, à chaque appel elle te recalcule le PMP de toutes les entrées avant cette DATE.
    Bon Dev.
     
    aminej76 apprécie ceci.

Partager cette page

Chargement...