<!-- Generated from docs_source/business by docs/tools/render_business_docs.py. -->

# 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

<ul style="margin:0.65rem 0 1rem 1.1rem; padding-left:1rem; list-style-type:disc;">
<li style="margin:0.38rem 0;"><code>modules/purchase_trade/docs/business-rules.md</code>
</li>
<li style="margin:0.38rem 0;"><code>modules/purchase_trade/docs/business-rules-architecture-proposal.md</code>
</li>
<li style="margin:0.38rem 0;"><code>notes/business_rules.md</code>
</li>
<li style="margin:0.38rem 0;"><code>notes/template_business_rules.md</code>
</li>
</ul>

## Notes deja partiellement promues

<ul style="margin:0.65rem 0 1rem 1.1rem; padding-left:1rem; list-style-type:disc;">
<li style="margin:0.38rem 0;">Session <code>2026-06-02</code>: demurrage / charter conditions et clauses de contrat, a promouvoir dans une page thematique avant de devenir canonique.
<ul style="margin:0.65rem 0 1rem 1.35rem; padding-left:1rem; list-style-type:circle;">
<li style="margin:0.38rem 0;">Demurrage / charter conditions:
<ul style="margin:0.65rem 0 1rem 1.35rem; padding-left:1rem; list-style-type:circle;">
<li style="margin:0.38rem 0;">Les conditions de charter sont portees par <code>charter.condition</code>, avec clauses laytime/NOR/demurrage/despatch, responsabilite, partie concernee et lignes de rates via <code>charter.condition.rate</code>.
</li>
<li style="margin:0.38rem 0;">Les contrats Sale et Purchase ont un onglet <code>Charter Conditions</code> au niveau entete et ligne. Une ligne sans conditions propres herite des conditions de l&#x27;entete; des conditions de ligne remplacent l&#x27;heritage.
</li>
<li style="margin:0.38rem 0;">Les conditions creees depuis une Sale ou une Sale Line sont limitees au role <code>Customer</code>; celles creees depuis une Purchase ou Purchase Line sont limitees au role <code>Supplier</code>. Les conditions creees depuis une Charter Party ne peuvent pas utiliser les roles <code>Supplier</code> ou <code>Customer</code> afin d&#x27;eviter la confusion entre conditions armateur/charte et conditions contractuelles achat/vente.
</li>
<li style="margin:0.38rem 0;">Les shipments et SOF exposent les conditions Owner, Supplier et Customer retrouvees depuis le charter party et les lots/lignes physiques.
</li>
<li style="margin:0.38rem 0;">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.
</li>
<li style="margin:0.38rem 0;">Un solde de laytime negatif cree une compensation <code>demurrage</code>; un solde positif peut creer une compensation <code>despatch</code> si un rate despatch est defini.
</li>
</ul>
</li>
<li style="margin:0.38rem 0;">Contract clauses:
<ul style="margin:0.65rem 0 1rem 1.35rem; padding-left:1rem; list-style-type:circle;">
<li style="margin:0.38rem 0;">Structure ajoutee autour de <code>contract.clause</code>, <code>contract.template</code>, <code>contract.template.line</code> et <code>contract.clause.selection</code>, visible dans les onglets Sale/Purchase et dans les menus globaux Sales/Purchases.
</li>
<li style="margin:0.38rem 0;">Les clauses et templates de reference sont generes depuis <code>STANDARDIZED CONTRACTS - REFERENCE BOOK 2012 (Official version).docx</code> dans <code>contract_clause_reference.xml</code>: 53 clauses, 6 templates Sale et 120 lignes de template.
</li>
<li style="margin:0.38rem 0;">Un script SQL direct PostgreSQL existe dans <code>docs/sql/import_contract_clause_reference.sql</code> 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.
</li>
<li style="margin:0.38rem 0;">Les templates generes sont <code>direction = sale</code>, 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.
</li>
<li style="margin:0.38rem 0;">Les variables reconnues sont rendues depuis le contexte contrat (<code>[Contract_Number]</code>, <code>[reference]</code>, <code>[party]</code>, <code>[company]</code>, <code>[currency]</code>, <code>[incoterm]</code>, <code>[incoterm_location]</code>, <code>[payment_term]</code>, <code>[product]</code>, <code>[quantity]</code>, <code>[unit]</code>, <code>[product_origin]</code>, <code>[del_from]</code>, <code>[del_to]</code>). Les variables inconnues restent litterales pour override.
</li>
<li style="margin:0.38rem 0;">Sens metier attendu de <code>Optional</code>: 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&#x27;utilisation d&#x27;un template sans modification ne devrait pas la declencher.
</li>
</ul>
</li>
</ul>
</li>
<li style="margin:0.38rem 0;">Session <code>2026-04-30</code>: PnL fees ouverts et <code>% rate</code>, promue dans <a href="fees.md">fees.md</a> et <a href="valuation-pnl-mtm.md">valuation-pnl-mtm.md</a>.
</li>
<li style="margin:0.38rem 0;">Session <code>2026-05-01</code>: solde ouvert apres lots physiques et lots effectifs des fees, promue dans <a href="lots-and-quantities.md">lots-and-quantities.md</a> et <a href="fees.md">fees.md</a>.
</li>
<li style="margin:0.38rem 0;">Session <code>2026-05-06</code>: Remove physical lot, promue dans <a href="lots-and-quantities.md">lots-and-quantities.md</a>.
</li>
<li style="margin:0.38rem 0;">Session <code>2026-05-09</code>: Lots Management, promue partiellement dans <a href="lots-management.md">lots-management.md</a>.
</li>
<li style="margin:0.38rem 0;">Session <code>2026-05-13</code>: cadrage <code>quantity_theorical</code> / <code>quantity</code>, amount de ligne, Weight basis, invariants de quantite, checks Python bloquants et diagnostic SQL. Promue dans <a href="lots-and-quantities.md">lots-and-quantities.md</a>, <a href="lots-and-quantities.en.md">lots-and-quantities.en.md</a>, <a href="invariants.md">invariants.md</a> et <a href="sql/README.md">sql/README.md</a>.
</li>
</ul>
