fix(directives): enforce id_cond mapping between condomin and comproprietari, preserve 50% comproprietà and document architectural rules (task-d095b0e23b)

This commit is contained in:
michele 2026-08-27 13:29:25 +02:00
parent 7e0fce51c5
commit 6d01ab2296
4 changed files with 36 additions and 3 deletions

View File

@ -16,12 +16,24 @@ ## Ordine di lettura obbligatorio
Se uno dei file obbligatori manca o non e leggibile, l'agent deve fermarsi e restituire `BLOCCO_CONTESTO`.
## Regole rigide Catasto
## Regole rigide Catasto e Anagrafiche Stabili
- E vietato creare fallback dati per riempire la maschera Catasto.
- E vietato usare query locali di comodo al posto dell'archivio consolidato delle unita immobiliari.
- Se manca una relazione, una sorgente dati o una conferma strutturale, l'agent deve restituire `BLOCCO_DATI`.
- Ogni modifica deve proteggere il flusso: `import/prelettura -> matching -> conferma -> aggiornamento unita consolidate -> validazione`.
- **Relazioni Anagrafiche Legacy**:
- `id_cond` e il campo unico e tassativo di collegamento tra la tabella `condomin` e la tabella `comproprietari` per associare comproprietari, nudi proprietari ed usufruttuari alla corretta unita immobiliare.
- `cod_cond` e il codice contabile gestionale di ciascun anno gestione per legare rate ed incassi (`emes_det` e `incassi` in `generale_stabile.mdb`).
- `cond_inquil` (`'C'` per Condomino/Proprietario e `'I'` per Inquilino) distingue tassativamente la titolarita dei movimenti contabili per ciascuna gestione.
- Le percentuali di comproprieta e diritti reali (`perc_diritto_reale`, es. 50% / 50%) devono essere tassativamente rispettate e conservate nelle movimentazioni temporali di ciascun anno gestione.
## Regole rigide Stabili e Fatture Elettroniche (FE)
- L'anagrafica degli Stabili viene alimentata e sincronizzata direttamente dall'archivio consolidato `Stabili.mdb` popolando tassativamente il `codice_fiscale` dello Stabile.
- Le Fatture Elettroniche (XML/P7M/ZIP) scansionate nelle cartelle di lavoro e di archivio vengono assegnate ed associate agli Stabili con certezza assoluta ed esclusiva tramite il matching del `CessionarioCommittente` con il `codice_fiscale` dello Stabile.
- È vietata qualsiasi assegnazione arbitraria di Fatture Elettroniche priva di riscontro sul Codice Fiscale / Partita IVA dell'ente condominiale.
- È vietato lo svuotamento o la cancellazione automatica dei dati degli stabili consolidati (la pipeline di importazione richiede l'opzione esplicita `--reset-temp`).
## Regole macchina

View File

@ -189,7 +189,7 @@ public function handle(): int
$unitInfo = ($cIdCond && isset($unitMapByIdCond[$cIdCond]))
? $unitMapByIdCond[$cIdCond]
: (($cCodCond && isset($unitMapByCodCond[$cCodCond])) ? $unitMapByCodCond[$cCodCond] : null);
: null;
$rawScala = $unitInfo['scala'] ?? (isset($c['ex_scala']) ? (string)$c['ex_scala'] : '');
$rawInterno = $unitInfo['interno'] ?? (isset($c['ex_int']) ? (string)$c['ex_int'] : '');

View File

@ -25,7 +25,7 @@ # ASCII Wireframe - Nominativi e Anagrafica Unica per Stabile
| | NOMINATIVO CANONICO | CF / P.IVA | RUOLO & QUOTA | UNITA IMMOBILIARE | PERIODO / GESTIONE | AZIONI | |
| +--------------------------+------------------+-------------------+-------------------+--------------------+--------+ |
| | FRANCIONI CLAUDIA / | FRNCLD49P51H501B | Comproprietà 50% | Scala B - Int. 4 | Dal 01/01/2000 | [Apri] | |
| | BARONE MICHELE | BRNMHL69M11H501K | (Piena proprieta) | (ID 313) | (Gestione 0914) | [Edit] | |
| | BARONE MICHELE | BRNMHL69M11H501K | Comproprietà 50% | (ID 321) | (Gestione 0914) | [Edit] | |
| | [Email: cecilia.tordini@gmail.com] | | | | | |
| +--------------------------+------------------+-------------------+-------------------+--------------------+--------+ |
| | SAVELLI FABIO | SVLFBA58H27H501P | Comproprietà 50% | Scala A - Int. 25 | Dal 01/01/2000 | [Apri] | |

View File

@ -0,0 +1,21 @@
# Direttiva Architetturale: Mapping Anagrafico e Contabile Legacy Gescon
## 1. Collegamento tra `condomin` e `comproprietari`
- **Campo primario**: `id_cond`
- **Regola tassativa**: La tabella `comproprietari` deve essere collegata alla tabella `condomin` **esclusivamente** tramite il campo `id_cond`.
- **Esempio Stabile 0016 (Interno B/4)**:
- `condomin`: `id_cond = 47`, `cod_cond = 50`, `scala = B`, `int = 4`, `nom_cond = Barone Michele`, `perc_diritto_reale = 50`
- `comproprietari`: `id_cond = 47`, `nom_cond = Francioni Claudia`, `email = cecilia.tordini@gmail.com`, `perc_diritto_reale = 50`
- Risultato unificato: Int. B/4 -> **Barone Michele (50% Comproprietà)** e **Francioni Claudia / Cecilia Tordini (50% Comproprietà)**.
- Divieto: È vietata qualsiasi associazione tra `comproprietari` e `condomin` basata sul campo `cod_cond`, in quanto `cod_cond` è il progressivo contabile della singola gestione e può identificare un'altra unità in quell'anno (es. `cod_cond = 47` appartiene all'interno E - Giovagnoni Marina).
## 2. Collegamento Contabile (`incassi`, `rate`, `emes_det`)
- **Campo contabile per anno gestione**: `cod_cond`
- **Distinzione ruolo contabile**: `cond_inquil`
- `'C'`: Condomino / Proprietario
- `'I'`: Inquilino / Locatario
- **Funzione**: Il campo `cod_cond` accoppiato con `cond_inquil` lega in maniera univoca ciascuna riga di addebito o incasso (`incassi`, `rate`, `emes_det` in `generale_stabile.mdb`) all'anagrafica del condomino o dell'inquilino per quella specifica gestione.
## 3. Gestione Percentuali e Movimentazioni Temporali
- Le quote e percentuali di possesso (`perc_diritto_reale`, es. 50% / 50%) devono essere mantenute con precisione senza forzare la Piena Proprietà (100%) in presenza di comproprietari o contitolari.
- Ciascun avvicendamento storico va conservato nelle movimentazioni temporali per l'anno gestione di competenza.