Add note for bot
This commit is contained in:
51
notes/template_business_rules.md
Normal file
51
notes/template_business_rules.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# Template Business Rules - Session Memo
|
||||
|
||||
Date: 2026-04-08
|
||||
Scope: templates Relatorio + ponts `report_*` Python.
|
||||
|
||||
## 1) Regles metier confirmees
|
||||
|
||||
- `insurance.fodt`:
|
||||
- "This is to certify that we have insured for account of" doit afficher la compagnie courante (`shipment.company.party`), pas le client.
|
||||
- "Amount insured" suit la regle 110% de la valeur incoming.
|
||||
- Base incoming: montant des incoming moves lies au shipment, derive des lots et de la source achat (`purchase.line.unit_price * current_quantity_converted`).
|
||||
- `sale bill`:
|
||||
- La 2eme date attendue est une maturity date (echeance), pas le libelle de condition de paiement.
|
||||
- Le montant en toutes lettres doit correspondre au montant du bill (montant facture/total), pas au prix unitaire d'une ligne.
|
||||
|
||||
## 2) Pratiques templates Relatorio
|
||||
|
||||
- Preferer des proprietes Python `report_*` stables sur le modele plutot que des expressions Genshi complexes.
|
||||
- Pour `stock.shipment.in`, privilegier `records[0].report_*` dans le template.
|
||||
- Si un placeholder s'affiche en brut dans le PDF:
|
||||
- verifier que c'est un vrai `text:placeholder` ODF et pas du texte simple.
|
||||
- verifier le scope de variable (`records[0]` vs variable locale non definie).
|
||||
- Dans les placeholders XML:
|
||||
- utiliser `"` et `'` dans les expressions XML.
|
||||
- eviter les echappements de type `\'`.
|
||||
|
||||
## 3) Decisions de conception appliquees
|
||||
|
||||
- `insurance.fodt`:
|
||||
- ajout d'un champ shipment `surveyor` (party.party) via onglet "Surveyor".
|
||||
- ajout d'une propriete `report_insurance_contact_surveyor` pour la zone "Contact the following surveyor".
|
||||
- `payment_order.fodt`:
|
||||
- migration des tags `<...>` legacy vers la syntaxe template habituelle du projet.
|
||||
- ajout de la section de config template, et exposition depuis `account.invoice` comme pour CN/DN/Invoice/Prepayment.
|
||||
- `packing_list.fodt`:
|
||||
- date en haut droite basee sur la date du jour.
|
||||
- unites Net/Gross alignees sur l'unite de `purchase.line`.
|
||||
- `bill.fodt`:
|
||||
- suppression du report `sale_final.fodt` du menu sale.
|
||||
- ajout de ponts Python cote sale pour:
|
||||
- montant bill numerique,
|
||||
- montant bill en lettres,
|
||||
- maturity date issue de `invoice.lines_to_pay.maturity_date` (avec fallback metier).
|
||||
|
||||
## 4) Check-list rapide avant validation d'un template
|
||||
|
||||
- Les placeholders sont-ils tous resolus (aucun `<records[...]...>` brut)?
|
||||
- Le scope est-il correct (`records[0]` / `sale` / `invoice`) partout, y compris header/footer?
|
||||
- La source metier est-elle correcte (compagnie vs client, total vs unit_price, maturity date vs payment term)?
|
||||
- Les formats sont-ils conformes (date, devise, montant en lettres)?
|
||||
- Le template est-il bien expose dans la config + menu d'impression de la forme cible?
|
||||
Reference in New Issue
Block a user