# Avanzamento Lavori - Esecuzione Sanatoria Incassi, Lettura Piatta TAB A e Scomposizione Indirizzi AdE - 17 Luglio 2026 ## Stato Avanzamento Lavori 1. **Fix Critico Crash Estratto Conto Incassi**: - Individuato l'errore `SQLSTATE[42S22] Column not found: 1054 Unknown column 'legacy_year' in 'WHERE'` nel caricamento degli incassi di `UnitaImmobiliarePage.php`. - Epurato il riferimento alla colonna inesistente `legacy_year`. - Ancorato il filtro temporale e finanziario sulla colonna reale `anno_rif` (o fallback su `anno_ref` / `anno`) calibrato rigidamente sulla gestione ordinaria attiva corrente (Anno 2026). - Sanificato il flag `'C'` racchiudendolo correttamente tra apici singoli per eliminare i blocchi di runtime dell'operatore. 2. **Inviolabilità della Colonna di Destra (NetGescon TAB A)**: - Ripristinata la lettura piatta 1:1 dell'archivio delle unità immobiliari core in sola visualizzazione. - Disattivate le presunzioni e le ricostruzioni geometriche a runtime per le righe orfane. Le unità prive di associazione esplicita a database o soppresse mostrano specularmente lo stato di "Non Associata" con il relativo menu a tendina ed il tasto "CONFERMA" per procedere all'abbinamento manuale pulito. 3. **Algoritmo di Scomposizione Indirizzo AdE**: - Implementato l'helper statico `scomponeIndirizzoAde($indirizzoCompleto)` all'interno del controller `CatastoHub` e del service `SisterCatastoService`. - Il parser scompone le stringhe complesse di Sister (es. `"VIALE DELLE MILIZIE n. 3 Scala A Interno 2 Piano S1 - T"`) estraendo ed allineando a database: * `catasto_via` ➔ VIALE DELLE MILIZIE n. 3 (e colonna standard `indirizzo`) * `catasto_scala` ➔ A (e colonna standard `scala`) * `catasto_interno` ➔ 2 (e colonna standard `interno`) * `catasto_piano` ➔ S1 - T (e colonna standard `piano`) - Gli inserimenti a DB avvengono con controllo preventivo di presenza colonna tramite `Schema::hasColumn()`, evitando crash su tabelle non ancora estese. 4. **Scompartimentazione Cache Locale e Registro TAB C per CF**: - Riorganizzato il caricamento ed il rendering della TAB C (`visura_rt`). I dati non vengono più raggruppati per Immobile ma in **BOX ATOMICI INTELLIGENTI ordinati per Codice Fiscale (`cf`)**. - Ciascun box espone il nominativo (comprensivo di decodifica anagrafica: data e luogo di nascita) ed elenca analiticamente tutte le unità e le pertinenze possedute dal soggetto all'interno dello stabile con le relative quote reali. 5. **Consolidamento Fase 7b - Blocco "Garbage In - Garbage Out"**: - **Epurazione Fallback Matematici**: Rimossi completamente in `interrogaSister()` gli algoritmi fittizi di autogenerazione delle unità che indovinavano indici e rendite catastali a runtime (es. `$subNum - 29`). In assenza di riscontro in cache reale, nella mappa ufficiale o nello staging `condomin`, il sistema si arresta sollevando una notifica di anomalia bloccante ad uso esclusivo dell'operatore contabile. - **Ordinamento Fisico Naturale Realizzato**: Unificato l'algoritmo di visualizzazione per prossimità e verticalità: 1. Palazzina / Scala (ordine alfabetico). 2. Blocco fisico: prima tutti gli appartamenti, poi tutte le cantine, poi tutte le soffitte. 3. Piano (dal seminterrato S2, S1 a salire T, 1, 2, ...). 4. Interno (progressivo numerico). 5. Collocazione esterna dei Negozi e dei Box in fondo a tutto lo stabile (Scala virtuale `ZZZ_ESTERNO`). - **Stabilizzazione Tailwind Grid in TAB B**: Forzate le classi `grid-cols-1 lg:grid-cols-12` e `lg:col-span-4` / `lg:col-span-8` per eliminare qualsiasi rischio di slittamento o impilamento verticale su monitor ad alta risoluzione.