Aller au contenu

RG-171 – Le poids net marchand est calculé, détaillé, et la formule est imprimée

Deux formules doivent être proposées, choisies par produit et par contrat, et la formule retenue est imprimée sur le bon de réception avec le détail du calcul.

Formule Expression Sur 1 000 kg à 15 % d’humidité, norme 13 %, impuretés 3 %
A - linéaire simple Net = Brut × (1 − (H mesurée − H norme)/100) × (1 − impuretés/100) 1 000 × 0,98 × 0,97 = 950,6 kg
B - bilan de masse Net = Brut × (100 − H mesurée)/(100 − H norme) × (1 − impuretés/100) 1 000 × 0,9770 × 0,97 = 947,7 kg

La formule B est physiquement exacte - elle traduit la perte d’eau réelle - tandis que la formule A est plus répandue dans la pratique commerciale. L’écart, de l’ordre de trois kilogrammes pour mille, est faible mais systématique : il doit être choisi consciemment et écrit sur le document, faute de quoi il devient un sujet de litige avec le fournisseur.

Le calcul est dans packages/domain (module pesee, page du paquet). Ce que l’énoncé ne précise pas est fixé par l’écart EC-037 (proposé) :

  • base du calcul : poids net (brut − tare) ;
  • un seul arrondi, sur la réfaction, selon le mode du contrat ;
  • pas de bonus quand l’humidité est inférieure à la norme (formule A : excédent borné à zéro ; formule B : humidité ramenée à la norme) ;
  • résultats de référence : 950 600 g (A) et 947 701 g (B) pour l’exemple ci-dessus.

Le paquet propose aussi la formule excedent_lineaire (réfaction = net × excédents d’humidité et d’impuretés au-dessus des maximums), décidée en EC-016.

Livrée en L2-2. À l’enregistrement d’une réception sur contrat, calculerPeseeSurContrat lit la formule de la ligne du contrat pour le produit et calcule le net marchand ; la formule retenue et le détail du calcul sont figés sur la réception (formule_refaction, detail_calcul, net_marchand_g), pour être imprimés tels quels. Sans contrat, la formule est « aucune ». Un contrat inactif, sans ligne pour le produit, ou dont la formule a besoin de l’humidité et des impuretés absentes, refuse l’enregistrement (contrat_non_actif, contrat_sans_ligne_pour_le_produit, mesure_qualite_manquante) : rien n’est deviné. Tests : apps/api/test/receptions.test.ts, vecteurs VT-PESEE.

Mention du cahier v1.2 : « précisé en v1.2 ».

La réfaction est lue sur le contrat, puis sur le produit à défaut. Elle est donc choisie par contrat et non plus seulement par produit. L’entité Contrat l’accueille.

Source : Analyse critique, « Incohérences internes et modèle de données », modèle de données ; Analyse critique, « Entités Contrat, Certification, Vente et Expédition ».