---
suivi: 1306
date: 2026-08-13
sujet: marche_retenues_presentation
chantier: marches_compta
type: presentation
statut: poussé
hash: e7c06f76
fichiers:
  - app/Services/MarcheRetenuesEtatsService.php
  - app/Http/Controllers/MarcheController.php
  - resources/js/Pages/Marches/Show.vue
  - tools/diag/verif_retenues_refonte_1306.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
---

## PROMPT ENVOYÉ

Présentation onglet Retenues & Pénalités (#1306) : anatomie identique RG/CP/CIE/OPC,
détail prélèvements CIE/OPC/pénalités, récap en tête. Aucune formule / valeur.
HEAD attendu 4b63980d (#1304).

## SYNTHÈSE

### Fiches lues
- `#1304` LEÇON double conversion ; valeurs HT marché 109 figées.
- `#1287` LEÇON états Retenue / En cours ; source unique MRES.
Approche : enrichir `detail_*` sans toucher aux cumuls ; Vue seulement pour l’anatomie.

### Présentation
- 4 natures : Théorique · Retenu · En cours · Restant + barre + Spécifique + tableau.
- OPC tout à zéro → une ligne repliée (pas masqué).
- Récap en tête (Nature / Théorique / Retenu / En cours / Restant + Total).
  Pénalités **hors** récap (justification : déduction de situation ≠ retenue cumulée).
- CIE détail : prélèvements (même source que cumuls) + dettes ouvertes grisées ;
  soft-delete ops + reps.
- Pénalités : Total / Déduit / Restant + message vide explicite.

### Non touché (rappel)
- Périmètre CP (retenu 1 801,40 marché 109, filtre intacct_bill_id) — arbitrage métier ouvert.
- CouvertureKpi / frise, Synthèse popup, Factures/DepotFacture, foncier.
- Aucune conversion, aucun ×1,2, aucune écriture.

### Vérification écran
**NON** (DB locale / localhost indisponibles). Script prod à rejouer.

## DÉPLOIEMENT-TEST

```bash
git pull origin main
php artisan optimize:clear
php artisan view:clear
php artisan journal:sync
php -d display_errors=1 tools/diag/verif_retenues_refonte_1306.php
```

## LEÇON

Uniformiser des libellés sans unifier les natures métier : le récap exclut les pénalités
plutôt que d’inventer un « théorique » fictif. Les détails d’affichage doivent réutiliser
la même source que les cumuls, sinon le tableau contredit les indicateurs.
