---
suivi: 1263
date: 2026-08-11
sujet: DIAG impact #1262 CIE avant déploiement (figé vs recalculé)
chantier: depot-factures / retenues / CIE / compta / Sage
type: diagnostic
statut: poussé
hash: 35d74036
fichiers:
  - tools/diag/diag_impact_cie_1263.php
  - docs/suivi/SUIVI_1263_diag_impact_cie.md
---

# SUIVI #1263 — DIAG impact CIE avant #1262

## PROMPT ENVOYÉ

Cartographie des répercussions du fix #1262 (CIE au numérateur + sync
`montant_cie`) **avant** déploiement. Interdiction de coder le fix. Lecture seule.

## FICHES LUES

- `#1261` — CIE absent du numérateur ; association ≠ `montant_cie` ; formule
  corrigée arithmétiquement validée ; cas dépôt 1230 ACP CLOISON sit. 6.
- `#1224` — pas de case UI CIE ; `montant_cie` saisie/OCR.
- `#890` / `#990` — finitions au numérateur ; CIE désigné via `cie_repartitions`.
- `#1043` — ne pas avaler les exceptions en zéro crédible.
- Leçon bilan : `getBilan` écrit via `refreshMontantsAgreges` — **interdit** ici.

## OBJET 1 — Figée / recalculée (DÉCISIF)

| Grandeur | Mode | Preuve | Si #1262 |
|---|---|---|---|
| HT/TVA/TTC brut (affichage) | **RECALCULÉE** | Vue `totalTtcBrutCompta` ; pas de colonne HT brut | change si `montant_cie` peuplé |
| Lignes d’écriture (RG/CP/CIE/401/TVA) | **FIGÉE** | `ocr_raw.saisie.lignes_comptables` ; Sage lit ces crédits (`ComptabilisationController` L341, L2886) | **pas** de réécriture Sage sans régénération |
| `retenues_garanties` | **FIGÉE** | crédits lignes à la compta (`RetenueGarantieService` + extractor) | inchangé sans recompta |
| CP collecte | **FIGÉE** | tables CompteProrata | inchangé |
| CIE capté frise | **RECALCULÉE** | `MarcheCouvertureKpiService` L109–125 | ↑ si `montant_cie` |
| CIE à venir frise | **RECALCULÉE** | `cie_repartitions` L160–166 | indépendant formule |
| net / `montant_ht` dépôt | **FIGÉE** | colonnes dépôt + `FactureMontantsDepotSynchronizer` | **inchangé** |

**Verdict** : #1262 **ne réécrit pas le passé Sage** tant qu’on ne régénère pas
`lignes_comptables` et qu’on ne re-envoie pas. En revanche l’**affichage** et la
**frise CIE capté** recalculent dès que `montant_cie` est peuplé.

## OBJET 2 — Écritures / équilibre (prouvé script)

| Rôle | Compte (défaut) | Sens | Grandeur |
|---|---|---|---|
| charge_principal | poste marché | Débit | HT brut = base/1,2 |
| tva_principal | **445660** (20 %) | Débit | TVA brute |
| credit_401_principal | 401000 | Crédit | **NET** (= TTC à régler) — L431 calculator |
| rg / cp / cie / opc / finitions | 401700 / 401800 / 401600 / 401500 / 401400 | Crédit | retenues |

Équilibre cas ref :
- AVANT (cie=0) : D=C=58 622,94 **OK**
- PIÈGE (cie=408,60 **sans** numérateur) : D=58 622,94 C=59 031,54 **ROMPU**
- APRES fix simulé : D=C=59 064,67 **OK** ; 401 reste 54 226,22

TVA : 9 770,49 → 9 844,11 (+73,62) sur 445660 — **arbitrage déclaration** si
déjà parti / déclaré.

## OBJET 3 — Paiement / avoirs

- Net piloté par `depot.montant_ttc` / `factures.net_a_payer_ttc` (synchronizer) /
  `ComptabilisationController:206` — **indépendant** de la base reconstituée.
- Avant = après = 54 226,22.
- Plafond avoirs (`ApplicationAvoirDepotService` L191–196) : `depot.montant_ttc`
  ou `ventilation.montant_ttc` (= **TTC à régler / net**), **pas** le brut
  reconstitué → plafond **n’augmente pas** de 441,73 €.

## OBJET 4 — Marché

| Poste | Impact #1262 |
|---|---|
| Frise Facturé | non (HT stocké net) |
| RG cumul / RG à libérer | non sans recompta (figé `retenues_garanties`) |
| CP cumul | non (figé) |
| CIE capté | **oui** si `montant_cie` peuplé |
| CIE à venir (répartitions) | non via formule ; risque double = objet 5 |
| `reste_a_regler_ht` (bilan) | **non** (`total - facturé - pénalités`, sans CIE) |
| Pénalités | non |
| BilanFinancierService | pas de conso `montant_cie` — non direct |

## OBJET 5 — Double comptage

Deux sources distinctes :
- A : `montant_cie` → capté frise + écriture
- B : `cie_repartitions.montant_calcule_ht` → à venir / « dont CIE »

`partTitulaire` soustrait **les deux**. Si une op associée a aussi des
répartitions `marche_id`, peupler `montant_cie` crée un **risque OUI** de double
comptage frise. À confirmer sur OVH (section 6 script).

## OBJET 6 — Factures déjà comptabilisées

Script section 4 — **exécuter sur OVH**. Local stub : 0 (ne valide rien).

## OBJET 7 — Script

`tools/diag/diag_impact_cie_1263.php` — bootstrap absolu, lecture seule,
simule AVANT/PIÈGE/APRÈS. Méthodes pures uniquement (liste dans sortie §1).

## OBJET 8 — Arbitrage

Voir synthèse livrable. Pas de reprise / rejeu / décomptabilisation proposée.

## LEÇON

Figé ≠ recalculé : les écritures Sage sont dans le JSON `lignes_comptables` ;
la reconstitution UI et le CIE capté frise ne le sont pas. Peupler `montant_cie`
**sans** fix numérateur casse l’équilibre débit/crédit (+CIE orphelin).

## NOTE chantier séparé

Partir du HT brut papier et déduire (plutôt que remonter du net) = chantier
distinct — non traité ici.

## DÉPLOIEMENT

Aucun code applicatif. Exécuter le script sur OVH **avant** #1262.
