---
suivi: 1537
date: 2026-09-14
sujet: Libération RG au numérateur de la reconstitution
chantier: depot-factures / retenues / liberation-rg
type: fix
statut: poussé
hash: a8779e89
fichiers:
  - app/Services/DepotFacture/EcrituresComptablesCalculator.php
  - resources/js/lib/depotFactureEcrituresCalculator.js
  - resources/js/Pages/DepotFactures/DepotFactureSaisieForm.vue
  - app/Services/MarcheRetenuesEtatsService.php
  - app/Services/MarcheSyntheseFinanciereService.php
  - app/Services/RetenueHistoriqueCollecteService.php
  - app/Services/RetenueGarantieService.php
  - app/Services/MarcheCouvertureKpiService.php
  - tests/Unit/DepotFactureEcrituresComptablesCalculatorTest.php
  - tests/Unit/LiberationRgFacture1535SourceTest.php
  - tests/Unit/LiberationRgFacture1536SourceTest.php
  - tests/Unit/LiberationRgFacture1537SourceTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
  - docs/suivi/SUIVI_1537_fix_liberation_rg_reconstitution.md
---

# SUIVI #1537 — Libération RG au numérateur

## PROMPT ENVOYÉ

FIX : la libération de RG doit entrer dans la reconstitution, pas
s’ajouter au net. Formule : base = (TTC + finitions + CIE − libération)
÷ (1 − RG% − CP% − OPC%). Net = montant saisi. PHP + JS. Plafond
inchangé. Rebase Vite. Push main.

## BASE GIT

HEAD = origin/main au départ du lot (chore hash #1536). Rebase Vite
sur origin/main à jour AVANT `npm run build`.

## FICHES LUES

- **#1536 LEÇON** — à corriger : le net n’est pas TTC + libération.
- **#1535 LEÇON** — « jamais dans le numérateur » était l’inverse du
  modèle ERP (on part du net saisi). Conservé : 401700 hors TVA APBILL ;
  plafond MRES ; case décochée = décompte identique.
- **#1267 LEÇON** — finitions / CIE au numérateur, pas au dénominateur.
  La libération suit le même schéma, signe opposé.

## SYNTHÈSE

### Mapping UI ↔ back

Aucun champ nouveau.

### Formule

base = (TTC à régler + finitions signées + CIE − libération RG)
÷ (1 − RG% − CP% − OPC%)

netAPayerTtc = TTC à régler − pénalités (annulation #1536).

Crédit 401000 = net saisi. Débit 401700 = libération TTC.
hasRetenues vrai aussi si libération > 0 (charge = base HT).

Plafond : LiberationRgFactureService inchangé (MRES retenu − factures).

### Cas de référence

net 64 146,15 · CP 1,5 % · libération 13 306,48
→ base 51 613,88 · CP 774,21 · net 64 146,15 · PHP = JS

## DÉPLOIEMENT-TEST

OVH : git pull origin main ; php artisan optimize:clear ; view:clear ;
journal:sync.

## LEÇON

L’ERP reconstitue le brut depuis le NET SAISI. Une libération est
déjà dans ce net : elle se retranche au numérateur (comme on ajoute
finitions/CIE), elle n’augmente pas le 401000. « Surtout pas dans le
numérateur » (#1535) était faux pour ce modèle.
