Régularisations de fin de période
Rôle
Les régularisations transforment les données accumulées pendant le module en écritures de fin de période. Elles concernent notamment amortissements, contrats, stocks et comptes explicitement configurés pour être régularisés.
Préférences structurantes
Les constantes By Module exposent plusieurs flags :
uses_regularizations;uses_new_regularizations;regularization_accounts_count;affected_regularizations_reports;uses_stock_regularizations;has_new_immobilizations;has_new_contracts.
Calcul générique
utilsByModule.getAmountToRegularize() calcule la portion à régulariser en fonction du montant, de la date d'acquisition/début, de la fin de vie/contrat et des bornes de l'exercice. Les helpers spécialisés contrats et immobilisations s'appuient sur cette logique temporelle.
Static data
contract_regularizations.json fournit les types de régularisation de contrats. D'autres comportements sont pilotés par les settings de modules/pages et les comptes définis dans les données Accounting.
Runtime Unity
RegularizationDataBase;RegularizationBillEntryBase;ContractRegularizationBillEntry;BillDataContractRegularizationsReport.
UI
ContractRegularizationsReportControl;ContractWithInterestRegularizationsReportControl;- rows spécialisées correspondantes.
flowchart TD
DATA[Immobilizations / Contracts / Stock] --> PERIOD[End of fiscal period]
PERIOD --> CALC[Regularization calculations]
CALC --> REPORT[Regularization Reports]
CALC --> ENTRY[Journal entries]
ENTRY --> LEDGER[Ledger]
LEDGER --> FS[Financial statements]
Pourquoi cette page est séparée
Une régularisation n'est ni “un contrat”, ni “une immobilisation”, ni “un bill” au sens architectural. C'est une étape transversale de fin de période qui consomme ces domaines et produit des écritures.
Ajouter une nouvelle régularisation
1. Identifier la source
Une régularisation doit venir d'une donnée métier précise : contrat, immobilisation, taxe, stock ou compte explicitement configuré. Ne pas créer une écriture “magique” directement dans l'état financier.
2. Définir le calcul
Réutiliser getAmountToRegularize() lorsqu'il s'agit de répartir un montant sur une période. Le helper prend acquisition, fin de vie éventuelle, exercice fiscal, précision et sens inAdvance.
3. Définir les comptes
Ajouter les relations debit/credit dans la couche Account State appropriée. L'ordre compte : getRegularizationsAccountsOrdersAndRelations() est exécuté avant certaines étapes de closing/états.
4. Ajouter le report si l'utilisateur doit voir/calculer la régularisation
Créer ou étendre la Bill/report data serveur, le modèle Unity et le contrôle UI. Configurer la page dans les JSON.
5. Answer Key + Grading
Le même calcul de montant doit être utilisé des deux côtés. Le grading possède des branches pouvant utiliser les régularisations saisies par l'étudiant (useUserRegularizations) : vérifier si la nouvelle règle appartient à ce chemin.
Test minimal
- montant entièrement dans l'exercice;
- prorata début/fin d'exercice;
- in advance vs to pay/receive;
- arrondi selon
numDecimals; - impact trial balance;
- impact income statement/balance sheet;
- context suivant.
No comments to display
No comments to display