Comptabilité analytique
Comptabilité analytique
Périmètre : plan comptable / natures de prestation, ventilation analytique des charges fournisseur (par exercice, trimestre, contrat, affaire, site, client), immobilisations, clôture annuelle (FNP / CCA / CAP / AAR / provisions) et pivots de contrôle. Ce domaine couvre la couche analytique qui se superpose à la comptabilité opérationnelle (journaux, TVA, exports légaux FEC) décrite dans docs/10-domain-sales-billing.md §3.15.
/workspace/accounting/* et /api/workspace/accounting/*. Source de cette page : docs/23-domain-accounting.md.Vocabulaire & entités
| Terme | Entité | Définition |
|---|---|---|
| Compte / Nature de prestation | AccountingCode | Poste analytique d'une charge (ex. 607010001 - CLLD Achats de marchandises). |
| Catégorie de compte | AccountingCodeCategory | IMMOBILISATION, SERVICE, COMMISSION, PURCHASE, BUYBACK, INSURANCE, MAINTENANCE, FINANCIAL. |
| Affectation | SupplierInvoiceAllocation | Rattachement d'une charge à un exercice, un trimestre, un contrat/affaire/client/site. |
| Enveloppe de financement | — | Ensemble des factures fournisseur composant le capital financé d'un contrat de location. |
| Charge réseau | — | Charge couvrant plusieurs contrats/sites, ventilée en plusieurs SupplierInvoiceAllocation dont la somme égale le total HT. |
| Immobilisation | FixedAsset | Bien inscrit à l'actif (comptes 215*), amorti sur une durée ; événements tracés dans FixedAssetEvent. |
| Événement d'immobilisation | FixedAssetEvent | AMORTIZATION, REVALUATION, DISPOSAL, TRANSFER. |
| Clôture | FiscalYearClosing | Processus de fin d'exercice ; états : OPEN → IN_PROGRESS → REVIEW → CLOSED. |
| Provision | AccountingProvision | Écriture de régularisation : FNP (facture non parvenue), CCA (charge constatée d'avance), CAP (charge à payer), AAR (avoir à recevoir), risques, stock. |
| Exercice de rattachement | — | Exercice comptable d'imputation (peut différer de l'exercice de comptabilisation). |
Le modèle complet est dans
docs/04-data-model.md§16. La facture fournisseur enrichie est décrite en §8 (SupplierInvoice).
Écrans
| Écran | Route | Contenu |
|---|---|---|
| Plan comptable | /workspace/accounting/codes | CRUD des AccountingCode (code, libellé, catégorie, flag immobilisation, actif/inactif, hiérarchie) + import/export. |
| Affectation des charges | /workspace/accounting/allocations | File de travail des factures à qualifier (nature, affaires/hors affaires, exercice, trimestre, contrat/affaire/client/site) + affectation en masse + ventilation charge réseau. |
| Immobilisations | /workspace/accounting/fixed-assets | DataTable (code, valeur brute, amortissement cumulé, VNC, statut) + fiche plan d'amortissement + événements. |
| Clôture annuelle | /workspace/accounting/closing | Sélection exercice/entité, tableau de bord de complétude, saisie provisions, apurement, verrouillage. |
| Pivots & états | /workspace/accounting/reports | Pivot exercice × compte × contrat/affaire, pivot compte × client × site, vérification inter-exercices, VERIF IMMO, retraitement de marge consolidée. |
Modèle de données (points clés)
- Le plan comptable est paramétrable par organisation : codes activables/désactivables, ajout de comptes custom. Un seed initial couvre 23 codes issus de l'existant (de
215410000à622100001). - Les comptes
215*(immobilisations) ne peuvent pas être affectés en charge directe : toute facture sur ce compte alimente obligatoirement unFixedAsset. - La somme des
SupplierInvoiceAllocationd'une facture ventilée doit égaler sontotalHt(contrôlé côté service). - Un exercice
CLOSEDest immuable : aucune affectation ni provision ne peut être modifiée ; les corrections passent par l'exercice ouvert suivant. - Une
AccountingProvisionréférence sonreversedInYear(exercice d'apurement) ; l'apurement est tracé et déclenché automatiquement à l'ouverture de l'exercice suivant. - L'exercice de rattachement peut différer de l'exercice de comptabilisation (charges sur exercice antérieur).
API
Toutes les routes exigent une permission accounting.* (vérifiée côté API et UI).
| Méthode | Route | Permission |
|---|---|---|
GET | /api/workspace/accounting/codes | accounting.code:read |
POST | /api/workspace/accounting/codes | accounting.code:create |
PATCH | /api/workspace/accounting/codes/[id] | accounting.code:update |
GET | /api/workspace/accounting/allocations | accounting.allocation:read |
PATCH | /api/workspace/accounting/allocations/[invoiceId] | accounting.allocation:update |
GET | /api/workspace/accounting/fixed-assets | accounting.fixed_asset:read |
POST | /api/workspace/accounting/fixed-assets | accounting.fixed_asset:create |
POST | /api/workspace/accounting/fixed-assets/[id]/events | accounting.fixed_asset:update |
GET | /api/workspace/accounting/closings | accounting.closing:read |
POST | /api/workspace/accounting/closings | accounting.closing:create |
POST | /api/workspace/accounting/closings/[id]/provisions | accounting.closing:update |
POST | /api/workspace/accounting/closings/[id]/close | accounting.closing:close |
GET | /api/workspace/accounting/reports/pivot | accounting.report:read |
Exemple de référence d'endpoint :
/api/workspace/accounting/allocations/[invoiceId]Auth Affecte ou met à jour l'analytique d'une facture fournisseur validée (nature de prestation, exercice, rattachements).
Corps (JSON)
AccountingCode).2025). Peut différer de l'exercice de comptabilisation.Q1 / Q2 / Q3 / Q4).true = charge rattachée à un contrat/affaire ; false = frais généraux.isAffaire = true).{ leaseContractId, amountHt }. La somme doit égaler totalHt de la facture.Requête
curl -s -X PATCH "$API/api/workspace/accounting/allocations/$INVOICE_ID" \
-H "Content-Type: application/json" -H "Cookie: $SESSION" \
-d '{"accountingCodeId":"code_xxx","fiscalYear":2025,"isAffaire":true,"leaseContractId":"lease_xxx"}'
Réponse
{ "id": "inv_…", "accountingCodeId": "code_xxx", "fiscalYear": 2025, "isAffaire": true, "leaseContractId": "lease_xxx" }
Workflows
Affectation d'une facture fournisseur
À la validation comptable d'une SupplierInvoice :
- Saisie de la nature de prestation (
accountingCodeId) — obligatoire. - Indicateur Affaires / Hors affaires.
- Exercice d'affectation (
fiscalYear) — obligatoire. - Trimestre (
quarterTag) pour l'analytique trimestriel. - Rattachement à un contrat ou une affaire, un client, un site.
- Indicateur d'inclusion dans l'enveloppe de financement.
- Si charge réseau : ventilation en plusieurs
SupplierInvoiceAllocation(somme contrôlée = total HT).
Une facture non affectée bloque la clôture de son exercice.
Gestion des immobilisations
- Facture sur compte
215*→ génère ou alimente unFixedAsset. - Dotation annuelle →
FixedAssetEventde typeAMORTIZATION(méthode linéaire par défaut). - Cession / mise au rebut →
FixedAssetEventde typeDISPOSAL, sortie de l'actif.
Clôture annuelle
OPEN
│ (lancement de la clôture)
▼
IN_PROGRESS
│ (contrôles : factures affectées, écarts résolus)
│ (saisie/génération provisions : FNP / CCA / CAP / AAR / risques / stock)
▼
REVIEW
│ (validation direction financière)
▼
CLOSED (exercice verrouillé — provisions immuables)
À l'ouverture de l'exercice suivant : apurement automatique des provisions (reprise). Les écritures de régularisation alimentent l'export comptable vers l'outil externe (FEC / Sage / Cegid / Pennylane).
Contrôle inter-exercices
À chaque clôture : comparaison des montants par compte avec le fichier de clôture N-1. Les écarts sont listés avec une zone d'analyse à renseigner (reclassements, corrections).
Règles métier
- Une
SupplierInvoicevalidée doit porter une nature de prestation et un exercice d'affectation. - La somme des
SupplierInvoiceAllocationd'une facture ventilée doit égaler sontotalHt. - Exercice
CLOSED→ aucune modification possible (affectation ni provision) ; les corrections passent par l'exercice suivant. - Comptes
215*→ alimentent uniquement unFixedAsset, jamais une charge directe. - Toute affectation et toute écriture de clôture → audit log systématique.
- Apurement de provision → tracé via
reversedInYear.
Notifications
| Événement | Canal | Destinataire |
|---|---|---|
| Facture à affecter | In-app | Comptable |
| Clôture lancée | In-app | Direction financière |
| Factures non affectées bloquant la clôture | In-app + email | Comptable |
| Exercice clôturé | In-app + email | Direction financière |
| Apurement de provisions disponible | In-app | Comptable |
KPIs
Taux de factures affectées · charges par compte/exercice/contrat · montant des provisions par type (FNP / CCA / CAP / AAR) · valeur nette comptable du parc d'immobilisations · écarts inter-exercices non résolus · marge consolidée par contrat réseau.