netgescon-day0/directives/ANAGRAFICHE_MAPPING_LEGACY.md

5.4 KiB

Direttiva Architetturale: Mapping Anagrafico, Contabile e Catastale Legacy Gescon

1. Collegamento tra condomin e comproprietari

  • Campo primario: id_cond
  • Regola tassativa: La tabella comproprietari deve essere collegata alla tabella condomin esclusivamente tramite il campo id_cond.
  • Esempio Stabile 0016 (Interno B/4):
    • condomin: id_cond = 47, cod_cond = 50, scala = B, int = 4, nom_cond = Barone Michele, perc_diritto_reale = 50
    • comproprietari: id_cond = 47, nom_cond = Francioni Claudia, email = cecilia.tordini@gmail.com, perc_diritto_reale = 50
    • Risultato unificato: Int. B/4 -> Barone Michele (50% Comproprietà) e Francioni Claudia / Cecilia Tordini (50% Comproprietà).
    • Divieto: È vietata qualsiasi associazione tra comproprietari e condomin basata sul campo cod_cond, in quanto cod_cond è il progressivo contabile della singola gestione e può identificare un'altra unità in quell'anno (es. cod_cond = 47 appartiene all'interno E - Giovagnoni Marina).

2. Collegamento Contabile (incassi, rate, emes_det)

  • Campo contabile per anno gestione: cod_cond
  • Distinzione ruolo contabile: cond_inquil
    • 'C': Condomino / Proprietario
    • 'I': Inquilino / Locatario
  • Funzione: Il campo cod_cond accoppiato con cond_inquil lega in maniera univoca ciascuna riga di addebito o incasso (incassi, rate, emes_det in generale_stabile.mdb) all'anagrafica del condomino o dell'inquilino per quella specifica gestione.

3. Gestione Percentuali e Movimentazioni Temporali

  • Le quote e percentuali di possesso (perc_diritto_reale, es. 50% / 50%) devono essere mantenute con precisione senza forzare la Piena Proprietà (100%) in presenza di comproprietari o contitolari.
  • Ciascun avvicendamento storico va conservato nelle movimentazioni temporali per l'anno gestione di competenza.

4. Dati Catastali Stabile (Stabili.mdb - Prefisso AC_)

  • Estrazione da Stabili.mdb:
    • AC_Foglio -> foglio (es. 404)
    • AC_partic1 / AC_partic2 -> particella (es. 98, 96, 49)
    • AC_urb_cat -> sezione (es. H501)
    • Catasto_comune -> codice_comune (es. Roma, H501)
    • Catasto_PR -> provincia (es. RM)
  • Gestione Sezioni Catastali Multiple / Palazzine:
    • Negli stabili articolati o supercondomini (es. Milizie 3 / 0021 con Palazzina D in altra sezione/particella), la configurazione avanzata dello stabile conserva l'array altri_riferimenti_catastali.
    • Ciascun riferimento sezionale o di palazzina specifica descrizione, foglio, particella, sezione, subalterno, consentendo l'aggancio diretto alle rispettive unità immobiliari.

5. Tabelle Millesimali da Legacy (tabelle e dett_tab in singolo_anno.mdb)

  • Tabella definizioni: tabelle con campi cod_tab, des_tab, totale.
  • Tabella dettagli ed attribuzione: dett_tab con campi cod_tab, id_cond, cond_inquil, mm.
  • Regola di collegamento:
    • tabelle.cod_tab si lega a dett_tab.cod_tab.
    • dett_tab.id_cond si lega tassativamente a condomin.id_cond dell'unità immobiliare per quella specifica gestione.
    • dett_tab.cond_inquil ('C' Condomino, 'I' Inquilino) attribuisce i millesimi (mm) al soggetto titolare.

6. Principio di Deterministicità Assoluta (Regola Commercialista)

  • Divieto di Fallback o Date Fittizie: È tassativamente vietato inventare date fittizie (es. 01/01/2000 o 01/01/2026 ripetute) o stimare ruoli non presenti negli archivi MDB.
  • Trattamento dati mancanti: Se una relazione o una data di decorrenza non è presente negli archivi consolidati, il sistema deve riportare unicamente le gestioni storiche certe (es. Gestioni 0004, 0005, 0909, 0912, 0913, 0914) oppure restituire BLOCCO_DATI. I dati devono essere certificabili e certi al 100%.

7. Struttura Cartelle Canonica dello Stabile, Codice Univoco e Portabilità

  • Codice Univoco Stabile (Non Legacy): Le cartelle fisiche di archivio documenti e backup SQLite sono identificate tassativamente tramite il codice_univoco generato dal sistema (es. HWAGIBXK o 0000000C), mai tramite il codice numerico del legacy (es. 0001 o 0021).
  • Motivazione Architetturale: L'uso del codice_univoco evita conflitti sulla stessa macchina nel caso in cui due amministratori differenti abbiano entrambi uno stabile con il medesimo identificativo legacy (es. 0001), e garantisce la portabilità e l'interconnessione multi-tenant di fornitori, proprietari ed inquilini durante i passaggi di gestione.
  • Percorsi Tipo:
    • Cartella Stabile: storage/app/private/amministratori/{codice_amministratore}/stabili/{codice_univoco}
    • Documenti Stabile: storage/app/private/amministratori/{codice_amministratore}/stabili/{codice_univoco}/documenti
    • Backup & SQLite: storage/app/private/amministratori/{codice_amministratore}/stabili/{codice_univoco}/database/backups

8. Architettura Database PostgreSQL e Visualizzatore Web (Stile PhpMyAdmin)

  • Database Engine: PostgreSQL per persistenza strutturale multi-tenant e gestione passaggio gestioni tra amministratori.
  • Visualizzatore Web PostgreSQL (Adminer):
    • Strumento di consultazione ed editing DB PostgreSQL accessibile via web all'URL http://192.168.0.205:8000/adminer.php.
    • Consente la consultazione immediata di tabelle, schemi, indici e record con interfaccia equivalente a PhpMyAdmin.
  • Script di Inizializzazione Server DB: scripts/ops/setup_postgresql.sh.