4.9 KiB
4.9 KiB
Accounting Business Rules
Date: 2026-05-05
1. Ecritures comptables
Source principale: modules/account/move.py.
Move
account.moveporte un numero internenumber, unpost_number, une societe, une periode, un journal, une date effective, une date de post et des lignes.- Un move draft peut etre modifie; un move posted ne doit pas etre modifie hors champs explicitement toleres.
- A la creation, le numero est tire de la sequence du journal si absent.
- La date ajuste la periode si la date sort de la periode courante.
- Le posting refuse:
- un move sans ligne;
- un move non equilibre dans la devise societe.
- Au
post, le move recoitstate = posted,post_dateetpost_number. - Les lignes a zero sur comptes reconciliables peuvent etre letrees automatiquement.
Move Line
account.move.lineporte debit, credit, compte, party, devise seconde, montant devise seconde, taxes, maturity date et reconciliation.- La validite des lignes suit l'equilibre du move.
- Le lettrage groupe compte, party et devise.
- Si une devise seconde est presente, le solde de reconciliation peut etre lu dans cette devise plutot que dans la devise societe.
2. Comptes
Source principale: modules/account/account.py.
- Les comptes sont rattaches a une societe et a un type de compte.
- Les types de compte portent les categories structurantes: assets, receivable, payable, debt, revenue, expense, stock.
- Les comptes peuvent etre fermes, reconciliables, ou exiger une party.
- Les comptes portent aussi des indicateurs Tradon ajoutes:
fx_eval,fx_eval_detail, comptes de gain/perte de change. - Les soldes sont calcules par contexte: societe, periodes, dates, posted only.
3. Factures
Source principale: modules/account_invoice/invoice.py.
Workflow
Etats:
draftvalidatedpostedpaidcancelled
Regles:
- Une facture fournisseur exige une date de facture des
Validate. - Une facture client standard exige la date au
Post, mais ce repository a modifie le flux pour creer aussi le move et le numero client auValidate. postedrepresente le posting comptable.paiddepend du lettrage des lignes a payer.cancelledcree ou reference les moves d'annulation selon le contexte.
Montants et taxes
untaxed_amount,tax_amount,total_amountsont caches et recalcules.- Les taxes de lignes alimentent les taxes calculees de facture.
- Les taxes manuelles sont preservees lors de
update_taxes. - Une ligne produit genere des
account.tax.linede typebase. - Une ligne de taxe facture genere une move line avec
account.tax.linede typetax; si la taxe est manuelle, une lignebasecomplementaire peut etre ajoutee. - La devise seconde est portee par
account.move.line, pas paraccount.tax.line.
Paiements
lines_to_payexpose les lignes comptables ouvertes a payer.payment_linesrattache les lignes de paiement a la facture.- Le wizard
account.invoice.paycree/reconcilie les paiements selon la methode de paiement. - Les wizards de reschedule/delegate agissent sur les lignes a payer.
4. Devises
Regles notees dans notes/business_rules.md et vues dans le code:
account.move.line.rateest un champ stocke/editable dans ce repository.- Le sens du taux suit Tryton: devise seconde / devise societe.
- Montant societe =
amount_second_currency / ratequand la devise societe a une base a 1. - Les lignes facture generees doivent renseigner
ratequand elles portentamount_second_currency. - Un fallback central sur
account.move.line.createcalcule le taux manquant depuis les montants. - La revaluation FX Tradon cree des moves de revaluation sur comptes marques
fx_eval.
5. Reconciliation
Source principale: modules/account/move.py.
- Les comptes reconciliables peuvent etre letres automatiquement ou via wizard.
- Le wizard de reconciliation cherche les comptes avec lignes ouvertes, puis les parties, puis les devises.
- Il peut proposer uniquement les combinaisons balancees, ou creer un write-off si un ecart reste.
- La devise de reconciliation est la devise seconde si elle existe, sinon la devise du compte/societe.
6. Statements
Source principale: modules/account_statement/statement.py.
- Un statement a des lignes, origines, solde de depart/fin, devise et journal.
- La validation controle solde, montants et nombre de lignes selon la configuration.
- Le posting cree les moves des lignes.
- La reconciliation des lignes relie les lignes statement aux lignes comptables.
7. Stock et couts
Source principale: modules account_stock_*.
- Les modules stock comptables generent des moves depuis les mouvements stock selon methode continental/anglo-saxon.
- Les landed costs et shipment costs creent des objets dedies, allocation sur mouvements/shipments, puis posting comptable.
- Dans
purchase_trade, les fees peuvent creer des mouvements de stock/cout supplementaires lies aux lots.