netgescon-day0/skill-netgescon/directives/anagrafiche-e-nominativi-canonici.md

39 lines
2.3 KiB
Markdown

# Direttiva Operativa: Allineamento e Unicità delle Anagrafiche e dei Nominativi Condominiali
## Scopo
Questa direttiva sancisce la regola fondamentale per cui **tutte le interfacce, viste e blade di NetGescon (inclusa la scheda unità `unita-immobiliare`, il riepilogo `condomini/nominativi` e le maschere contabili) devono tassativamente attingere dagli stessi archivi relazionali canonici**, evitando divergenze tra schermate o sovrascritture arbitrarie da viste legacy temporanee.
---
## 1. Sorgente Dati Canonica Obbligatoria
1. **Unità Immobiliari**: `unita_immobiliari` con identificativo univoco, scala, piano, interno e `stabile_id`.
2. **Soggetti e Persone**: Tabella canonica `persone` (denominazione / ragione sociale o cognome + nome, codice fiscale, contatti telefonici ed email).
3. **Relazioni Titolarità Temporale**: Tabella `persone_unita_relazioni` con:
- `tipo_relazione`: `'proprietario'`, `'comproprietario'`, `'nudo_proprietario'`, `'usufruttuario'`, `'condomino'` per i possessori; `'inquilino'`, `'conduttore'`, `'locatario'` per gli inquilini.
- `quota_relazione` / `perc_diritto_reale`: percentuale di possesso o diritto reale (es. 50% / 50%).
- `data_inizio` e `data_fine`: validità temporale legata all'anno di gestione attivo.
- `attivo`: stato della relazione.
---
## 2. Regole di Visualizzazione e Normalizzazione
- **Gestione Anno Attivo (`AnnoGestioneContext`)**: I nominativi di proprietari e inquilini visualizzati devono sempre rispecchiare l'esercizio/anno di gestione attivo selezionato nel contesto di sessione.
- **Risoluzione Denominazione Persona/Azienda**:
```sql
CASE
WHEN COALESCE(p.ragione_sociale, '') <> '' THEN p.ragione_sociale
ELSE TRIM(CONCAT(COALESCE(p.cognome, ''), ' ', COALESCE(p.nome, '')))
END
```
È vietata la concatenazione ridondante di cognome, nome e ragione sociale che produce duplicazioni testuali.
- **Distinzione Netta Condòmini vs Inquilini**: In tutte le viste le titolarità e i recapiti di proprietari e inquilini devono rimanere nettamente separati.
---
## 3. Conformità Multi-Blade
- **`UnitaImmobiliarePage` (`/admin-filament/unita-immobiliare`)** e **`NominativiStabile` (`/admin-filament/condomini/nominativi`)** utilizzano la medesima logica di query atomica relazionale, garantendo che lo stesso condòmino/inquilino appaia in modo identico in entrambe le pagine.