# Journal de migration et sessions Statut: `non canonique` Cette page sert de routeur vers les notes historiques. Une note devient canonique seulement quand elle est reprise dans une page thematique. ## Sources historiques - `modules/purchase_trade/docs/business-rules.md` - `modules/purchase_trade/docs/business-rules-architecture-proposal.md` - `notes/business_rules.md` - `notes/template_business_rules.md` ## Notes deja partiellement promues - Session `2026-06-02`: demurrage / charter conditions et clauses de contrat, a promouvoir dans une page thematique avant de devenir canonique. - Demurrage / charter conditions: - Les conditions de charter sont portees par `charter.condition`, avec clauses laytime/NOR/demurrage/despatch, responsabilite, partie concernee et lignes de rates via `charter.condition.rate`. - Les contrats Sale et Purchase ont un onglet `Charter Conditions` au niveau entete et ligne. Une ligne sans conditions propres herite des conditions de l'entete; des conditions de ligne remplacent l'heritage. - Les conditions creees depuis une Sale ou une Sale Line sont limitees au role `Customer`; celles creees depuis une Purchase ou Purchase Line sont limitees au role `Supplier`. Les conditions creees depuis une Charter Party ne peuvent pas utiliser les roles `Supplier` ou `Customer` afin d'eviter la confusion entre conditions armateur/charte et conditions contractuelles achat/vente. - Les shipments et SOF exposent les conditions Owner, Supplier et Customer retrouvees depuis le charter party et les lots/lignes physiques. - Le calcul SOF privilegie la condition appliquee: laytime allowed, evenement de debut de laytime, offset de debut, evenement de fin, pumping rate, rate demurrage et rate despatch. Les clauses texte laytime/NOR/demurrage/despatch restent contractuelles et ne doivent pas servir de source de calcul. - Un solde de laytime negatif cree une compensation `demurrage`; un solde positif peut creer une compensation `despatch` si un rate despatch est defini. - Contract clauses: - Structure ajoutee autour de `contract.clause`, `contract.template`, `contract.template.line` et `contract.clause.selection`, visible dans les onglets Sale/Purchase et dans les menus globaux Sales/Purchases. - Les clauses et templates de reference sont generes depuis `STANDARDIZED CONTRACTS - REFERENCE BOOK 2012 (Official version).docx` dans `contract_clause_reference.xml`: 53 clauses, 6 templates Sale et 120 lignes de template. - Un script SQL direct PostgreSQL existe dans `docs/sql/import_contract_clause_reference.sql` pour alimenter la base quand les tables existent deja; il ne remplace pas la mise a jour module necessaire pour creer/mettre a jour le schema. - Les templates generes sont `direction = sale`, car le document source parle de Sales Agreement avec Seller/Buyer. Les variantes Purchase doivent etre adaptees avant import si on veut les afficher cote achat. - Les variables reconnues sont rendues depuis le contexte contrat (`[Contract_Number]`, `[reference]`, `[party]`, `[company]`, `[currency]`, `[incoterm]`, `[incoterm_location]`, `[payment_term]`, `[product]`, `[quantity]`, `[unit]`, `[product_origin]`, `[del_from]`, `[del_to]`). Les variables inconnues restent litterales pour override. - Sens metier attendu de `Optional`: une clause optional peut etre retiree sans validation juridique; une clause non optional est obligatoire et ne devrait pouvoir etre que surchargee. Les overrides devront declencher une validation Legal/Juridique dans le workflow; l'utilisation d'un template sans modification ne devrait pas la declencher. - Session `2026-04-30`: PnL fees ouverts et `% rate`, promue dans [fees.md](fees.md) et [valuation-pnl-mtm.md](valuation-pnl-mtm.md). - Session `2026-05-01`: solde ouvert apres lots physiques et lots effectifs des fees, promue dans [lots-and-quantities.md](lots-and-quantities.md) et [fees.md](fees.md). - Session `2026-05-06`: Remove physical lot, promue dans [lots-and-quantities.md](lots-and-quantities.md). - Session `2026-05-09`: Lots Management, promue partiellement dans [lots-management.md](lots-management.md). - Session `2026-05-13`: cadrage `quantity_theorical` / `quantity`, amount de ligne, Weight basis, invariants de quantite, checks Python bloquants et diagnostic SQL. Promue dans [lots-and-quantities.md](lots-and-quantities.md), [lots-and-quantities.en.md](lots-and-quantities.en.md), [invariants.md](invariants.md) et [sql/README.md](sql/README.md).