---
suivi: 1296
date: 2026-08-12
sujet: facture_avancement_retenues_cumulees
chantier: marches_compta
type: ajustement
statut: poussé
hash: 1dfe5f83
fichiers:
  - app/Services/MarcheSyntheseFinanciereService.php
  - app/Services/MontantFactureSousTraitantService.php
  - app/Http/Controllers/FactureController.php
  - resources/js/Pages/Factures/Show.vue
  - database/data/journal_mises_a_jour_post_2026_06_12.php
---

## PROMPT ENVOYÉ

Avancement du marché sur fiche facture : retenues cumulées AVANT/APRÈS (pas le théorique figé), retrait du plafond des encarts, alerte autres factures en cours. Suite #1295. Aucune migration, aucun dépôt.

## SYNTHÈSE

### Motif
Les deux encarts affichaient le même détail de retenues **théoriques** et un « Plafond hors retenues » (donnée marché) trompeur sur une fiche facture.

### Correction
- Source unique : `MarcheSyntheseFinanciereService::historiqueSituationsHt` (colonnes RG/CP/CIE HT de l’historique Synthèse, conversion #1292).
- Cumulé = factures payées ou NV1+ (#1287) ; courante exclue en AVANT, toujours incluse en APRÈS (simulation).
- Affichage `cumulé / théorique (reste …)` ; théorique 0 masqué sauf cumulé > 0 (dette 58).
- Plafond retiré des encarts (reste dans le payload + message de confirmation #1295).
- « Reste à facturer HT » = même formule plafond − total facture.
- Alerte informative autres factures en cours (liens `factures.show` / `factures.fiche.show`) ; respect FactureVisibility (« dont N non visibles »).

### Point de vigilance (non corrigé)
Sur marché 109, RG « retenue » Synthèse inclut la facture historique sans référence, CP « retenue » non — deux règles. Le cumul AVANT de ce lot suit l’**historique situations** (pas `MarcheRetenuesEtatsService`). Une divergence vs 1 801,40 € CP « retenue » est une information, pas un ajustement à forcer.

### Non touché
Dépôt, frise, bilan, MarcheRetenuesEtatsService, garde-fou #1295 (confirmation + log).

## DÉPLOIEMENT-TEST

```bash
git pull origin main
php artisan optimize:clear
php artisan view:clear
php artisan journal:sync
```

Écran facture 6 / marché 109 : retenues cumulées distinctes AVANT/APRÈS ; pas de plafond dans les encarts.

## LEÇON
Afficher un théorique identique dans AVANT et APRÈS fait croire à une retenue intégrale. Sur une fiche facture, le plafond marché appartient au contexte d’alerte de dépassement, pas aux encarts d’avancement.
