3.6 KiB
3.6 KiB
AGENTS.md - Module purchase
Ce guide complete le AGENTS.md racine.
Pour ce module, les regles locales ci-dessous priment.
1) Perimetre metier
Le module purchase gere le cycle d'achat fournisseur:
- commande d'achat (
purchase.purchase,purchase.line) - facturation fournisseur (
account.invoiceliee a l'achat) - reception/retour de stock (
stock.move,stock.shipment.in,stock.shipment.in.return) - reporting achats (axes temporels, fournisseur, produit)
2) Fichiers pivots
- Logique coeur:
modules/purchase/purchase.py
- Extensions metier connexes:
modules/purchase/product.pymodules/purchase/stock.pymodules/purchase/invoice.pymodules/purchase/party.pymodules/purchase/configuration.pymodules/purchase/purchase_reporting.py
- Vues et actions:
modules/purchase/purchase.xmlmodules/purchase/stock.xmlmodules/purchase/invoice.xmlmodules/purchase/purchase_reporting.xml
- Manifest et dependances:
modules/purchase/tryton.cfg
- Documentation metier:
modules/purchase/docs/business-rules.template.md(template)modules/purchase/docs/business-rules.md(instance a remplir)
3) Etats et flux critiques a preserver
Workflow de commande (dans purchase.py):
draft -> quotation -> confirmed -> processing -> done- transitions de retour existent aussi (
cancelled, retour adraft, etc.)
Invariants importants:
invoice_stateetshipment_statedoivent rester coherents apresprocess().process()orchestre facture + stock + recalcul d'etats, ne pas contourner sans raison.delete()exige une commande annulee.- Les methodes
create_invoice()etcreate_move()sont sensibles (gestionlotsetaction).
4) Couplages a surveiller
- Facture:
purchase.py<->invoice.py- gestion des exceptions facture (
purchase_exception_state)
- Stock:
purchase.py<->stock.py- liens
moves, expeditions entrantes, retours
- Produit/fournisseur/prix:
product.pyimpacte prix d'achat, UoM, fournisseurs
- Tiers:
party.pyimpacte adresses/parametres fournisseur et contraintes d'effacement
5) Convention de modification pour ce module
- Modifier d'abord le coeur minimal dans
purchase.pyou le fichier specialise adequat. - Mettre a jour XML uniquement si comportement UI/action change.
- Si regle metier impactee, mettre a jour
docs/business-rules.md. - Ajouter un test proche du flux reel (scenario
.rstprioritaire si possible). - Verifier les impacts transverses facture/stock avant rendu.
6) Strategie de test recommandee
Priorite 1 (rapide):
modules/purchase/tests/test_module.py
Priorite 2 (comportement metier):
modules/purchase/tests/test_scenario.py- Scenarios cibles selon la modif:
scenario_purchase.rstscenario_purchase_manual_invoice.rstscenario_purchase_line_cancelled.rstscenario_purchase_line_cancelled_on_shipment.rstscenario_purchase_return_wizard.rstscenario_purchase_reporting.rst
Si la modif touche prix/UoM/fournisseur:
- ajouter un cas dans
test_module.pyou un scenario dedie.
7) Cas qui exigent validation humaine
- Changement du workflow d'etats
- Changement des regles de creation facture/mouvement
- Changement de logique sur retours fournisseur
- Changement qui altere les ecritures comptables ou le statut de paiement
8) Definition of done (module purchase)
- Le flux metier cible fonctionne de bout en bout.
- Les etats
state,invoice_state,shipment_staterestent coherents. - Les tests du module pertinents passent.
- Le patch est limite aux fichiers necessaires.