---
suivi: 1617
date: 2026-09-18
sujet: Liens applicatifs vers un dépôt — écran complet (?depot=)
chantier: depot-factures
type: feature
statut: poussé
hash: ce44ce7c
fichiers:
  - resources/js/Pages/Factures/Global.vue
  - resources/js/Pages/Factures/Show.vue
  - resources/js/Pages/Validations/Index.vue
  - resources/js/Pages/Cie/Index.vue
  - resources/js/Pages/Cie/Show.vue
  - resources/js/Pages/Marches/Show.vue
  - resources/js/Components/ProgrammeFacturesPanel.vue
  - resources/js/Pages/DepotFactures/Index.vue
  - app/Http/Controllers/FactureController.php
  - app/Http/Controllers/DepotFactureController.php
  - app/Services/NotificationFactureService.php
  - app/Services/AlerteService.php
  - app/Services/CieService.php
  - app/Services/MarcheSyntheseFinanciereService.php
  - app/Services/Foncier/ChargePortageService.php
  - app/Services/MontantFactureSousTraitantService.php
  - app/Support/DepotFactureDoublonPayload.php
  - tests/Unit/DepotLienEcranComplet1617SourceTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
  - docs/suivi/SUIVI_1617_lien_depot_ecran_complet.md
---

# SUIVI #1617 — lien dépôt ouvre l’écran complet

## PROMPT ENVOYÉ

Depuis la liste des factures, le lien vers un dépôt doit ouvrir
l’écran complet (`/depot-factures?depot={uuid}`), pas l’écran isolé
`/depot-factures/{uuid}` livré au #1584. Inventaire exhaustif des
liens avant modification. Conserver la route d’accès direct. Droits,
saisie, ACOMPTE #1612 et ComptabilisationController / Sage #1616
intacts.

## FICHES LUES

- **#1274 LEÇON** — `?depot=` bootstrap côté Index via `selectRow` →
  `GET /data` ; le serveur `index` ignore le query `depot`. 403/404
  → message, liste reste, pas de 500. Impact : réutiliser ce
  mécanisme, ne pas porter Show vers Index.
- **#1273 LEÇON** — e-mails / alertes / « facture suivante » atterrissaient
  volontairement sur Show. Impact : ne pas supprimer la route ; les
  nouveaux liens applicatifs (y compris e-mails générés) pointent
  désormais vers l’index `?depot=`.
- **#1584 LEÇON** — Show et Index sont deux composants distincts ;
  `max-w-7xl` n’est pas AppShell. Impact : Show conservé pour les
  anciens liens.
- **#1418 LEÇON** — `depotHref` sur `/factures` aiguillait uuid →
  `/depot-factures/{uuid}`. Impact : c’est le point demandé par Robin.
- **#1460 LEÇON** — widget « à compléter / à valider » déjà en
  `?depot=`. Impact : inchangé.
- **#1458 LEÇON** — Mes tâches déjà `route('depot-factures.index',
  ['depot' => $depotUuid])`. Impact : inchangé.

Aucune fiche n’a changé le plan : changer les href, garder Show.

## SYNTHÈSE

### Inventaire avant modification

Route `GET /depot-factures/{uuid}` = `depot-factures.show` →
`DepotFactureController::show` → `DepotFactures/Show.vue` (accès
direct #1584). Conservée.

`GET /depot-factures?depot=` = `depot-factures.index` → `Index.vue`.
Le contrôleur n’utilise pas `depot`. Au montage,
`bootstrapDepotFromQueryParam` → `selectRow` → `GET /data` + PDF.
403 → « Accès non autorisé » ; 404 → « Dépôt introuvable. » ; uuid
invalide → message, query retirée.

Usages conservés de Show (non navigation applicative) :
API `PATCH/DELETE /depot-factures/{uuid}`, PDF, `/data`, verrou,
doublon, documents ; lien « Ouvrir la fiche » d’un dépôt archivé
depuis Index (échappatoire volontaire vers Show).

### Liens applicatifs réorientés

Tous les href / `route('depot-factures.show')` applicatifs vers
`/depot-factures?depot={uuid}` (ou `route('depot-factures.index',
['depot' => $uuid])`). Détail fichier + ligne dans le livrable.

Déjà conformes (non modifiés) : widget dashboard #1460, Mes tâches
#1458, upload widget, `nouvelleFactureHref` marché/programme.

### Droits / arrivée

`findDepotForView` + `FactureVisibility::canView` inchangés sur
`show` / `data`. Un compte tiers 403 sur `/data` comme avant.
Scroll `block: nearest` si la ligne est dans la page courante.

### Collision #1616

#1616 (APADVANCE) a été commité en parallèle sur
`ComptabilisationController` et services Sage. Ce lot ne les
touche pas. L’entrée journal #1617 a été écrite dans le même
fichier que #1616 pendant le commit parallèle : elle figure dans
`5c21152a` ; le code fonctionnel est ce commit.

## DÉPLOIEMENT / TEST

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

1. `/factures` → clic facture statut dépôt → écran 3 colonnes, dépôt
   sélectionné.
2. Menu Dépôts inchangé.
3. Ancien `/depot-factures/{uuid}` → Show, pas de 500.
4. `?depot=` inexistant → « Dépôt introuvable. », pas de 500.
5. Compte tiers → 403 / « Accès non autorisé ».
6. Validations, marché, CIE, fiche facture, tableau de bord widget.

## LEÇON

Deux écrans, deux URLs. Deep-link liste = query sur l’index
(#1274). Show reste le filet des e-mails déjà partis. Ne pas
confondre un href de navigation avec `PATCH /depot-factures/{uuid}`.
Un lot parallèle sur le journal peut avaler une entrée d’un autre
numéro : vérifier `git show` du commit voisin avant de dupliquer.
