---
suivi: 1381
date: 2026-09-01
sujet: programme_selection_non_enregistree
chantier: juridique
type: bugfix
statut: poussé
hash: 81ac73b3
fichiers:
  - resources/js/Components/Programmes/ProgrammeSearchSelect.vue
  - resources/js/Pages/Juridique/Show.vue
  - tests/Unit/DemandeJuridiqueProgrammeSelect1381SourceTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
---

## PROMPT ENVOYÉ

SUIVI #1381 — sélection programme juridique non enregistrée (suite #1380).

## FICHES LUES

- **#1380 LEÇON** : ne pas utiliser ProgrammeAccessService pour sélecteur métier ; ProgrammeSearchSelect depuis dépôt facture.

## SYNTHÈSE

### Cause (hypothèse 1 — prouvée)
PrimeVue 4 AutoComplete + `dropdown` : le clic sur une option émet `@option-select`, pas
`@item-select`. `ProgrammeSearchSelect.vue` n'écoutait que `@item-select` → `model` et
`emit('selected')` jamais déclenchés → **aucun PATCH** réseau. Preuve : pattern documenté
`Marches/Show.vue` L3319-3320 (les deux événements requis pour inline save).

### Hypothèses écartées
- **2 (serveur refuse)** : `ProgrammeController::search` L263 et `updateChamp` L251 utilisent
  tous deux `ProgrammeEnseigneComfortFiltre::baseActifsQuery` — même filtre.
- **3 (écran non rafraîchi)** : sans PATCH, F5 reste « Aucun » — pas un problème de reload.

### Correctif
- `ProgrammeSearchSelect.vue` L257 : `@option-select="onItemSelect"` (composant partagé, aligné
  Marches/Show + DepotFacture comptes L10232).
- `Show.vue` : message d'erreur PATCH explicite (statut HTTP) si refus serveur futur.

## DÉPLOIEMENT-TEST

Demande 6 → Programme → choisir ARBOREA → F5 → historique.

## LEÇON

Tout AutoComplete PrimeVue 4 avec `dropdown` + save immédiat : écouter `@item-select` ET
`@option-select` (cf. Marches/Show).
