---
suivi: 1830
date: 2026-10-08
sujet: Fiche propriétaire, parcelles détenues et cédées
chantier: foncier
type: correctif
statut: poussé
hash: d462c57bb
fichiers:
  - app/Http/Controllers/Foncier/ProprietaireController.php
  - app/Services/Foncier/ActeAcquisitionService.php
  - resources/js/Pages/Foncier/Proprietaires/Show.vue
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - tests/Feature/Foncier/FoncierProprietaireParcelles1830Test.php
  - tests/Unit/FoncierProprietaireParcelles1830SourceTest.php
  - public/build/manifest.json
  - docs/suivi/SUIVI_1830_parcelles_detenues_cedees.md
---

# SUIVI #1830 — parcelles détenues et cédées

## PROMPT ENVOYÉ

Phase 2 du diagnostic #1827. Deux blocs sur la fiche propriétaire. À l'achat, clôturer les vendeurs et écrire l'acte, sans clôturer le propriétaire dont entite_id est la société acquéreuse. Pas de script de données, pas de modification d'acte, pas de Parcelles/Show.vue ni ActesFonciers/Show.vue.

## Fiches lues

- #1827 (diagnostic, pas de fiche) : la fiche charge `parcelles()` sans filtre et affiche `etatLibelle` (« Détenue » = statut groupe). La clôture d'achat est le même update que A2 #1826.
- #1826 (diagnostic actes, pas de fiche) : cet update clôture aussi le propriétaire personne de la société acquéreuse et n'écrit pas `acte_foncier_id`. Le lot 1 #1826 (modifier / supprimer un acte) n'est pas fait ici. Il rebase ensuite sur `ActeAcquisitionService`.
- #1530 LEÇON : ne pas filtrer `Proprietaire::parcelles()`. `parcellesActuelles()` s'en sert. La détention groupe reste `synchroniser`.
- #1698 LEÇON : la vente clôture le groupe et ouvre les acquéreurs personne. Vérifié, aucun `update` dans `ActeVenteService`. Non modifié.
- #1100 LEÇON : Déclarer et Rattacher restent deux boutons, dans le bloc détenues.

## SYNTHÈSE

La fiche charge toujours `parcelles()` (ouvertes et clôturées), puis coupe en deux listes dans le contrôleur. « Parcelles détenues » : `date_fin_detention` vide, référence, commune, quote-part. « Parcelles cédées » : date de fin `jj/mm/aaaa`, acte, acquéreur. Le statut parcelle n'est plus envoyé. Le bloc cédé est absent s'il est vide, replié s'il dépasse 10 lignes (`cedeesDepliees` faux au départ).

Acte d'une ligne cédée : `pivot.acte_foncier_id` s'il pointe un acte. Sinon l'achat de `acte_parcelle` dont `date_acte` égale la date de fin. Plusieurs achats ce jour-là : celui dont `societe_acquereur_id` vaut `ParcelleDetentionGroupeService::societeDetentriceALaDate`. Acquéreur : nom de la société pour un achat, libellés des acquéreurs pour une vente. Rien trouvé : la date seule.

`appliquerDetentionGroupe` clôture les détentions personne ouvertes des parcelles de l'acte, sauf `proprietaires.entite_id = societe_acquereur_id`, et pose `acte_foncier_id`. `synchroniser` est inchangé : la ligne groupe de la société acquéreuse n'est pas clôturée par cet update.

Appelants de `Proprietaire::parcelles()` laissés tels quels : `parcellesActuelles()` / `parcellesDetenues()`, les `attach` de tests, le compteur de `FoncierSaisieParcelleEnrichieTest`. Les dossiers lisent `parcellesActuelles()`, pas `parcelles()`.

Hors lot : script de régularisation, réouverture HECTARE 0A 0540, modification / suppression d'acte.

### Mapping

| Bloc | Colonne affichée | Champ payload | Source |
| --- | --- | --- | --- |
| Parcelles détenues | Référence | reference | parcelles.section_cadastrale + numero, lien /foncier/parcelles/{id} |
| Parcelles détenues | Commune | commune_nom | communes.nom |
| Parcelles détenues | Quote-part | quote_part | parcelle_proprietaire.quote_part |
| Parcelles cédées | Référence | reference | idem, lien fiche parcelle |
| Parcelles cédées | Commune | commune_nom | communes.nom |
| Parcelles cédées | Date de fin | date_fin | parcelle_proprietaire.date_fin_detention, affiché jj/mm/aaaa |
| Parcelles cédées | Acte | acte.id, acte.url, acte.reference | pivot.acte_foncier_id, sinon achat acte_parcelle à la même date ; lien /foncier/actes-fonciers/{id} |
| Parcelles cédées | Acquéreur | acquereur | achat : entites.nom de societe_acquereur_id ; vente : libellés acte_foncier_acquereur |

## DÉPLOIEMENT-TEST

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

Pas de migration. Pas de route:clear.

1. Fiche Commune de Sauteyrargues : les parcelles dont la détention est clôturée sont sous Parcelles cédées, avec la date. Celles encore ouvertes restent sous Parcelles détenues. Le mot Détenue du statut parcelle n'apparaît plus.
2. Une ligne cédée avec un achat à la même date montre l'acte et la société. Sans acte à cette date, la date seule.
3. Nouvel achat : le vendeur est clos avec l'acte ; le propriétaire lié à la société acquéreuse reste ouvert ; la société détient toujours la parcelle.
4. Une vente ouvre l'acquéreur et clôt la détention du groupe.

## LEÇON

Ne pas ajouter de filtre sur `Proprietaire::parcelles()` : la fiche est le seul écran qui doit voir l'historique, et `parcellesActuelles()` réutilise la relation. La société acquéreuse se reconnaît par `proprietaires.entite_id`, pas par le nom. `whereNotIn` sur une liste vide ne doit pas être ajouté : Laravel n'y met aucune ligne. Les lignes déjà clôturées sans `acte_foncier_id` ne sont pas réécrites ici ; l'affichage les relie seulement si un achat a la même date.
