Contrats
Responsabilité
Les contrats Accounting sont des données métier persistées/générées qui servent à créer des bills et rapports de contrat, puis à calculer les montants payés/reçus d'avance ou restant à payer/recevoir en fin de période.
Serveur
classes/bills/contracts/ContractBill.js: création du contrat/bill;classes/bills/reports/ContractsReportBill.js: rapport des contrats utilisés;BillCreationContext._usedContractsByType: registre des contrats générés;utilsByModule.getContractPaidOrReceivedInAdvance();utilsByModule.getContractToPayOrReceive().
Types de contrats
Le code traite notamment des contrats fournisseur, client, investissement et prêt court terme. Le type de contrat est stocké dans billData.contractType et influence taxes, comptes et sens de l'écriture.
Modèle Unity
SeededContract contient date, contractRegularizationData, liste de SeededContractBillEntry et unités. Il peut calculer son subtotal pour un type de bill donné.
Relation avec les produits/services
ContractBill réutilise les classes de bill data produit ou service pour stocker les entrées du contrat. Le contrat conserve aussi l'UID de régularisation correspondant.
flowchart LR
CFG[Contract config] --> CB[ContractBill]
CB --> USED[_usedContractsByType]
USED --> REPORT[ContractsReportBill]
USED --> REG[Contract Regularization]
REG --> GJ[Journal / Accounts]
Debug
Pour un montant de contrat incorrect, inspecter d'abord le bill et ses entries, puis contractType, les dates fiscales, contract_regularization_uid et enfin le calcul de régularisation.