---
suivi: 1412
date: 2026-09-02
sujet: facture_verrou_fiche
chantier: factures
type: feature
statut: poussé
hash: dc131ea1
fichiers:
  - app/Http/Controllers/FactureController.php
  - resources/js/Pages/Factures/Show.vue
  - tests/Unit/FactureVerrouFiche1412SourceTest.php
  - docs/suivi/SUIVI_1412_verrou_fiche_facture.md
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
---

## PROMPT ENVOYÉ

SUIVI #1412 — cadenas pose/retrait verrou sur fiche facture, réutilise routes dépôt #1410/#1411.

## FICHES LUES

- #1410 / #1411 — FactureVerrou, libellés « Accès restreint », routes dépôt.

## SYNTHÈSE

- Props `verrouille` / `can_verrouiller` / `can_deverrouiller` sur `Factures/Show` via `depotFacture` (latestOfMany) + `canEditDepot` / `FactureVerrou::userCanRetirer`.
- Routes : `POST /depot-factures/{uuid}/verrouiller|deverrouiller` — `FactureVerrou::poser/retirer` synchronise la facture et tous ses dépôts.
- Libellés cohérents dépôt : « Accès restreint » / « Accès non restreint ».
- Confirmation : corps pose reformulé pour inclure DSI + admin ERP (socle réel), + phrase bilans.
- Cas pose sans retrait : cadenas fermé visible, non cliquable, infobulle explicite.

## DÉPLOIEMENT-TEST

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

Pas de migrate. Test sur `/programmes/{id}/factures/{id}` + cohérence fiche dépôt.

## LEÇON

Point d’entrée UI facture → toujours appeler le dépôt `latestOfMany` dès que la logique métier synchro déjà au niveau facture ; ne pas dupliquer les routes.
