---
suivi: 1192
date: 2026-08-04
sujet: Saisie facture — ergonomie header collant et désencombrement
chantier: depot-factures
type: ux
statut: poussé
hash: ca2193b0
fichiers:
  - resources/js/Pages/DepotFactures/DepotFactureSaisieForm.vue
  - resources/js/Components/DepotFactures/DepotFactureSaisieActionBar.vue
  - resources/js/Components/DepotFactures/DepotFactureWorkflowBloquerControls.vue
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
---

## PROMPT ENVOYÉ

SUIVI #1192 — lot 4/4 saisie facture : ergonomie / design uniquement.
Header collant (pas boutons flottants), une barre d’actions, dédup montants,
options avancées, palette, moins d’encadrés. HEAD base = #1191.

## FICHES LUES

- `SUIVI_1191` — reconstitution déjà masquée sans retenue (`hasRetenueUiActive`) ;
  **ne pas refaire** ; CIE hors du `v-if` retenues.
- `SUIVI_1189` — Bloquer via `DepotFactureWorkflowBloquerControls` ; menu ···
  déclenche les dialogs (`hideButtons` + expose), comportement inchangé.
- `SUIVI_1190` — `ProgrammeSearchSelect` bandeau filtre inchangé.

## BLOCS RESTRUCTURÉS (avant → après)

| Zone | Avant | Après |
|------|-------|-------|
| Actions | Barre haut (dans scroll) + barre bas sticky + Bloquer à part | **Une** barre hors scroll en tête : dirty · dépassement · Envoyer · Enregistrer · ··· |
| Dirty | Bouton orange « Enregistrer (modifications…) » | Point ambre + texte gris ; bouton Enregistrer sobre |
| Dépassement | Rouge dans le corps seulement | Ambre dans le corps **et** barre collante |
| Montants | Net répété (TTC, reconstit., bannière jaune…) | Bannière net seulement si ≠ TTC ; reconstit. inchangée #1191 |
| Options rares | 3 cartes pleine largeur | Repliées sous « Options avancées » |
| Avoir / CIE / reconstit. | Cadres empilés | Titres + `border-t` (un niveau de bordure en moins) |

## CHAMPS — AUCUN DISPARU

Conservés : destination, programme (+ filtre enseigne #1190), marché/sentinelles
#1191, poste hors marché, type/société/dates/n°, fournisseur, lignes HT/TVA,
avoirs, multi-fournisseur, retenues (si marché), pénalités, CIE/cagnotte,
notes, validateur, déjà réglée (+ date/mode), déjà validé, saisie historique
(+ date paiement/mode), libellé Intacct, documents joints, Bloquer/Débloquer,
Envoyer en validation (dialog 3 issues), Enregistrer, variantes historique /
Valider et comptabiliser.

## PALETTE

| Couleur | Réservé à |
|---------|-----------|
| Bleu (`blue-600`) | Action principale (Envoyer / Valider) |
| Gris / navy bordure | Secondaire (Enregistrer outlined), texte d’état |
| Ambre | Avertissement réel (dirty discret, dépassement, historique) |
| Rouge | Erreurs / Rejeter / danger uniquement |
| Vert | Uniquement bandeaux positifs existants (marché soldé, déjà réglée compta) |

## REPLIÉ → OÙ

- Déjà réglée / Déjà validé / Saisie historique → **Options avancées**
- Bloquer / Débloquer / Marquer payé historique / Archiver → menu **···**

## DÉPLOIEMENT-TEST

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

Pas de migrate. Tests manuels 1–10 du prompt (compta réelle).

## LEÇON

Présentation isolée après logique (#1189–#1191) : un refactor UX sur 9k lignes
ne doit pas toucher calcul / validation. Sticky header = hors `overflow-y-auto`,
pas `position:sticky` dans le scroll + doublon bas.
