Files
tradon/modules/purchase_trade/docs/fees.md
2026-05-10 19:30:28 +02:00

52 lines
1.5 KiB
Markdown

# 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. fee`
- `sale fee`
- `shipment fee`
- `line 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.line` pour la `purchase.line`
- `lot.sale_line` pour la `sale.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[].lot`
- `shipment.lotqt[].lot_p`
- `shipment.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.