Bonjour,
Je suis sur la version 17.0.3.
Je voulais savoir si quelqu’un pouvait m’expliquer comment est calculé le PMP qui apparaît sur les fiches produits. Je n’ai pas encore réussi à comprendre.
Merci d’avance pour vos réponses
Bonjour
Le prix moyen pondéré n’est pas propre a Dolibarr mais un concept général.
La methode de calcul est dans le fichier mouvementstock.class.php
// Calculate new AWP (PMP)
$newpmp = 0;
if (!$error) {
if ($type == 0 || $type == 3) {
// After a stock increase
// Note: PMP is calculated on stock input only (type of movement = 0 or 3). If type == 0 or 3, qty should be > 0.
// Note: Price should always be >0 or 0. PMP should be always >0 (calculated on input)
if ($price > 0 || (!empty($conf->global->STOCK_UPDATE_AWP_EVEN_WHEN_ENTRY_PRICE_IS_NULL) && $price == 0)) {
$oldqtytouse = ($oldqty >= 0 ? $oldqty : 0);
// We make a test on oldpmp>0 to avoid to use normal rule on old data with no pmp field defined
if ($oldpmp > 0) {
$newpmp = price2num((($oldqtytouse * $oldpmp) + ($qty * $price)) / ($oldqtytouse + $qty), 'MU');
} else {
$newpmp = $price; // For this product, PMP was not yet set. We set it to input price.
}
//print "oldqtytouse=".$oldqtytouse." oldpmp=".$oldpmp." oldqtywarehousetouse=".$oldqtywarehousetouse." ";
//print "qty=".$qty." newpmp=".$newpmp;
//exit;
} else {
$newpmp = $oldpmp;
}
} elseif ($type == 1 || $type == 2) {
// After a stock decrease, we don't change value of the AWP/PMP of a product.
$newpmp = $oldpmp;
} else {
// Type of movement unknown
$newpmp = $oldpmp;
}
}
Bonjour je me permets de remonter ce sujet si je comprends bien le PMP ne se remet pas à jour suite à une vente/expedition ? Comment le remettre à zéro alors ? Je prends comme exemple en cas de variation constante du prix d’achat (ce qui hélas et la norme en ce moment pour beaucoup d’entreprise.
Bonjour
non le pmp se met à jour (tout seul comme un grand ) lors de la ventilation ou réception je crois.
Pour le reset sans doute trifouiller la base de données.
Désolé mais après essai le pmp ne s’actualise pas.
J’ai essayer avec trois configuration de produit.
1 produit sans lot/série
1produit avec lot
1produit avec numéro de série unique.
J’ai rentrer trois produit a chaque fois avec comme prix d’achat 5,6 et 7 euros pour un PMP de 6 euros ce qui est cohérent.
Par contre j’ai fait une commande client avec les produit. Pour ceux avec lot et numéro de serie unique j’ai mis celui à 5 euros ht d’achat. Normalement le pmp devrait être passé à 6.5 euros HT. Mais il ne s’actualise pas. Est-ce normal ou est-ce un parametre que je n’ai pas vu.
Merci d’avance
Bonjour
De mémoire le pmp s’actualise en fonction du prix d’achat fournisseur et de l’entrée en stock.
Donc cela rend le PMP de moins en moins utilie pour la valorisation du stock, pour la valeur des objets. Surtout en ces temps d’inflation.
Après la notion de PMP n’est pas propre à Dolibarr mais à la compta etc.
Justement dans la méthode CUMP après chaque entrée, on doit prendre en compte les sorties.
Dates | Entrées | PU entrées | Sorties | PU sorties | Qte Stock | CUMP | Valeur du stock |
---|---|---|---|---|---|---|---|
initial | 20 | 2 € | 20 | 2 € | 2 €*20=40 € | ||
4/2 | 12 | 2 € | 8 | 2 € | 40 €-(12*2 €)=16 € | ||
15/2 | 20 | 3,4 € | 28 | ((82 €)+(203,4 €))/28=3 € | 3 €*28=84 € | ||
28/2 | 10 | 3 € | 18 | 3 € | 84 €-(3 €*10)=54 € |
Tableau trouvé sur votre lien wikipedia.
Exemple trouvé sur le web :
Une entreprise achète 1000 unités d’un article à 10€ ht pièce, elle achète ensuite 500 unités du même article pour 13€ ht pièce.
Le Coût Unitaire Moyen Pondéré du stock sera alors de 11 € ht et se calcule ainsi :
(1000x10€ + 500x13€)/(1000 + 500) = 11€
@aspangaro-Easya help
Bonjour,
C’est quoi le problème ?
Bonjour
Le pmp est bien une notion comptable qui ne dépend pas de Dolibarr?
Je suis désolé, je viens de comprendre la formule qui actualise le prix. Je suis un gros mauvais désolé. SI le stock est zero le pmp se réinitialise puisque le dans la formule on multiplie par le stock. Donc c’st bon.
je ne suis pas d’accord avec ce point :
Je suis un gros mauvais