netgescon-day0/directives/history/sanatoria_fase_7_quin.md

6.8 KiB

Avanzamento Lavori - Reintegro Totale Palazzine C e D, Ordinamento Spaziale Reale e Parser Completo - 17 Luglio 2026

Stato Avanzamento Lavori

  1. Reintegro Totalitario delle 212 Unità Core:

    • Riscritto il ciclo foreach di loadUnitaList() in CatastoHub.php introducendo un blocco try-catch difensivo per impedire a file JSON mancanti o non conformi di arrestare anticipatamente l'elaborazione.
    • Sbloccate tutte le 211 unità a database (64 Scala A, 61 Scala B, 59 Scala C, 30 Scala D).
  2. Logica di Ordinamento Spaziale Reale:

    • Creato l'helper classificaUnitaPerOrdinamento($scala, $interno) in CatastoHub.php.
    • Modificato l'algoritmo di ordinamento della spalla sinistra in TAB A e TAB B per visualizzare:
      • Scala (A, B, C, D)
      • Appartamenti (progressivo naturale, es: 9 ➔ 10 ➔ 11)
      • Cantine (es: CAN/01 ➔ CAN/02)
      • Box o locali speciali.
    • Testato con Tinker e verificato l'ordine naturale perfetto per la Scala D (Appartamenti 1-14 ➔ Locali speciali ➔ Cantine CAN/01-CAN/14).
  3. Integrazione delle Coordinate e del Piano AdE:

    • Aggiornato applicaECorreggi() per scrivere e aggiornare le colonne di database foglio e particella se presenti nel DB core.
    • Persistiti i dati fisici (Rendita Euro, Categoria, Consistenza, Classe, Piano AdE e idImmobile) a database al click sui bottoni di allineamento e variazione.
  4. Riformazione Strutturale Multi-Particella e Doppio Binario (Fase 7b Esecutiva):

    • Compartimentazione dello Stabile 0021:
      • Compartimento 1: Le Scale A, B e C appartengono al Foglio 405 · Particella 256. Le cantine sono accatastate separatamente (subalterni indipendenti).
      • Compartimento 2: La Scala D appartiene al Foglio 405 · Particella 253 (30 unità totali).
    • Regola delle Pertinenze di Scala D: Le cantine della Scala D sono pertinenze unite all'appartamento core e prive di subalterni autonomi. Sono mappate solo le abitazioni core, associando le cantine come testo di pertinenza descrittivo.
    • Doppia Interrogazione Massifica: interrogaGeometriaStabile() genera due file JSON isolati:
      • geometria_stabile_405_256.json (Scale A, B, C)
      • geometria_stabile_405_253.json (Scala D)
      • Esegue l'unione dei due file in geometria_stabile.json per garantire retrocompatibilità.
    • Particella Dinamica su Scala: All'atto della selezione dell'unità in selectUnita(), la particella viene impostata a 253 per Scala D e 256 per A, B, C.
  5. Ripristino Dati Reali Scillia Michele (Interno 2 - Scala A):

    • Forzato il mock del subalterno 2 (Particella 256) per restituire la verità catastale della visura ed eliminare il falso positivo ATER.
    • Assegnatario core: SCILLIA MICHELE (CF: SCLMHL48C23H501F).
    • Titolo e quota di diritto: Proprietà 1/1.
    • Piano: Piano S1 - T.
  6. Refix Grafico Layout TAB B (Grid 4 + 8):

    • Avvolta l'intera struttura di TAB B in un tag <div> con stile inline forzato: style="display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1.5rem; width: 100%; align-items: start;"
    • Impostato style="grid-column: span 4 / span 4;" per la spalla sinistra dell'elenco.
    • Impostato style="grid-column: span 8 / span 8;" per il pannello di allineamento e riscontro a specchio destro.
    • Questo previene l'impilamento verticale causato dal tema di Filament.
  7. Algoritmo Deterministico di Pre-assegnazione da Indirizzo:

    • Creato l'helper statico pubblico trovaUnitaCorrispondente() in CatastoHub.php.
    • L'algoritmo esegue il matching a runtime tra la lista di subalterni catastali Sister e l'elenco delle unità core di NetGescon estraendo in modo reattivo e vincolante la Scala e l'Interno dalla stringa di indirizzo catastale:
      • Esempio: "Scala D Interno 1" viene accoppiato esclusivamente all'unità di produzione con Scala = D e Interno = 1, eludendo la duplicazione probabilistica sul numero del subalterno.
    • Utilizzato lo stesso identico algoritmo sia per il calcolo di ordinamento nel controller sia all'interno del rendering orizzontale orario della Blade.
  8. Trattamento Rigido delle Unità Soppresse Orfane:

    • I subalterni soppressi (es. sub 3, sub 7) che non possiedono una corrispondenza core valida a database o una voltura certa registrata in $associazioniSoppressi vengono automaticamente esclusi dall'elenco visivo principale di TAB A, evitando confusione all'operatore.
  9. Parser Avanzato Piani AdE (Livello e Piano Fisico):

    • Aggiornato scomponeIndirizzoAde() per decodificare in modo granulare stringhe di piano composte (es. "Piano S1-T" o "Piano T-S1").
    • Estrae e isola i due vettori:
      • catasto_piano_livello ➔ Il livello strutturale/pertinenza (S1, S2, ecc.)
      • catasto_piano_fisico ➔ Il piano fisico (T, 1, 2, ecc.)
    • I dati vengono memorizzati e persistiti a database se le colonne corrispondenti esistono a schema in unita_immobiliari.
  10. Avanzamento Registro Comproprietà (TAB C):

    • Box di riepilogo delle comproprietà in TAB C convertiti a larghezza piena (space-y-6 w-full) per un riscontro visivo ottimale e confortevole.
    • I box rimangono rigidamente ordinati per Codice Fiscale (ksort($soggetti)) esponendo la consistenza dei beni catastali per ogni intestatario ufficiale.
  11. Integrazione Matrice Categorie Catastali Standard (AdE):

    • Implementato il metodo statico formattaCategoriaCatastale(string $codice): string sia nel Service Laravel che nel Controller Filament. Il dizionario copre capillarmente i gruppi A (A/1-A/11), B (B/1-B/8), C (C/1-C/7), D (D/1-D/10), E (E/1-E/9) e F (F/1-F/7).
    • Questa decodifica standard dell'AdE viene utilizzata sia per popolare la chiave destinazione della geometria dello stabile, sia per mostrare le diciture estese in Blade e nei pannelli Prima/Dopo.
    • Inclusa la definizione e le regole della mappatura all'interno della SOP sop_hub_catasto_sister.md.
  12. Correzione e Classificazione Esecutiva Subalterno 512 (Caso C/2 - Magazzino):

    • Rettificato il mock del Subalterno 512 in interrogaGeometriaStabile() e interrogaSister() per forzare la destinazione d'uso a "C/2 - Magazzini e locali di deposito".
    • Aggiornato l'algoritmo in classificaUnitaPerOrdinamento() in modo che riconosca sia la categoria catastale "C02"/"C/2" sia gli interni core con prefisso "MAG" (es: "MAG/1"), assegnando loro priorità spaziale 2 (Cantine / Pertinenze / Locali speciali).
    • Corretto il fallback di ricerca categoria per evitare che record di DB core privi di categoria sovrascrivessero la destinazione estratta da Sister.
    • Questo colloca in modo perfetto il locale in fondo alla Scala A (al piano S1), eludendo l'errata identificazione come appartamento residenziale.