2.7 KiB
2.7 KiB
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).
- "This is to certify that we have insured for account of" doit afficher la compagnie courante (
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, privilegierrecords[0].report_*dans le template. - Si un placeholder s'affiche en brut dans le PDF:
- verifier que c'est un vrai
text:placeholderODF et pas du texte simple. - verifier le scope de variable (
records[0]vs variable locale non definie).
- verifier que c'est un vrai
- Dans les placeholders XML:
- utiliser
"et'dans les expressions XML. - eviter les echappements de type
\'.
- utiliser
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_surveyorpour la zone "Contact the following surveyor".
- ajout d'un champ shipment
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.invoicecomme pour CN/DN/Invoice/Prepayment.
- migration des tags
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.fodtdu 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).
- suppression du report
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?