Fees - regles de synchronisation PnL
PnL apres ajout ou modification d'un fee
Un changement sur un fee.fee doit relancer le PnL des lignes commerciales
impactees, limite aux types de valuation fees:
pur. feesale feeshipment feeline fee
Le recalcul utilise valuation_type = 'fees' pour ne pas reecrire les lignes de
prix, derives ou MTM.
Lignes impactees
Les lignes a recalculer sont retrouvees depuis les lots lies au fee:
lot.linepour lapurchase.linelot.sale_linepour lasale.line
Pour un fee de stock.shipment.in, si le lien direct par fee.lots ne suffit
pas, le shipment sert de fallback:
shipment.incoming_moves[].lotshipment.lotqt[].lot_pshipment.lotqt[].lot_s
Ce fallback couvre les shipments encore ouverts ou le fee est pose sur des
lot.qt avant creation de lots physiques.
Lots effectifs du fee
Le PnL des fees suit la regle BR-PT-021:
- tant qu'il n'existe que des lots virtuels, le fee valorise l'ouvert;
- des qu'un lot physique est lie au fee, les lots physiques deviennent la base effective;
- le lien virtuel peut rester present comme fallback.
Points de declenchement
Le recalcul est declenche apres:
- creation, modification ou suppression d'un
fee.fee; - creation, modification ou suppression d'un lien
fee.lots.
stock.shipment.in.validate() recalcule deja le PnL depuis les lots du
shipment, mais ce workflow ne couvre pas les changements de fee saisis apres
coup dans l'onglet Fees.
Fee Report
La colonne Purchase du Fee Report vient exclusivement du lot lie au fee
(fee.lots -> lot.line -> purchase.line.purchase). Le purchase technique
stocke sur fee.fee.purchase, cree pour facturer le service, ne doit jamais
etre presente comme le contrat d'achat metier.
Les statuts d'invoicing et de paiement des lots suivent les lots effectifs du
fee. Le statut de paiement du fee distingue Invoice paid, DN/CN paid,
All paid et Not paid selon le paiement complet de sa facture et de son
eventuelle DN/CN.
Facturation depuis Invoice physical lots
Le dialogue affiche les fees ordered des lignes correspondant au cote actif:
Purchase: fees despurchase.linedes lots selectionnes;Sale: fees dessale.linedes lots selectionnes.
Seuls les fees coches To invoice sont traites. En provisoire, un fee sans
facture est facture normalement et un fee deja facture est ignore. En finale,
un fee sans facture suit la facturation standard; un fee deja facture suit le
flux DN/CN existant de fee.fee.invoice.
Padding de facture vente dans les commissions broker
Le champ lot.sale_invoice_padding augmente la quantite facturee au client sans
modifier le poids physique du lot. Pour les fees, fee.quantity reste donc la
quantite reelle des lots effectifs.
Si un fee est coche Add padding, le calcul de facturation utilise une quantite
dediee:
quantite des lots effectifs du fee + padding vente des memes lots
Cette quantite supplementaire s'applique uniquement aux modes:
Per qt: montant = quantite avec padding * prix du fee;% price: montant = quantite avec padding * prix unitaire de la ligne * %.
La purchase technique du fee et la ligne de facture service utilisent la meme base. Ainsi, une modification du padding apres une premiere facture est detectee par le flux DN/CN existant comme un changement de quantite ou de montant.