123 lines
2.8 KiB
Markdown
123 lines
2.8 KiB
Markdown
# Business Rules Template - Purchase
|
|
|
|
Statut: `draft` | `reviewed` | `approved`
|
|
Version: `v0.1`
|
|
Derniere mise a jour: `YYYY-MM-DD`
|
|
Owner metier: `Nom / Equipe`
|
|
Owner technique: `Nom / Equipe`
|
|
|
|
## 1) Scope
|
|
|
|
- Domaine: `ex: achats fournisseur`
|
|
- Hors scope: `ex: achats intercompany`
|
|
- Modules impactes:
|
|
- `purchase`
|
|
- `stock` (si applicable)
|
|
- `account_invoice` (si applicable)
|
|
|
|
## 2) Glossaire
|
|
|
|
- `Purchase`: commande d'achat fournisseur.
|
|
- `Line`: ligne de commande.
|
|
- `Invoice State`: etat facture calcule.
|
|
- `Shipment State`: etat reception calcule.
|
|
- Ajouter ici les termes metier propres a ton contexte.
|
|
|
|
## 3) Regles metier (source de verite)
|
|
|
|
### BR-001 - [Titre court]
|
|
|
|
- Intent: `Pourquoi cette regle existe`
|
|
- Description:
|
|
- `Enonce clair et testable`
|
|
- Conditions d'entree:
|
|
- `Etat`
|
|
- `Type de ligne (goods/service)`
|
|
- `Contexte (societe, devise, fournisseur, lot, etc.)`
|
|
- Resultat attendu:
|
|
- `Etat/valeur/action attendue`
|
|
- Exceptions:
|
|
- `Cas ou la regle ne s'applique pas`
|
|
- Priorite:
|
|
- `bloquante | importante | informative`
|
|
- Source:
|
|
- `Ticket / spec / decision metier`
|
|
|
|
### BR-002 - [Titre court]
|
|
|
|
- Intent:
|
|
- Description:
|
|
- Conditions d'entree:
|
|
- Resultat attendu:
|
|
- Exceptions:
|
|
- Priorite:
|
|
- Source:
|
|
|
|
## 4) Matrice d'etats (optionnel mais recommande)
|
|
|
|
| Regle | Etat initial | Evenement | Etat attendu | Notes |
|
|
|---|---|---|---|---|
|
|
| BR-001 | `draft` | `quote` | `quotation` | |
|
|
| BR-002 | `quotation` | `confirm` | `confirmed/processing` | |
|
|
|
|
## 5) Exemples concrets
|
|
|
|
### Exemple E1 - Cas nominal
|
|
|
|
- Donnees:
|
|
- `fournisseur = X`
|
|
- `produit = Y`
|
|
- `quantite = 10`
|
|
- Attendu:
|
|
- `invoice_state = pending`
|
|
- `shipment_state = waiting`
|
|
|
|
### Exemple E2 - Cas limite
|
|
|
|
- Donnees:
|
|
- Attendu:
|
|
|
|
## 6) Impact code attendu
|
|
|
|
- Fichiers Python potentiellement concernes:
|
|
- `modules/purchase/purchase.py`
|
|
- `modules/purchase/stock.py`
|
|
- `modules/purchase/invoice.py`
|
|
- `modules/purchase/product.py`
|
|
- Fichiers XML potentiellement concernes:
|
|
- `modules/purchase/purchase.xml`
|
|
- `modules/purchase/stock.xml`
|
|
- `modules/purchase/invoice.xml`
|
|
|
|
## 7) Strategie de tests
|
|
|
|
- Unitaires:
|
|
- `modules/purchase/tests/test_module.py`
|
|
- Scenarios:
|
|
- `modules/purchase/tests/scenario_purchase.rst`
|
|
- `modules/purchase/tests/scenario_purchase_manual_invoice.rst`
|
|
- `modules/purchase/tests/scenario_purchase_return_wizard.rst`
|
|
|
|
Pour chaque regle BR-xxx, lister le test associe:
|
|
|
|
| Regle | Test existant | Nouveau test a ajouter | Statut |
|
|
|---|---|---|---|
|
|
| BR-001 | `...` | `...` | `todo` |
|
|
|
|
## 8) Compatibilite et migration
|
|
|
|
- Effet retroactif sur commandes existantes: `oui/non`
|
|
- Migration necessaire: `oui/non`
|
|
- Plan de rollback:
|
|
- `comment revenir en arriere sans corruption metier`
|
|
|
|
## 9) Validation
|
|
|
|
- Valide par metier:
|
|
- `Nom` - `date`
|
|
- Valide par technique:
|
|
- `Nom` - `date`
|
|
- Decision finale:
|
|
- `approved / rejected / needs update`
|
|
|