---
suivi: 1291
date: 2026-08-12
sujet: marche_synthese_lisibilite
chantier: marches
type: presentation
statut: poussé
hash: 8071a34a
fichiers:
  - resources/js/Components/Marches/MarcheSyntheseFinanciere.vue
  - resources/js/Pages/Marches/Show.vue
  - database/data/journal_mises_a_jour_post_2026_06_12.php
---

## PROMPT ENVOYÉ

REFONTE DE PRÉSENTATION de l’onglet Synthèse (suite #1284 / #1287 / #1290). Six défauts constatés sur marché 32 : chevauchement colonnes, alertes redondantes, lignes vides / restant OPC négatif, nom de service PHP, trop de « ? », zeros partout. Aucun calcul, aucune écriture, aucune migration.

## SYNTHÈSE

### Six défauts → corrections
1. **Chevauchement** — retrait des colonnes sticky ; 1ère colonne fusionnée (réf. + badge Historique / période · statut) ; 8 colonnes montants ; `table-fixed w-full` ; élargissement page `max-w-none` sur l’onglet Synthèse (`Show.vue`).
2. **Alertes** — fusion présentation des deux alertes RG en une seule (« Retenue de garantie dépassée de … HT » + corps métier) ; pénalités > HT conservées.
3. **Retenues à date** — ligne visible si theorique ∪ retenu ∪ en_cours ≠ 0 ; OPC à taux 0 avec retenu non nul reste ; restant négatif si théorique ~0 → tiret.
4. **Textes techniques** — plus de `MarcheRetenuesEtatsService::…` à l’écran ; note reste à régler → infobulle « ? ».
5. **Deux « ? » max** — plafond (« Montant réel… ») et « Reste à régler » ; autres contenus déplacés (title / agrégés dans tip plafond).
6. **Zeros** — tiret gris dans l’historique pour retenues ~0.

### Structure haut (OBJET 1)
Deux colonnes flex (`items-stretch`), totaux en `mt-auto` (même ligne quel que soit le nb d’avenants). « Montant réel à verser… » pleine largeur en dessous. Regroupement retenues non applicables / constatées.

### TTC
Retiré des cellules historique (place à 1280 px) ; conservé en seconde ligne des cartes de totaux.

## DÉPLOIEMENT-TEST

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

Validation manuelle Robin : marché 32 / 109, 1280 & 1920 px.

## LEÇON

Les colonnes `sticky` + `w-max` créent un chevauchement quand la largeur manque : mieux vaut fusionner l’identité (réf./statut) et laisser les montants en `table-fixed` pleine largeur. Un restant négatif sur théorique à 0 n’est pas une anomalie métier — le masquer (tiret) évite une fausse alerte visuelle. Deux alertes au même écart = un seul bandeau.
