---
suivi: 1901
date: 2026-10-14
sujet: Visites guidées de la boîte de dépôt
chantier: depot-factures
type: evolution
statut: poussé
hash: 81a0b75f7
fichiers:
  - resources/js/visites/index.js
  - resources/js/Pages/DepotFactures/Index.vue
  - resources/js/Pages/DepotFactures/DepotFactureSaisieForm.vue
  - resources/js/Components/DepotFactures/DepotFactureSaisieActionBar.vue
  - app/Http/Controllers/VisiteGuideeController.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - tests/Unit/VisiteGuidee1901Test.php
  - public/build/
  - docs/suivi/SUIVI_1901_visites_depot_factures.md
---

# SUIVI #1901 — Visites guidées de la boîte de dépôt

## PROMPT ENVOYÉ

Deux visites sur Comptabilité › Dépôt de factures. `depot.liste` à la première ouverture, sans facture sélectionnée. `depot.saisie` la première fois qu’une facture est sélectionnée, pas au chargement. Bouton ? dans chaque en-tête. Textes du circuit à confronter à la notice et au code. Ancres absentes sautées. Aucun changement de comportement.

## Fiches lues

- #1817 LEÇON : entrée dans `visites/index.js`, identifiant dans `VisiteGuideeController::VISITES`, `data-visite`, bouton qui appelle `relancer()`. Monter la version pour reproposer. Pas de localStorage.
- #1896 / #1898 : le composant saute une cible absente, bulle mobile sous 767 px, mémorisation `POST /visites/vue`.
- #1454 : les deux cases se cumulent ; type, validateur, entité et recherche s’ajoutent.
- #1845 : factures électroniques à 9 h, 13 h et 18 h, badge e, Synchroniser et Imports selon le droit.
- #1264 : cartes Rattachement, Facture, Montant, Options avancées. Toggle facture / avoir / acompte.

Les articles « Process général », « Compléter une facture », « La fiche facture » et « COMPTABILISATION » ne sont ni dans les seeders, ni dans `docs/`, ni dans le SQL local. Les écarts ci-dessous viennent du code.

## Écarts notice / code / textes

| Point du prompt | Version retenue | Source |
|---|---|---|
| Le responsable complète | Le déposant complète et envoie au valideur. Pas de rôle « responsable de la facture ». | `DepotFactureController.php` 3762-3773 |
| Deux niveaux pour Envol | Deux niveaux seulement pour une facture de programme Envol. Frais généraux et autres enseignes : comptabilité après le premier niveau. | `FacturePasseParValidationNv2.php` 19-25, 85 |
| Virement par la direction | Direction ou DAF, plus les exécutants désignés. | `FactureValidationPermissions.php` 23-29 |
| Mes factures à compléter = votre action | Valideur désigné, ou déposant si aucun valideur. | `DepotFactureController.php` 3772-3773, 3945-3972 |
| Par société | Le filtre affiche « Par entité ». | `Index.vue` placeholder |
| Par valideur | Le filtre affiche « Par validateur ». | `Index.vue` placeholder |
| Mêmes réglages sur un lot | Société, valideur et type, modifiables ensuite. | `Index.vue` texte du panneau |
| Confidentialité : déposant, valideur, direction, comptabilité | Aussi DSI et administration. | `FactureVisibility.php` 30-35 |
| Retenues dans Options avancées | Carte Retenues à part. Options avancées = cas particuliers, derrière « Afficher / masquer ». | `DepotFactureSaisieForm.vue` 10956 et 11427 |
| Flèche sur les trois volets | La flèche n’existe qu’à partir de 1024 px. | `useThreeColumnLayout.js` 44 |
| Articles du centre d’aide | Absents du dépôt. Textes tenus sur le code. | seeders, docs, SQL |

## SYNTHÈSE

`depot.liste` démarre seule à l’ouverture. `depot.saisie` démarre après un clic sur une ligne, une fois la saisie chargée, et pas quand l’adresse contient déjà un dépôt. Le bouton ? de chaque en-tête relance sa visite. Une étape dont l’ancre manque (droits, facture non électronique, bouton masqué) est sautée. Journal regroupé sur la boîte de dépôt.

## DÉPLOIEMENT-TEST

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

1. Première ouverture sans facture : visite de la liste. Clic sur une facture : visite de la saisie, une seule fois.
2. Chaque ? relance sa visite.
3. Facture non électronique : pas d’étape « Facture électronique ».
4. Mobile : la bulle reste lisible en bas de l’écran.

## LEÇON

La visite de saisie ne doit pas partir dans `bootstrapDepotFromQueryParam` : une adresse avec `depot` n’est pas une sélection. Attendre le chargement du formulaire, sinon les ancres de la saisie sont absentes et les étapes sont sautées pour de bon.
