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

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

  1. Définir le type dans la configuration/static data concernée.
  2. Définir si le contrat représente fournisseur, client, investissement, prêt ou une nouvelle catégorie réellement différente.
  3. Vérifier ContractBill et le type de BillData utilisé pour ses entries.
  4. Enregistrer le contrat dans BillCreationContext._usedContractsByType.
  5. Ajouter/adapter ContractsReportBill.
  6. Définir le contract_regularization_uid correspondant.
  7. Vérifier les calculs getContractPaidOrReceivedInAdvance() et getContractToPayOrReceive().
  8. Mettre à jour les relations de comptes Answer Key/Grading.
  9. 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 :

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.


Revision #2
Created 2026-09-18 19:17:34 UTC by Mathis
Updated 2026-09-18 20:13:39 UTC by Mathis