---
suivi: 1539
date: 2026-09-14
sujet: Affichage libération RG avancement et retenues
chantier: marches / retenues / liberation-rg
type: fix
statut: poussé
hash: d14e2d5d
fichiers:
  - app/Services/MontantFactureSousTraitantService.php
  - app/Services/MarcheRetenuesEtatsService.php
  - app/Services/LiberationRgFactureService.php
  - app/Services/MarcheSyntheseFinanciereService.php
  - app/Services/DemandeLiberationRgService.php
  - app/Http/Controllers/DepotFactureController.php
  - resources/js/Pages/Factures/Show.vue
  - resources/js/Pages/Marches/Show.vue
  - tests/Unit/LiberationRgFacture1535SourceTest.php
  - tests/Unit/LiberationRgFacture1538SourceTest.php
  - tests/Unit/LiberationRgFacture1539SourceTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
  - docs/suivi/SUIVI_1539_affichage_liberation_rg_avancement.md
---

# SUIVI #1539 — Affichage libération RG

## PROMPT ENVOYÉ

AFFICHER la libération de RG dans le bloc Avancement du marché
(trois lignes : retenue / libérée / encore détenue). Aligner la
page Retenues. Calcul facture #1537 et facturé #1538 inchangés.
Rebase Vite. Push main.

## BASE GIT

HEAD = origin/main au départ. Rebase Vite sur origin/main à jour
AVANT `npm run build` (Marches/Show.vue + Factures/Show.vue).

## FICHES LUES

- **#1538 LEÇON** — facturé = base reconstituée. Le « retenu net »
  du #1538 contredisait la sémantique demandée ici (retenue = brut).
  Conservé : restant = théorique − prélevé ; plafond sans double
  déduction, désormais sur encore détenue.
- **#1537 LEÇON** — calcul de facture juste, ne pas y toucher.
- **#1535 LEÇON** — acquisition NV1+ (`etatRetenue !== null`).

## SYNTHÈSE

### Mapping UI ↔ back

| Libellé | Notion | Clé |
| --- | --- | --- |
| RG retenue | prélevé brut | montant_retenu / cumule rg_ht |
| RG libérée | rendu NV1+ | montant_libere (+ en_cours) |
| RG encore détenue | retenue − libérée | montant_encore_detenue |
| Reste (parenthèses) | théorique − retenue | restant |

Lignes libérée / encore détenue absentes si cumul libération = 0.

### Plafond

disponible = encore détenue + libération HT du dépôt courant si déjà NV1+.

## DÉPLOIEMENT-TEST

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

## LEÇON

Retenue = historique du prélevé, jamais diminué par une libération.
Encore détenue = trésorerie et plafond. Les deux écrans (avancement
facture, onglet Retenues) doivent utiliser les mêmes trois mots.
