# Purchase Trade Accounting Extensions Date: 2026-05-05 ## 1. Extensions de `account.invoice` Source: `modules/purchase_trade/invoice.py`. ### Padding comptable - `do_lot_invoicing()` appelle `_create_sale_padding_moves()`. - `_post()` poste aussi les additional moves de padding. - Deux descriptions identifient les moves: - `Sale padding accrual`; - `Sale padding reversal`. - Les comptes viennent de `account.configuration`: - `default_sale_padding_account`; - `default_accrual_padding_account`. - Provisoire vente: - debit sale padding; - credit accrual padding. - Finale vente: - debit accrual padding; - credit sale padding. - Montant: - `lot.sale_invoice_padding * provisional_invoice_line.unit_price`; - conversion devise via `invoice.rate` si present, sinon `Currency.compute`. - Les move lines portent: - `lot`; - `origin = invoice_line`; - `description = Padding`; - party si le compte l'exige. ### Proprietes `report_*` Le module expose un pont facture -> vente/achat/lot/shipment: - parties/adresses; - contrat; - produit; - quantites, poids, bales; - prix et prix en lettres; - BL, vessel, ports, controller, S/I; - pro forma liee au lot; - freight amount depuis fee shipment `Maritime freight`; - payment order. Regle de conception: - la logique business reste en Python; - les `.fodt` consomment des proprietes simples. ## 2. Extensions de `account.invoice.line` Sources: `modules/purchase_trade/invoice.py`, `stock.py`. - Champ `lot` sur `account.invoice.line`. - Champ `fee` sur `account.invoice.line`. - Champ fonctionnel `included_padding`, affiche `lot.sale_invoice_padding`. - Proprietes `report_*` au niveau ligne: - product name/description; - rate currency/value/unit; - crop/attributes; - net/lbs. ## 3. Extensions de `account.move` et `account.move.line` Source: `modules/purchase_trade/stock.py`. ### Move Line - `revaluate`: lien vers ligne revaluee; - `lot`: rattachement lot; - `fee`: rattachement fee. Utilite: - audit par lot/fee; - revaluation FX detaillee; - reporting PnL et couts. ### Move - `IsBankMove()` detecte un move bancaire si une ligne utilise un compte de payment method debit/credit. ## 4. Extensions de `account.account` Source: `modules/purchase_trade/stock.py`. - Detection des devises secondes ouvertes par compte. - Recuperation des lignes par devise. - Revaluation FX par compte: - detaillee ligne par ligne si `fx_eval_detail`; - globale par devise sinon. Source standard modifiee observee: `modules/account/account.py`. - Champs: - `fx_eval`; - `fx_eval_detail`; - `currency_exchange_credit_account`; - `currency_exchange_debit_account`. ## 5. Extensions de configuration comptable Source: `modules/purchase_trade/configuration.py`. Ajouts sur `account.configuration`: - `default_sale_padding_account`; - `default_accrual_padding_account`; - templates de documents facture/vente/achat/shipment; - resolution dynamique des templates via `purchase_trade.configuration`. ## 6. Fees et comptabilite Source: `modules/purchase_trade/fee.py`. - `fee.fee` peut retrouver son invoice. - Les fees calculent quantity/amount selon mode: - lumpsum; - per quantity; - percent price/cost; - rate selon regle ACT/360. - `_get_account_move_fee()` cree des moves de fee lies a un lot. - Les comptes utilises viennent du produit fee: - stock/COGS/stock in/stock out selon flux. - Les move lines peuvent porter lot et fee. Regles recentes: - `% rate` utilise `fin_int_delta`, pas la date du jour. - Les fees suivent les lots effectifs: - virtuel si aucun physique; - physiques des qu'ils existent. ## 7. Forex Source: `modules/purchase_trade/forex.py`. - `forex.forex` porte achat/vente devise, montant, rate, bank, maturity. - Peut creer: - facture fournisseur de frais; - move comptable; - lignes de couverture achat/vente physique. - Reporting BI via `forex.bi`. ## 8. Payment terms Source: `modules/purchase_trade/payment_term.py`. Extensions: - `account.invoice.payment_term.is_mixed`; - lignes de term avec: - `trigger_event`; - `term_type`; - `trigger_offset`; - unite d'offset; - EOM flag/mode; - risk classification. Impact: - utile pour credit risk, maturity date, bills et conditions trade.