9.5 KiB
📑 SOP - INTEGRAZIONE HUB CATASTO (SERVIZIO SISTER AGENZIA DELLE ENTRATE)
Documento di Livello 1 (SOP Esecutiva) Integrazione per la validazione della consistenza catastale e della titolarità (Proprietari/Comproprietari) per le 212 unità immobiliari dello Stabile.
1. Visione del Modulo e Sicurezza (Privacy Multi-Tenant)
L'HUB Catasto consente di incrociare in modo deterministico i dati delle unità immobiliari NetGescon con le risultanze ufficiali dell'Agenzia delle Entrate tramite il provider Sister (thenetworksolution.it).
- Autenticazione Centralizzata:
- Il sistema eredita le credenziali in background (username
ue passwordpo chiave licenzapasswordScript) dal file.env(configurazioneSISTER_USERNAME,SISTER_PASSWORD,SISTER_LICENSE_KEY).
- Il sistema eredita le credenziali in background (username
- Isolamento Documentale Multi-Tenant:
- Tutti i file scaricati (visure PDF, file XML firmati digitalmente, file JSON temporanei e archivi ZIP per omoimmobili) devono essere salvati in modo isolato nel cloud drive dello stabile rispettando rigidamente il percorso:
[Codice_Amministratore_8_Caratteri]/[Codice_Stabile_0021]/catasto/ - I cookie di sessione e i log delle chiamate per le sessioni concorrenti devono essere salvati nella sotto-cartella temporanea dello stabile per evitare collisioni.
- Tutti i file scaricati (visure PDF, file XML firmati digitalmente, file JSON temporanei e archivi ZIP per omoimmobili) devono essere salvati in modo isolato nel cloud drive dello stabile rispettando rigidamente il percorso:
2. Flusso dei Metodi di 'SisterCatastoService.php'
Il service Laravel App\Services\SisterCatastoService.php gestirà la comunicazione con gli endpoint di TheNetworkSolution tramite Http client o cURL, implementando i seguenti metodi tecnici deterministici:
Metodo A: ricercaImmobiliSoggetto (mashImmobili.php)
- Endpoint:
https://thenetworksolution.it/sister/mashImmobili.php - Parametri:
cf(se persona fisica) opg(se persona giuridica)tipoCatasto(Fper Fabbricati,Tper Terreni,Eper Entrambi - di defaultE)uffprovinciale(es:ROMA Territorio-RM)
- Regole & Easy Mode:
- Utilizza il parametro
&easy=1per restituire ilSIDdi sessione nel JSON di risposta, semplificando il tracciamento dei cookie HTTP senza dipendere dallo stato di sessione del browser.
- Utilizza il parametro
- Output: Array JSON contenente i dati anagrafici del soggetto e la lista di immobili associati con coordinate (Foglio, Particella, Subalterno) e Rendita.
Metodo B: ricercaIntestatiImmobile (mashIntestati.php)
- Endpoint:
https://thenetworksolution.it/sister/mashIntestati.php - Parametri:
tipoCatasto(F/T)uffprovincialedenomComune(es:D969#GENOVA#10#3recuperato dall'ausiliariocomuni.php)sezione(opzionale)sezUrb(opzionale)foglio(nullable, convertito a stringa vuota)particella(nullable, convertito a stringa vuota)subalterno
- Output: Array JSON contenente tutti i soggetti intestatari reali dell'immobile rilevati dall'Agenzia delle Entrate, comprensivo di quote di possesso (es:
1/2,1/1) e titoli (Proprietà, Usufrutto, Nuda Proprietà).
Metodo C: acquistaEPrelevaVisura (mashVisureI.php / elencoRichieste.php)
- Endpoint Visura:
https://thenetworksolution.it/sister/mashVisureI.php - Endpoint Polling:
https://thenetworksolution.it/sister/elencoRichieste.php - Regole di Evasione e Polling:
- Se il servizio restituisce direttamente il file PDF/XML, lo salva nel Drive dello Stabile.
- Se il servizio riscontra un'evasione differita restituendo
{idRichiesta: 1555611493}, il sistema avvia un polling asincrono in background richiamandoelencoRichieste.php?download=1555611493a intervalli regolari (es. ogni 10 secondi, per un massimo di 5 tentativi) fino al prelievo del documento.
- Gestione Omoimmobili:
- In caso di omoimmobili, Sister restituisce un archivio ZIP contenente le visure multiple. Il service deve scompattare l'archivio ZIP memorizzando i singoli file PDF/XML all'interno del percorso cloud drive dello stabile.
- Gestione Cache delle 24 Ore:
- Tutte le chiamate di acquisto mantengono di default la cache a 24 ore per impedire addebiti duplicati accidentali. Per forzare un nuovo acquisto o per visure storiche entro 24 ore da una completa, passare esplicitamente il parametro
&cache=0.
- Tutte le chiamate di acquisto mantengono di default la cache a 24 ore per impedire addebiti duplicati accidentali. Per forzare un nuovo acquisto o per visure storiche entro 24 ore da una completa, passare esplicitamente il parametro
3. Regole di Business e Allineamento Dati (NetGescon Core)
L'importazione e la validazione dei dati catastali devono proteggere i dati core ed allinearsi al modello anagrafico temporale:
A. Ereditarietà e Variazioni Temporali (Proprietari vs Inquilini)
- I dati estratti (soggetti intestatari e quote) devono essere associati esclusivamente ai Condòmini/Proprietari (ruolo
Co comproprietari storici). - Gli Inquilini (ruolo
I) sono esclusi da questa verifica catastale. - Le variazioni di titolarità e quote devono essere registrate como record storici all'interno della tabella pivot
unita_anagrafica_periodocon le date di decorrenza (dal/al) rilevate dalla visura catastale o dall'atto.
B. Audit, Revisione ed Isolamento Anomalie
- In caso di sbilanciamenti catastali (es: discrepanza di Rendita, Subalterno errato o Foglio disallineato rispetto al database legacy):
- Il sistema NON deve sovrascrivere in modo automatico i campi catastali dell'unità immobiliare.
- La discrepanza deve essere registrata come anomalia e presentata in evidenza (in colore rosso) all'interno del pannello "Audit e Revisione" dello stabile e dell'anno di gestione attivo.
- L'operatore deve poter cliccare su "Riallinea" o "Aggiorna" per correggere ed associare manualmente i dati catastali corretti dell'unità direttamente in-place.
4. Flusso dell'Interfaccia Web (CatastoHub Filament)
La pagina Filament CatastoHub.php esporrà un'interfaccia a due Tab principali:
TAB A (Visione Globale Stabile):
- Sotto-Sezione Sinistra (SX): Mostra l'elenco completo di tutti i subalterni rilevati catastalmente su Sister (inclusi quelli soppressi, es. 3 e 7 per Milizie 3).
- Sotto-Sezione Destra (DX): Mostra la griglia ordinata delle nostre 212 unità immobiliari core ereditate dal legacy, consentendo un riscontro visivo in-line per verificare immediatamente se mancano immobili o se i dati coincidono.
TAB B (Scheda Variazioni Appartamento):
- Colonna Sinistra (SX): L'elenco ordinato in modo naturale delle unità immobiliari core per Palazzina/Scala/Interno progressivo.
- Colonna Destra (DX - Raffronto a specchio): Espone un confronto visivo riga per riga afocato tra i Dati Catastali Legacy (dall'array
$stagingRawDatadella tabella condomin) e i Dati Catastali Ufficiali scaricati da Sister. - Tutti i campi di allineamento manuale (Foglio, Particella, Subalterno, Sezione Urbana, Categoria, Rendita) sono editabili in-place. L'azione "Applica e Correggi" e "Approva Variazione" scrive a database i campi supportati ed inserisce le modifiche storiche in
unita_anagrafica_periodosolo previa approvazione manuale dell'operatore.
5. Aggiornamenti e Ottimizzazioni Fase 7b
A seguito del feedback degli utenti e della risoluzione dei bug bloccanti, sono state introdotte le seguenti evoluzioni:
A. Rimozione Limite Scarico Geometria (Ingestione Massiva)
- Il metodo
interrogaGeometriaStabile()non limita l'acquisizione dei subalterni a un tetto massimo di 10 record, ma esegue l'elaborazione dell'elenco completo di tutti i subalterni della particella 256 del Foglio 405 (Milizie 3) storicizzandoli in cache.
B. Tolleranza Coordinate Vuote (TypeError Check)
- I parametri
$foglioe$particellanei metodiricercaIntestatiImmobileeacquistaEPrelevaVisurainSisterCatastoService.phpsono nullable (?string). - Durante l'invocazione da parte del controller
CatastoHub.php, viene effettuato un casting stringa preventivo con fallback a stringa vuota:(string)($unita->foglio ?? '')e(string)($unita->particella ?? '')per impedire blocchi di esecuzione causati da record legacy incompleti.
C. Gestione Doppie Scale e Ricerca Unità
- Per ovviare alle apparenti duplicazioni delle unità a sinistra (es. quattro volte l'interno 1 per scale diverse A, B, C, D), l'elenco della colonna di sinistra visualizza sia la Scala che l'Interno (es:
Scala A · Int. 1). - Introdotto un campo di input per filtrare in tempo reale l'elenco delle unità e un pulsante per invertire l'ordinamento (
Sort: ASC/DESC) agendo progressivamente suinternoescala.
D. Scorciatoie nell'Header (Eliminazione Dropdown)
- Rimosso il selettore della gestione dalla topbar.
- Inseriti due link rapidi per navigare direttamente a
/admin-filament/condomini/riscaldamento-utenze(badge compatto [RISCALDAMENTO]) e a/admin-filament/gescon/straordinarie(badge compatto [STRAORDINARIE]), ereditando correttamente il parametrostabile_idattivo. - Il selettore dell'anno di gestione contabile corrente rimane fisso e visibile per non compromettere il cambio anno dell'operatore.
E. Dizionario Categorie Catastali Standard dello Stato
Il sistema integra a livello di Service e Controller la mappatura deterministica ufficiale dell'Agenzia delle Entrate per la decodifica automatica delle categorie:
- Gruppo A (A/1 - A/11): Abitazioni (es. A02 ➔ A/2 - Abitazioni di tipo civile).
- Gruppo B (B/1 - B/8): Collegi, caserme, ospedali, scuole (es. B01 ➔ B/1).
- Gruppo C (C/1 - C/7): Negozi, magazzini, autorimesse (es. C02 ➔ C/2 - Magazzini e locali di deposito, C06 ➔ C/6).
- Gruppo D (D/1 - D/10): Opifici, alberghi, teatri (es. D01 ➔ D/1 - Opifici).
- Gruppo E (E/1 - E/9): Stazioni, ponti, recinti pubblici.
- Gruppo F (F/1 - F/7): Aree urbane, lastrici solari, unità collabenti (es. F05 ➔ F/5 - Lastrico solare).