netgescon-day0/directives/history/sanatoria_fase_7_esecutiva.md

3.6 KiB

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.