---
suivi: 1222
date: 2026-08-05
sujet: saisie facture — sous-cartes + retrait poste sans_marche
chantier: depot-factures
type: ux
statut: poussé
hash: 7dbd9464
fichiers:
  - resources/js/Pages/DepotFactures/DepotFactureSaisieForm.vue
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
  - docs/suivi/SUIVI_1222_depot_saisie_sous_cartes.md
---

## PROMPT ENVOYÉ

SUIVI #1222 — retrait poste sur marché non créé + 5 sous-cartes.
HEAD base = `daa3cec4` (#1223 diag déjà sur main ; lot front seul).

## FICHES LUES

- `SUIVI_1192` — grammaire titre + `border-t` ; pas de cadres empilés ; calcul
  / validation intouchables.
- `SUIVI_1191` / `1193` — retenues hors marché ; poste optionnel puis non affiché
  sur `sans_marche` ; obligatoire sur `rattachement_poste_direct`.
- `SUIVI_1189` / `1190` / `1220` — ne pas casser Bloquer / 3 issues / filtre
  enseigne / liste programmes au focus.

## OBJET 1 — Poste sur `sans_marche`

| Cas | Affichage |
|-----|-----------|
| `sans_marche` sans poste | **masqué** |
| `sans_marche` avec poste déjà en base | lecture seule « Poste renseigné (historique) » |
| `rattachement_poste_direct` | Select obligatoire `*` (inchangé) |
| Payload | poste toujours envoyé s’il existe (#1193) — **aucun clear** |

## OBJET 2 — 5 cartes (Validateur hors carte, en haut)

### Tableau champ AVANT → carte APRÈS

| Champ / zone | Avant | Après |
|--------------|-------|-------|
| Valideur | Haut du formulaire | **Haut inchangé** (hors carte) |
| Destination PROGRAMMES / FG | Corps libre | **Rattachement** |
| Programme / Catégorie FG | Étape 2 | **Rattachement** |
| Marché (+ sentinelles #1191) | Étape 3 | **Rattachement** |
| Poste budgétaire | Sous marché si hors marché | **Rattachement** (règles objet 1) |
| Reste à régler / dépassement | Sous marché | **Rattachement** |
| Type de facture | Sous-bulle unique gray | **Facture** |
| Société | idem | **Facture** |
| N° facture | idem | **Facture** |
| Fournisseur | idem (+ bandeau marché en compta) | **Facture** |
| Date facture / échéance / prévisionnelle paiement | idem | **Facture** |
| Lignes HT / TVA / montant TVA | section MONTANT dans bulle | **Montant** |
| Totaux HT/TVA/TTC / net | idem | **Montant** |
| Multi-fournisseur / + ligne | idem | **Montant** |
| Appliquer un avoir | idem | **Montant** |
| Reconstitution / net reconstit. | idem | **Montant** |
| RG / CP / Finitions / OPC / Pénalités | idem (#1191) | **Retenues** |
| Cagnotte CP / CIE | hors v-if retenues #1191 | **Retenues** |
| Bannière net à payer | idem | **Retenues** |
| Notes | Bas / bordure | **Compléments** |
| Documents joints | Sous fieldset | **Compléments** |
| Options avancées (déjà réglée / validé / historique) | Bas | **Compléments** |
| Libellé Intacct | Onglet compta (et désormais aussi Compléments en saisie) | **Compléments** (saisie) + onglet Comptabilité |
| Header collant / barre actions / ··· / Bloquer | #1189/#1192 | **inchangé** |
| Dialog 3 issues | #1189 | **inchangé** |
| Onglet Comptabilité (écritures, bandeaux) | Mode compta | **inchangé** (hors 5 cartes infos) |

Grammaire : titre uppercase + `border-t` (#1192). Suppression de la sous-bulle
`rounded-xl border bg-gray-50` unique.

## GARANTIES

- Aucun changement de calcul, validation serveur, payload (hors condition d’affichage poste).
- Retenues : comportement #1191 **inchangé** (pas de flags poste — #1223/#1224).
- Aucune migration, aucune écriture de données.

## DÉPLOIEMENT

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

Pas de migrate. Pas de route:clear.

## LEÇON

Sur 9k lignes, découper en cartes = déplacer des blocs template sans toucher script
métier. Un poste historique sur `sans_marche` ne doit pas disparaître silencieusement
(anti-#1178). Sérialisation absolue avec #1224 (retenues selon marché).
