---
suivi: 1656
date: 2026-09-22
sujet: Barème % consolidé / CA HT, totaux en pied, pied fiche retiré, aides
chantier: Foncier / Faisabilité
type: feature
statut: poussé
hash: c6b37e5b
fichiers:
  - resources/js/utils/seuilsIndicateursEtudeFi.js
  - resources/js/Pages/Foncier/Scenarios/Show.vue
  - resources/js/Components/Foncier/ScenarioKpiBar.vue
  - resources/js/Pages/Foncier/Dossiers/Show.vue
  - app/Http/Controllers/Foncier/ScenarioFaisabiliteController.php
  - tests/Unit/ScenarioSeuilsTotauxPiedAide1656SourceTest.php
  - tests/Unit/ScenarioSeuilsCouleurBarreKpi1654SourceTest.php
  - tests/Unit/ScenarioKpiBar1634SourceTest.php
  - tests/Unit/ScenarioBarreKpiEtUnites1640SourceTest.php
  - tests/Unit/ScenarioHautDePageCompact1641SourceTest.php
  - tests/Unit/ScenarioGrilleTableur1642SourceTest.php
  - tests/Unit/ScenarioEtudeFiRetouchesFicheTableur1647SourceTest.php
  - tests/Unit/ScenarioFicheColonnesOngletFaisabilite1655SourceTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
  - docs/suivi/SUIVI_1656_seuils_totaux_pied_et_aide_consolide.md
---

# SUIVI #1656 — seuils redirigés, totaux en pied, aide consolidé

## PROMPT ENVOYÉ

Lot d'AFFICHAGE. Cinq corrections après essai prod du #1654 :
1. Troisième barème sur `consolide_pct_ca_ht` (ligne 53), plus
   `consolide_pct_prix_revient` (ligne 54). Seuils inchangés 20/23/25.
2. Sous-totaux d'étude Fi en pied de rubrique, plus dans l'en-tête.
3. Supprimer toute la ligne sous TOTAUX de la fiche (ventil. + BASE PR).
4. Option A : garder « consolidé », un « ? » unique.
5. Légendes de pied retirées ; aide de page (6 points) fusionnée au « ? »
   d'identité. Aucun calcul, aucune migration.

## FICHES LUES

- **#1654** LEÇON — source unique `seuilsIndicateursEtudeFi.js` ;
  0 / absent → palier null ; sans `peut_prix` aucune couleur. Conservé
  tel quel : un seul objet, seule la clé du 3e barème change.
- **#1643** — `etudeTableRows` aplatit sections + postes ; `sous_total`
  déjà dans le payload. Conservé : on pousse une ligne `kind: 'total'`
  si `sous_total != null`. Dernière rubrique déjà `sous_total: null`.
