---
suivi: 1170
date: 2026-08-04
sujet: Commercial — retirer saisie TMA réservation (module dédié)
chantier: commercialisation
type: feature
statut: poussé
hash: 2304f291
fichiers:
  - app/Http/Controllers/ReservationController.php
  - app/Http/Requests/UpdateAcquereurFicheRequest.php
  - resources/js/Components/Commercialisation/LotsGrillePanel.vue
  - resources/js/Pages/Programmes/Acquereur/Show.vue
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - tools/diag/diag_tma_montants_1170.php
  - public/build/
  - docs/suivi/SUIVI_1170_commercial_tma_hors_reservation.md
---

## PROMPT ENVOYÉ

SUIVI #1170 — audit trois emplacements TMA puis retrait du champ isolé
`reservations.tma_montant` de l’UI (colonne conservée). Dette documentée
sur `lots_commerciaux.tma_montant_ttc`.

## SYNTHÈSE

### Fiches lues
- `SUIVI_1154` — cartographie commercial / TMA.
- Zone commune #1156→#1169 : rebase origin/main `ae854c5a` avant build.

### Audit (étape 1)

| Emplacement | Écriture | Lecture / calcul | Module TMA |
|-------------|----------|------------------|------------|
| `tmas` | TMAController / workflow | facture_*, Intacct, Show liste `reservation.tmas` | **autonome** |
| `reservations.tma_montant` | store/update UI + whitelist | historique snapshot ; **aucun** KPI/AF/bilan/PDF/Intacct | non |
| `lots_commerciaux.tma_montant_ttc` | miroir sync depuis `reservation.tma_montant` (ReservationLotsSync, CommercialController, ManagesCommercialLotPayload) ; NULL à libération | affichage `Commercial/Index.vue` uniquement ; **aucun calcul** | non |

Sync : **unidirectionnelle** résa → lot. Jamais depuis `tmas`.
Volume résa (Robin) : 0/61, Σ 0 €. Volume lots : **à mesurer en prod**
(`php tools/diag/diag_tma_montants_1170.php`) — BDD locale inaccessible ici.
Code : pas de saisie directe du lot ; miroir du champ résa (=0).

### Conclusion calcul
`reservations.tma_montant` **n’alimente aucun calcul**. Retrait UI OK.

### Étape 2 réalisée
- Champ retiré modale + fiche + payload front.
- Retiré whitelist `UpdateAcquereurFicheRequest` + validate store/update.
- Création force `tma_montant = 0` (colonne **conservée**).
- Lien fiche : « Ouvrir le module TMA → » (`routes.tmas_index`) + liste `tmas`.

### Étape 3 — `tma_montant_ttc`
**Non touché** (dette Robin) : colonne + sync + colonne affichage
`Commercial/Index.vue` conservées en attendant mesure prod. Si Σ=0 et
Robin OK → lot ultérieur pour retirer l’affichage (pas DROP COLUMN).

### Migration
Aucune.

## DÉPLOIEMENT-TEST

1. `php tools/diag/diag_tma_montants_1170.php` (noter lots)
2. `php tools/diag/diag_remises_kpi_1168.php` → 107 304,48 €
3. `git pull` ; `optimize:clear` ; `view:clear` ; `journal:sync`
4. `commercial:coherence-reservation-lots` → 0 anomalie
5. Smoke : modale sans TMA, fiche ouvrable, module TMA, rattache/détache

## LEÇON

Trois colonnes « TMA » sans lien = divergence silencieuse. Retirer l’UI
fantôme avant toute DROP (OVH irréversible). Toujours offrir le chemin
vers le vrai module.
