---
suivi: 1411
date: 2026-09-02
sujet: facture_verrou_retrait_admin
chantier: factures
type: bugfix
statut: poussé
hash: 4f4b4045
fichiers:
  - app/Support/FactureVerrou.php
  - app/Http/Controllers/DepotFactureController.php
  - tests/Feature/FactureVerrou1410Test.php
  - tests/Unit/FactureVerrou1410SourceTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - docs/suivi/SUIVI_1411_verrou_retrait_admin_erp.md
---

## PROMPT ENVOYÉ

SUIVI #1411 — ajouter GS_ADMIN_ERP au retrait du verrou facture (#1410), via m365GroupNames brut.

## FICHES LUES

- #1410 — GROUPES_RETRAIT COMPTA+DG uniquement ; contrôle m365GroupNames.

## SYNTHÈSE

`FactureVerrou::GROUPES_RETRAIT` inclut désormais `GS_ADMIN_ERP`. Mécanique inchangée (`array_intersect` + `m365GroupNames()`). Message 403 mis à jour. Bouton `can_deverrouiller` suit `userCanRetirer` sans changement Vue. Aucune migration. Visibilité / pose / agrégats intacts.

## DÉPLOIEMENT-TEST

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

Test retrait : compte Robin (GS_ADMIN_ERP). Refus : compte GS_HECTARE hors socle → 403.

## LEÇON

Autoriser l’admin ERP sur un droit exceptionnel = l’ajouter à la liste lue en brut, jamais via `isAdminERP()` / `hasAnyM365Group` / Gate (sinon intestable et court-circuit).
