---
suivi: 1066
date: 2026-07-29
sujet: Saisie en ligne des lots — grille lotissement
chantier: commercialisation_grille
type: feature
statut: poussé
hash: 1717dc6a
fichiers:
  - resources/js/Components/Commercialisation/LotsGrillePanel.vue
  - app/Http/Controllers/Concerns/ManagesCommercialLotPayload.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
  - docs/suivi/SUIVI_1066_saisie_lots_en_ligne.md
---

## PROMPT ENVOYÉ

SUIVI #1066 — saisie de lots en ligne sous la grille lotissement uniquement
(module `grille_lotissement`). POST ligne par ligne, Entrée/✓, Échap annule, focus
enchaîné. Édition existante = dialog uniquement. VEFA inchangée. Réutiliser
`LotCommercialController::store`.

## SYNTHÈSE

### Solution technique
Formulaire **sous** le DataTable (bloc `.lots-grille-inline-create`), **pas**
`editMode` PrimeVue → les lignes existantes restent non éditables. Alignement
visuel par grille CSS sur les colonnes lotissement.

### Clavier
Tab = champ suivant (natif) ; Entrée = valider ; Échap = annuler sans save.
Focus auto sur « Lot » à l’ouverture et après un succès.

### Tri / pagination
Pas de pagination sur cette grille. Après succès → `reloadData()` ; le lot
apparaît dans `lotsTries` (tri `numero_lot` numérique). La ligne de saisie reste
fixe **sous** le tableau.

### Droits
Même porte que « + Nouveau lot » : page commercialisation authentifiée ; endpoint
`POST …/lots-commerciaux` (`LotCommercialController::store`) — pas de Policy dédiée.
Bouton « Ajouter un lot » seulement si `grille_lotissement`.

### Défauts nouvelle ligne
- `statut` = `en_stock`
- `type_logement` = `Terrain` (masqué, requis back)
- `regime_tva` = `tva_20`
- `prix_vente_ttc` optionnel (persisté à la création si fourni ; écart = vente − grille)

### Back
`validateLotCommercialStorePayload` : `prix_vente_ttc` / `statut` optionnels.
`createLotCommercialWithEmplacements` : n’écrase plus systématiquement vente/diff
à null si fournis. VEFA dialog n’envoie pas ces champs → comportement inchangé.

### VEFA / dialog
Grille VEFA et dialog création/édition inchangés (chemins `v-if="!isGrilleLotissement"` /
dialog existant).

## DÉPLOIEMENT-TEST

```bash
git pull origin main
find app/ -name "*.php" -exec touch {} +
php artisan optimize:clear
php artisan journal:sync
# pas de migrate ; pas de route:clear (aucune route ajoutée)
```

Tester EQUILIBRE (inline) + ARBOREA / LES TRITONS (pas de bouton +).

## LEÇON
Pour une saisie rapide multi-lignes, un formulaire sous le tableau évite
d’activer l’édition globale d’une DataTable (qui rendrait les lignes existantes
éditables) tout en réutilisant le même endpoint de création.
