3.1 KiB
3.1 KiB
AGENTS.md - Module purchase_trade
Ce guide complete le AGENTS.md racine.
Pour ce module, les regles locales ci-dessous priment.
1) Perimetre metier
Le module purchase_trade etend les flux achat/vente Tryton avec une logique
de negoce physique:
- contrats d'achat (
purchase.purchase,purchase.line) - contrats de vente (
sale.sale,sale.line) - lots physiques et virtuels
- matching achat/vente
- shipments et execution logistique
- frais (
fee.fee) - templates de documents metier et facture
2) Fichiers pivots
- Contrats achat:
modules/purchase_trade/purchase.py
- Contrats vente:
modules/purchase_trade/sale.py
- Lots / matching / invoicing:
modules/purchase_trade/lot.py
- Shipments / lien facture-lot:
modules/purchase_trade/stock.py
- Fees:
modules/purchase_trade/fee.py
- Bridge facture / templates:
modules/purchase_trade/invoice.py
- Vues:
modules/purchase_trade/view/*.xml
- Actions module:
modules/purchase_trade/*.xml
- Manifest:
modules/purchase_trade/tryton.cfg
3) Documentation locale a lire en priorite
- Regles metier:
modules/purchase_trade/docs/business-rules.md
- Regles templates:
modules/purchase_trade/docs/template-rules.md
- Catalogue des proprietes templates:
modules/purchase_trade/docs/template-properties.md
4) Invariants metier a preserver
- Un lot
virtualest la reference d'ouverture de quantite pour unepurchase.line. - Le lot physique est le pont principal entre:
purchase.linesale.line- shipment
- facture
- Pour remonter d'une facture vers shipment / BL / controller / fret:
- privilegier le lot physique
- ne pas multiplier des chemins d'acces concurrents
- Le
FREIGHT VALUEd'un template facture vient dufee.feedu shipment dont le produit estMaritime freight.
5) Conventions de modification
- Modifier la logique metier dans le fichier pivot le plus proche.
- Si un template
.fodtdevient complexe, deplacer la logique dans une propriete Pythonreport_*. - Pour une facture trade, preferer enrichir
modules/purchase_trade/invoice.pyplutot que surcharger lourdement le.fodt. - Si une regle metier durable change, mettre a jour
docs/business-rules.md. - Si une convention de template change, mettre a jour
docs/template-rules.md.
6) Pieges connus
- Plusieurs actions de report
account.invoicepeuvent sembler rendre le meme document a cause du cacheinvoice_report_cache. - Les reports alternatifs (
Final Invoice,Prepayment, etc.) ne doivent pas reutiliser le cache du report standard sans verification. - Pour les donnees achat/vente partagees, ne pas supposer qu'une facture de
vente doit lire directement sur la
sale.line: souvent, la verite metier passe par le lot physique et/ou laaccount.invoice.line.
7) Definition of done (module purchase_trade)
- Le flux achat/vente/lot cible reste coherent.
- Les impacts templates/facture ont ete verifies conceptuellement.
- Les docs locales ont ete mises a jour si une nouvelle regle durable a emerge.
- Le patch reste minimal et local au domaine demande.