---
suivi: 1796
date: 2026-10-06
sujet: Droits de la libération de retenue de garantie
chantier: factures / retenues
type: correctif
statut: poussé
hash: f3a1888c
fichiers:
  - app/Support/LiberationRgFactureSaisie.php
  - app/Http/Controllers/DepotFactureController.php
  - resources/js/Pages/DepotFactures/DepotFactureSaisieForm.vue
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - tests/Unit/LiberationRgFacture1535SourceTest.php
  - public/build/
  - docs/suivi/SUIVI_1796_liberation_rg_droits.md
---

# SUIVI #1796 — libérer une retenue, mêmes droits que la retenue

Fiches lues : #1535 (la case était limitée à la comptabilité, l’administration et la DSI, plafond et écriture déjà en place), #1224 (la retenue de garantie s’affiche selon le marché, pas selon un groupe), #1367 (verrou des montants dès la comptabilisation). Aucune n’autorisait à élargir le plafond ni à rouvrir une facture déjà envoyée.

## PROMPT ENVOYÉ

La case « Libérer de la retenue de garantie » doit suivre exactement les mêmes droits que « Retenue de garantie ».

## Mapping

| Libellé affiché | Valeur postée | Effet |
| --- | --- | --- |
| Libérer de la retenue de garantie | liberation_rg (booléen) | coche la libération ; faux remet le montant à 0 |
| Montant à libérer (TTC) | liberation_rg_montant_ttc | montant TTC déjà compris dans le net à payer ; le brut est reconstitué en le retranchant ; plafond = retenue encore détenue sur le marché |

## Constat (avant correctif)

La retenue de garantie n’a pas de liste de groupes. La libération en avait une (GS_COMPTABILITE, GS_ADMIN_ERP, GS_DSI). Un compte GS_ENVOL voyait les autres retenues et pas celle-ci. Le plafond et le verrou après comptabilisation ne dépendent pas de cette liste : les ouvrir à GS_ENVOL ne les contourne pas.

## SYNTHÈSE

La case et son montant s’affichent comme « Retenue de garantie ». L’enregistrement n’exige plus un groupe supplémentaire. Le plafond, l’obligation d’un marché, le refus hors ERP, les lignes envoyées et le verrou des factures déjà comptabilisées ou payées sont inchangés. La case reste grisée quand la facture n’est plus modifiable.

## DÉPLOIEMENT-TEST

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

Pas de migration.

1. Compte qui saisit les retenues : case visible sur une facture de marché avec retenue détenue, montant proposé, enregistrement pris en compte.
2. Montant supérieur à la retenue encore détenue : refus.
3. Compte qui ne peut pas modifier la facture : case non saisissable, appel direct refusé.
4. Facture sans libération : saisie et comptabilisation inchangées.

## LEÇON

La retenue de garantie n’a jamais eu de liste de groupes. Une liste à part sur la libération écarte les mêmes personnes qui saisissent déjà la retenue, sans protéger le plafond.
