---
suivi: 1100
date: 2026-07-30
sujet: Foncier — rattacher des parcelles existantes depuis fiche propriétaire
chantier: module-foncier
type: feature
statut: poussé
hash: ab1fe823
fichiers:
  - app/Services/Foncier/ParcelleCreationService.php
  - app/Http/Controllers/Foncier/ProprietaireController.php
  - app/Http/Controllers/Foncier/ActeFoncierController.php
  - app/Http/Middleware/HandleInertiaRequests.php
  - resources/js/Pages/Foncier/Proprietaires/Show.vue
  - routes/web.php
  - tests/Feature/Foncier/FoncierRattacherParcellesExistantesTest.php
  - tests/Feature/Foncier/FoncierRattacherParcellesExistantesSourceTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
  - docs/suivi/SUIVI_1100_foncier_rattacher_parcelles_existantes.md
---

## PROMPT ENVOYÉ

SUIVI #1100 — Rattacher des parcelles existantes depuis la fiche propriétaire
(prérequis #1088/#1092/#1096/#1099). Symétrique de « Importer une propriété »
côté parcelle. Fix scroll horizontal déclaration. Un commit + push.

## SYNTHÈSE

### Livré
1. Bloc « Rattacher existantes » sur `Proprietaires/Show.vue` — sélection multiple,
   quote-part, détenteurs courants visibles dans les résultats.
2. `POST proprietaires/{proprietaire}/parcelles/attach` →
   `attachCourantsBatchForProprietaire` → **même** `attachCourantOrUpdateQuote`
   (#1096). Transaction tout-ou-rien. Dates NULL, pas d’acte.
3. Déjà courant → maj quote-part + message clair (pas de 1062 à l’écran).
4. Somme quotes > 1 → avertissement flash / UI, **non bloquant**. Quote vide OK.
5. Déclaration #1088 : layout **deux rangs** (grille responsive) + surcharge
   commune en icône optionnelle — suppression de `overflow-x-auto`.

### Endpoint recherche réutilisé
`GET foncier.actes-fonciers.parcelles.search` (#1092) — enrichi de
`detenants_courants` / `somme_quotes_courantes` (champs ignorés par l’UI acte).
Aucun second endpoint.

### Mapping
| Affiché | Posté | DB | Back |
|---------|-------|-----|------|
| Parcelle (label) | parcelles[].parcelle_id | parcelle_proprietaire.parcelle_id | exists:parcelles |
| Quote-part | parcelles[].quote_part | quote_part | nullable 0..1 |

### Route ↔ signature
`attachParcelles(Request $request, Proprietaire $proprietaire)` ↔ `{proprietaire}`

## DÉPLOIEMENT / TEST

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

Pas de migration.

## LEÇON

Déclarer et rattacher sont deux actions distinctes. Livrer l’une sans l’autre
rend l’indivision multi-propriétaires impraticable — cas nominal du métier
foncier — alors que la fiche parcelle avait déjà le chemin symétrique.
