4.2 KiB
4.2 KiB
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.ratesi present, sinonCurrency.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
.fodtconsomment des proprietes simples.
2. Extensions de account.invoice.line
Sources: modules/purchase_trade/invoice.py, stock.py.
- Champ
lotsuraccount.invoice.line. - Champ
feesuraccount.invoice.line. - Champ fonctionnel
included_padding, affichelot.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.
- detaillee ligne par ligne si
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.feepeut 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:
% rateutilisefin_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.forexporte 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.