---
suivi: 1752
date: 2026-09-30
sujet: Confirmation et actualisation à la suppression d'un dépôt
chantier: factures
type: evolution
statut: poussé
hash:
fichiers:
  - resources/js/Pages/DepotFactures/Index.vue
  - app/Http/Controllers/DepotFactureController.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
  - docs/suivi/SUIVI_1752_suppression_depot_confirmation.md
---

# SUIVI #1752 — Confirmation suppression dépôt

## PROMPT ENVOYÉ

Boîte de dépôt : confirmation avant la corbeille, puis la liste se met à jour comme après un dépôt, sans recharger la page. Si le dépôt ouvert est supprimé, vider l’aperçu et la saisie. Un refus serveur laisse la liste en place.

## FICHES LUES

- #1748 LEÇON : la liste et le compteur viennent de `fetchListe`, pas de `router.reload` ni d’une redirection Inertia. La suppression doit appeler `fetchListe` avec les filtres déjà saisis.

## CONSTAT

- Corbeille : `Index.vue` bouton `pi-trash` (vers la ligne 1497) → `confirmerSuppression` → `supprimerFacture` qui appelait `router.delete` `/depot-factures/{uuid}`.
- Route : `routes/web.php` ligne 478, `DepotFactureController::destroy` ligne 3339.
- Effet : soft delete (`FactureSuppressionService::softDeleteDepot` / `softDeleteFacture`, `delete()`), pas d’effacement du fichier. Tâches de validation et tâche « compléter la saisie » fermées, alertes retirées. Flash : « Dépôt mis à la corbeille ». Aucune restauration de dépôt.
- Interdit si : pas le droit (`userPeutSupprimerUnitaire`), statut dépôt ou facture comptabilisé / payé / validé, identifiant Sage, ventilation ou paiement Sage (`FactureSuppressionPolicy::motifNonSupprimable`).
- Dialogue d’avant : titre « Supprimer la facture », texte « irréversible », sans date ni déposant. `onSuccess` vidait la sélection mais pas `listItems`.

## SYNTHÈSE

Dialogue : « Supprimer ce dépôt ? », fichier, date, déposant, retrait du PDF et de la saisie de la boîte, fichier conservé, pas de restauration. Annuler / Supprimer définitivement. Succès : `axios` JSON (la fiche dépôt Inertia garde la redirection), `fetchListe` sur les pages déjà chargées, filtres inchangés, panneaux vidés si c’était la ligne ouverte. Refus : toast, liste inchangée.

## DÉPLOIEMENT-TEST

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

Pas de migration. Pas de route:clear.

1. Corbeille : confirmation avec le nom du fichier. Annuler : rien.
2. Supprimer définitivement : la ligne disparaît, le compteur baisse, sans rechargement.
3. Supprimer le dépôt ouvert : aperçu et saisie reviennent à « Sélectionnez une facture ».
4. Dépôt non supprimable : message, liste inchangée.

## LEÇON

`router.delete` suit la redirection vers l’index et ne rafraîchit pas `listItems`. La boîte doit rester sur `fetchListe`. Le JSON de `destroy` est réservé aux requêtes sans en-tête Inertia, pour ne pas casser la fiche dépôt.
