# 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 `
` 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](file:///home/michele/netgescon-day0-backup/directives/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.