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.
Ajouter un type de contrat ou une règle de contrat
ContractBill et le type de BillData utilisé pour ses entries.
Enregistrer le contrat dans BillCreationContext._usedContractsByType.
Ajouter/adapter ContractsReportBill.
Définir le contract_regularization_uid correspondant.
Vérifier les calculs getContractPaidOrReceivedInAdvance() et getContractToPayOrReceive().
Mettre à jour les relations de comptes Answer Key/Grading.
Ajouter le rendu/report Unity si les colonnes diffèrent.
Dates et durée
Les calculs utilisent la date du contrat, le nombre d'unités/années et les bornes fiscales. Tester un contrat :
-1.
Debug
Si un contrat apparaît dans le report mais régularise mal, le problème est probablement après ContractBill. Si le contrat lui-même manque, commencer par la génération/bill factory et _usedContractsByType.