---
suivi: 1838
date: 2026-10-09
sujet: Périmètre du dossier foncier construit parcelle par parcelle
chantier: foncier
type: evolution
statut: poussé
hash: e88135af9
fichiers:
  - app/Services/Foncier/DossierPerimetreSaisieService.php
  - app/Http/Controllers/Foncier/DossierFoncierController.php
  - app/Http/Middleware/HandleInertiaRequests.php
  - routes/web.php
  - resources/js/Components/Foncier/DossierParcellesSelect.vue
  - resources/js/Components/Foncier/DossierFoncierTab.vue
  - resources/js/Pages/Foncier/Dossiers/Form.vue
  - resources/js/Pages/Foncier/Dossiers/Show.vue
  - resources/js/Pages/Programmes/Foncier.vue
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - tests/Feature/Foncier/FoncierDossierPerimetreParcelle1838Test.php
  - tests/Feature/Foncier/FoncierDossierPorteProprietairesSourceTest.php
  - tests/Feature/Foncier/FoncierDossierPorteProprietairesTest.php
  - tests/Unit/DossierFoncier1588CreationSourceTest.php
  - tests/Unit/DossierFoncier1603PerimetreSourceTest.php
  - tests/Unit/DossierFoncier1624ReferenceSourceTest.php
  - tests/Unit/Proprietaire1578SourceTest.php
  - public/build/manifest.json
  - docs/suivi/SUIVI_1838_perimetre_dossier_par_parcelle.md
---

# SUIVI #1838 — périmètre du dossier par parcelle

## PROMPT ENVOYÉ

Phase 2, lot 1/3, suite du diagnostic #1837. Le périmètre se construit parcelle par parcelle (origine manuel), sans recopier les détentions. Les propriétaires du dossier sont déduits des détenteurs courants, société détentrice comprise. Le retrait d’une parcelle ne clôture jamais la détention. Pas de changement de visibilité, de prospection, d’offre, de promesse, ni de journal du dépôt projet (lot 2). Pas de nettoyage des périmètres existants (lot 3). Le pivot propriétaire n’est ni vidé ni supprimé.

## Fiches lues

- #1837 : diagnostic dans la conversation, pas de fiche. L’ajout d’un propriétaire recopiait toutes ses détentions courantes. La création #1588 ne le faisait déjà plus, mais partait encore du propriétaire et écrivait l’origine détention.
- #1588 LEÇON : la création ne doit pas rappeler le miroir de toutes les détentions. Ce lot va plus loin : la création n’écrit plus le pivot propriétaire et rattache les parcelles cochées en origine manuel.
- #1289 : le périmètre est dossier_foncier_parcelle, origine detention ou manuel. Le manuel est conservé par la synchro. Le nouvel ajout n’appelle pas cette synchro.
- #1592 LEÇON : le retrait n’est plus bloqué par un engagement. Le flux de retrait (audit, statut, détention intacte) n’est pas modifié.
- #1111 LEÇON : le dossier portait les propriétaires et le miroir en découlait. L’onglet ne les saisit plus. Le pivot reste pour les négociations jusqu’au lot 2. L’assertion @deprecated #1111 est déjà absente du modèle sur main : elle n’a pas été réintroduite.

## SYNTHÈSE

L’onglet Foncier commence par les parcelles. Recherche (commune, section, numéro, y compris « BT 257 » pour « BT 0257 ») et liste collée (virgule, point-virgule, saut de ligne). L’aperçu sépare trouvées (cochées), ambiguës (choix de commune, rien coché) et introuvables. Une commune filtrée lève l’ambiguïté quand une seule parcelle correspond. L’ajout ignore une parcelle déjà présente. Une parcelle non visible ou non autorisée est ignorée et signalée. Origine manuel. Aucune écriture de détention.

Les propriétaires affichés sont calculés à la lecture : détenteurs courants des parcelles du périmètre, et la société détentrice quand elle est renseignée. Pas de saisie. Le bandeau jaune dit que retirer une parcelle ne modifie jamais la détention cadastrale.

La création de dossier utilise le même sélecteur. Un dossier peut être créé sans parcelle. Les parcelles postées sont rattachées en origine manuel, après le contrôle sous compromis et le contrôle de visibilité. Le pivot propriétaire n’est pas alimenté. La route d’attache d’un propriétaire reste en place, hors de l’écran.

Les négociations lisent encore le pivot propriétaire. Un dossier créé par ce lot n’a donc pas de propriétaire saisi : le bouton de négociation reste inactif jusqu’au lot 2.

## Mapping

| Bouton ou champ affiché | Route ou valeur postée | Droit | Effet en base |
| --- | --- | --- | --- |
| Recherche (onglet Foncier) | GET foncier.dossiers.parcelles.search, q, code_insee | foncier.lecture, policy view | aucun |
| Recherche (création) | GET foncier.dossiers.perimetre.recherche | foncier.gestion | aucun |
| Analyser (liste collée, dossier) | POST foncier.dossiers.perimetre.apercu.dossier, texte, code_insee | foncier.lecture, policy view | aucun |
| Analyser (liste collée, création) | POST foncier.dossiers.perimetre.apercu | foncier.lecture | aucun |
| Ajouter les parcelles (N) | POST foncier.dossiers.perimetre.store, parcelle_ids | foncier.gestion, policy update, view et useInDossier sur chaque parcelle | dossier_foncier_parcelle origine manuel ; parcelle déjà présente ignorée ; non autorisée ignorée et signalée |
| Retirer | DELETE foncier.dossiers.parcelles.destroy | foncier.gestion, policy update | retrait du périmètre, audit, statut recalculé, détention intacte |
| Créer (nouveau dossier) | POST foncier.dossiers.store, libelle, parcelle_ids, commune, origine, responsables | foncier.gestion | dossier, parcelles origine manuel, pas de pivot propriétaire |
| Propriétaires déduits | aucun POST | lecture de la fiche | aucun |

## DÉPLOIEMENT-TEST

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

Pas de migration.

1. Coller « AI 925, AI 0926 ; BT 257 » : trouvées, introuvables, ambiguës.
2. Ajouter trois parcelles : trois lignes de périmètre, origine manuel, détention inchangée.
3. Propriétaires déduits : détenteur courant, société si la parcelle est au groupe, disparition après retrait si plus aucune parcelle.
4. Parcelle non autorisée : ignorée et signalée.
5. Création d’un dossier à partir de parcelles, sans propriétaire saisi.

## LEÇON

Ne pas resynchroniser les détentions d’un propriétaire vers le périmètre : un détenteur de plusieurs centaines de parcelles remplit le dossier. L’ajout et la création passent par attacher, origine manuel. La correspondance cadastrale doit compléter le numéro sur 4 chiffres : « BT 257 » ne se trouve pas par un LIKE sur « BT 0257 ». Le pivot propriétaire alimente encore la visibilité et les négociations (lot 2) : ne pas le remplir depuis cet onglet, sinon la visibilité ré-expose toutes les détentions du propriétaire.
