PMP fiches produit

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 :slightly_smiling_face:
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 :slightly_smiling_face:
non le pmp se met à jour (tout seul comme un grand :rofl:) 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 :slightly_smiling_face:
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 :rofl:

Bonjour,

C’est quoi le problème ?

1 « J'aime »

Bonjour :slightly_smiling_face:
:rofl: :rofl: :rofl:
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.

1 « J'aime »

je ne suis pas d’accord avec ce point :

Je suis un gros mauvais

1 « J'aime »