---
suivi: 1932
date: 2026-10-15
sujet: Analyse à l'ouverture d'un dépôt Outlook
chantier: depot-factures
type: correctif
statut: poussé
hash: 4b4d994c5
fichiers:
  - app/Services/DepotFactureAnalyseVerrou.php
  - app/Http/Controllers/DepotFactureController.php
  - app/Http/Controllers/OutlookDepotReceptionController.php
  - app/Models/DepotFacture.php
  - database/migrations/2026_10_15_191000_add_analyse_demarree_at_to_depot_factures.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - resources/js/Pages/DepotFactures/analyseOuverture.js
  - resources/js/Pages/DepotFactures/Index.vue
  - resources/js/Pages/DepotFactures/Show.vue
  - resources/js/Pages/DepotFactures/DepotFactureSaisieForm.vue
  - resources/views/outlook/depot.blade.php
  - public/outlook/depot.js
  - public/build/
  - tests/Unit/DepotFactureAnalyseOuverture1932Test.php
  - tests/Unit/OutlookComplement1868Test.php
  - docs/suivi/SUIVI_1932_analyse_ouverture_outlook.md
---

# SUIVI #1932 — analyse à l'ouverture d'un dépôt Outlook

## Fiches lues

#1929 (diagnostic, non codé) : le POST du complément s'arrête au statut déposé, et le formulaire ouvert ne recopie que le fournisseur après « Réanalyser ». #1868 : pas d'OCR dans le POST, pas de valideur déposant. #1930 : le volet et le manifeste ne font pas partie de l'analyse.

## PROMPT ENVOYÉ

Analyse automatique à la première ouverture d'un dépôt Outlook déposé, sans `analyse_at`, ni facture électronique, ni saisie historique. L'écran appelle le même traitement que « Analyser avec Claude », de façon asynchrone, avec « Analyse en cours… » et un verrou serveur. Après toute analyse, le formulaire ouvert reçoit numéro, dates, montants, lignes et fournisseur. Une saisie déjà modifiée demande confirmation. « Voir dans le dépôt » ouvre la boîte avec `?depot=`.

## SYNTHÈSE

Le POST du complément ne lance toujours pas Claude et ne pose toujours pas de valideur. Le glisser-déposer classique lance toujours l'OCR dans son POST.

À l'ouverture de la boîte (`?depot=`) et de la fiche, si le dépôt est éligible, l'écran envoie `POST /depot-factures/{uuid}/analyser` avec `ouverture: true`. Le serveur réserve l'analyse dans la même écriture : origine Outlook, statut déposé, `analyse_at` vide, pas facture électronique, pas saisie historique, pas d'erreur déjà enregistrée, et `analyse_demarree_at` vide ou plus vieux que 90 secondes. La seconde ouverture simultanée reçoit « en cours » et attend le résultat, sans second appel Claude. Une erreur libère le verrou, affiche « L'analyse n'a pas abouti. Le bouton « Analyser avec Claude » reste disponible. » et laisse le dépôt utilisable. Une ouverture suivante ne relance pas l'analyse.

Après une analyse, automatique ou demandée, le formulaire déjà ouvert se met à jour quand `analyse_at` change, sans rechargement. La saisie conservée côté serveur ne remplace pas un numéro déjà rempli : l'écran reprend donc les colonnes et l'extraction qui viennent d'être écrites (numéro, dates, montants, une ligne de TVA, fournisseur). S'il y a des modifications non enregistrées, la question est « Remplacer par le résultat de l'analyse ? ». Une facture électronique n'est pas recopiée par ce chemin.

Changer de fiche sur l'écran Show remonte le formulaire (clé = uuid) et relance l'ouverture si le nouveau dépôt est éligible. Le même dépôt, après analyse, ne se remonte pas.

« Voir dans le dépôt » pointe vers `/depot-factures?depot={uuid}`. Le script du volet est servi en `?v=2`.

Bundle de saisie : `DepotFactureSaisieForm-BP898pYc.js`. SHA-256 `ACB139C9EBECC019DA32A73B19F0220DD45C1FD19C29D0C6C3FFB8AA1C833D5F`. `rg -c cie_effacement_confirme` sur ce fichier : `1`.

### Correspondance

| Affiché | Valeur postée | Relu |
| --- | --- | --- |
| Analyse en cours… | `ouverture` vrai, le temps de l'appel | numéro, dates, montants, lignes, fournisseur |
| Analyser avec Claude | le même appel, sans `ouverture` | les mêmes champs |
| Remplacer par le résultat de l'analyse ? | rien : confirmation locale | saisie en cours, ou le résultat si l'on accepte |
| Voir dans le dépôt | `/depot-factures?depot={uuid}` | la facture sélectionnée dans la boîte |

## DÉPLOIEMENT-TEST

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

Ne pas lancer npm ni composer sur le serveur. Le volet Outlook prend `depot.js?v=2` après vidage du cache de vue.

## LEÇON

L'analyse à l'ouverture se décide à l'écran, pas dans le rendu de la page : le POST du complément reste court. Le verrou est dans l'écriture qui réserve, pas dans un drapeau lu avant. Le formulaire ne se remonte pas quand l'uuid ne change pas. Recopier seulement la saisie conservée laisserait l'ancien numéro après une réanalyse : l'écran reprend les colonnes juste écrites, et demande avant d'écraser une saisie déjà modifiée.