- **#1641** — ligne de pied fiche (ventil. + base PR) livrée ici.
  Conservé : overlay `base_prix_revient_foncier` / `frais_notaire` /
  `prix_revient_foncier_m2` (recalcul #1652). Retiré : l'affichage seul.
- **#1655** — `indicateurs_etude` 5e clé + `Dossiers/Show.vue` en série.
  Aligné sur `consolide_pct_ca_ht`. Rebase `origin/main` (#1655
  `0a009728`) avant Vite.
- **#1652** — overlay `etudeLive.totaux` : la couleur de la ligne 53
  suit `eTot` pendant la saisie, sans enregistrer. Intouché.

Anti-collision : 1655 est le dernier numéro. **1656 est libre.**
`Show.vue` et `Dossiers/Show.vue` en série.

## SYNTHÈSE

### 1 — Barème redirigé (seuils inchangés)

Source unique `resources/js/utils/seuilsIndicateursEtudeFi.js` :
`consolide_pct_ca_ht: { bornes: [20, 23, 25], paliers: rouge /
vert_jaune / vert / vert_fonce }`. Plus aucune clé
`consolide_pct_prix_revient` dans cet objet.

Ligne 53 colorée via `classeSeuilAffiche('consolide_pct_ca_ht')`.
Ligne 54 : ligne calculée ordinaire (fond gris). Barre KPI 5e case :
« % consolidé / CA HT » (distinct de « % bénéfice / CA HT »).
Payload dossier : même 5e clé. V1 30,6 % → VERT FONCÉ.

### 2 — Totaux en pied

En-tête de rubrique : nom seul (`section.libelle`), fond `#EFF6FF`.
Pied : `kind: 'total'` si `sous_total != null`. Visuel retenu :
`bg-[#DBEAFE]` + `border-t-2 border-t-blue-300` + libellé capitales
gras + montant à droite. Distinct de l'en-tête (`#EFF6FF`), des
calculés (`#F3F4F6`) et du blanc saisi. Palette déjà dans l'ERP
(gouttière `#` de l'étude, pastille saisie).

**PRIX DE REVIENT ET RÉSULTAT** : pas de ligne de total ajoutée.
Le moteur pose déjà `'sous_total' => null` (L484). Une 8e ligne
« Total … » serait redondante avec TOTAL PRIX DE REVIENT, Bénéfice
brut, Résultat consolidé déjà dans le bloc. Les sept autres
rubriques ont un `sous_total` et reçoivent le pied.

### 3 — Pied fiche retiré (affichage seul)

Supprimé d'un bout à l'autre : VENTIL. PRIX, VENTIL. SURFACE,
BASE PR FONCIER + notaire + €/m² + « ? ». Aucune clé retirée du
payload. `ScenarioFicheFonciereService` et le moteur intouchés.

Où on retrouve quoi :

- **Frais de notaire** : étude Fi, rubrique ACHAT, poste
  `frais_notaire` (« Frais de notaire ») — moteur L369.
- **PR foncier / m²** : bande KPI de la grille
  (`kpisGrille`, `prixRevientM2` ← `prix_revient_foncier_m2`) —
  `base_prix_revient_foncier / surface cessible hors agricole`
  (moteur L49–60).
- **Coût d'achat foncier HT** : étude Fi ACHAT,
  `cout_achat_foncier_ht` = `sum_prix_achat_numeraire` (L42, L367).
  CE N'EST PAS la base PR (base = Σ TVA/M + Σ TVA totale + notaire).
- **SIGNAL** : le montant libellé « Base PR foncier » (92 070,00 €
  sur V1) n'apparaît plus sous ce nom. Il reste dans le payload
  (`base_prix_revient_foncier`) et nourrit le €/m². Les six
  ventilations agrégées (marge / totale / sans TVA, prix et
  surface) quittent l'écran ; le régime TVA reste ligne à ligne.
  Robin a demandé la suppression explicite, y compris la BASE PR.

### 4 — Aide « consolidé »

Une constante `AIDE_CONSOLIDE`. Posée sur Résultat consolidé,
% consolidé / CA HT, % consolidé / prix de revient, Consolidé par
lot Hectare — étude (bande + lignes) et barre KPI.

Formule brute moteur L335–341 :

    $honInternesIndicateur = Dec::add(
        $honorairesMontageHt,
        $honorairesGestionHt,
        $honCommercialisation,
        $communicationGroupe,
    );
    $resultatConsolide = Dec::add($beneficeBrut, $honInternesIndicateur);

Texte : le bénéfice brut + honoraires internes (montage, gestion,
commercialisation, communication groupe), déjà dans le prix de
revient, réintégrés pour le résultat du groupe.

### 5 — Légendes de pied / aide de page

Recensées dans Show.vue avant suppression (mémo
« Entrée descend · Tabulation à droite · Échap annule ») :

- Grille de prix — pied de section (retirée ; pagination / lecture
  seule conservées).
- Étude financière — pied de section (retirée).
- Fiche foncière : pas ce mémo (déjà dans le « ? » d'en-tête).
- Assiette : pas ce mémo.

Pastilles « saisie / calculé » de l'en-tête fiche **conservées**
(Show.vue ~2269).

Aide de page **fusionnée** au « ? » d'identité (titre « Aide du
scénario ») : un seul « ? » dans la ligne de titre, plutôt que deux
côte à côte. Contenu : identité + 6 points saisie (enregistrement
explicitement « rien n'est enregistré » tant qu'on n'a pas cliqué
Enregistrer). HelpHint déjà `max-h-[min(70vh,28rem)] overflow-y-auto`.

Les six points sont vrais au vu des #1641–#1655 (Entrée /
`onCelluleEnterTable`, Tab natif, Échap `annulerEdition`, fond gris
calculé, overlay #1652 sans persist, bouton « N documents »).

Closures ajoutées : aucune (`etudeTableRows` forEach existant, pas
de `use()` PHP nouveau). Moteur / EtudeFi / FicheFonciere /
RecalculABlanc : logique inchangée.

## DÉPLOIEMENT-TEST

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

Aucune migration. Pas de route.

1. Ligne 53 colorée ; ligne 54 sans couleur.
2. V1 : 30,6 % VERT FONCÉ ; barre Consolidé par lot VERT, deux %
   VERT FONCÉ.
3. Bornes 20 / 23 / 25 : pile sur la borne → palier supérieur.
4. En-tête nom seul ; pied total identifiable.
5. Sept sous-totaux identiques au centime ; 8e rubrique sans pied.
6. Fiche : plus rien sous TOTAUX.
7. BASE PR : €/m² grille + notaire / coût d'achat dans l'étude.
8. « ? » consolidé identique partout.
9. Recalcul live : palier ligne 53 sans enregistrer.
10. Sans `peut_prix` : ni montants ni couleurs.
11. Gelé : visible, non saisissable.
12. 1366 / 1920 : pas d'`overflow-x-hidden`.
13. Plus de légende de pied ; pastilles en-tête présentes.
14. « ? » du titre : six points dont l'enregistrement.

## LEÇON

Le 3e barème du #1654 visait la mauvaise ligne : un objet unique
permet de rediriger la clé sans toucher aux bornes. Un total dans
l'en-tête se lit avant les postes qui le composent. La base PR
n'est pas le coût d'achat HT : ne pas les confondre à l'écran.
« Consolidé » = bénéfice brut + honoraires internes déjà dans le
PR. Voir un total bouger (#1652) n'est pas un enregistrement : le
dire dans l'aide de page, pas dans une légende répétée sous chaque
tableau.
