# Mapping operativo (tabelle → campi NetGescon) ## Obiettivo Specificare mappature operative per l’import legacy → staging → dominio NetGescon, includendo gestione per anno e validazioni. ## 1) Gestione per anno (regola base) Nel legacy ogni anno replica tutte le tabelle. La regola operativa è: - Importare **tutte le annualità** per ogni stabile. - In staging, salvare sempre: - `legacy_year` - `legacy_period` - `legacy_file` - In dominio, usare `legacy_year` per correlare tabelle/operazioni/voci e gestioni. ### Tipi gestione - `O` = Ordinaria - `R` = Riscaldamento - `S` = Straordinaria ## 2) STABILI (Stabili.mdb → stabili + dati bancari) ### Legacy → Dominio - `cod_stabile` → `stabili.codice_stabile` - `denominazione` → `stabili.denominazione` - `indirizzo` → `stabili.indirizzo` - `cap` → `stabili.cap` - `citta` → `stabili.citta` - `pr` → `stabili.provincia` - `codice_fisc` → `stabili.codice_fiscale` - `cf_amministratore` → `stabili.cf_amministratore` - `nome_directory` → `stabili.codice_stabile` (fallback se assente) ### Scadenze rate - `ORD_RATA_1..12` → `stabili.rate_ordinarie_mesi` (array mesi attivi) - `RIS_RATA_1..12` → `stabili.rate_riscaldamento_mesi` (array mesi attivi) ### Bancari / Postali (stabili + dati_bancari) - `IBAN_Banca` → `stabili.iban_principale` - `Banca` → `stabili.banca_principale` - `IBAN_Posta` → `stabili.iban_secondario` Nota: arricchimento automatico gestito da `StabileEnrichmentService`. ### Catasto stabile (stabili) - `AC_Foglio` → `stabili.foglio` - `AC_partic1`/`AC_partic2` → `stabili.particella` - `AC_sub` → `stabili.subalterno` - `Catasto_comune` → `stabili.codice_comune_catasto` - `Catasto_PR` → `stabili.provincia_catastale` ## 3) UNITA + CONDOMINI + INQUILINI (condomin → unita_immobiliari + rubrica) ### Unità (condomin → unita_immobiliari) - `scala` → `unita_immobiliari.scala` - `int` → `unita_immobiliari.interno` - `tipo_pr` → `unita_immobiliari.tipologia` (normalizzazione) - `Catasto_*` → campi catastali unità - `Pertinenze_*` → `unita_immobiliari.pertinenze` (tipo e mapping) ### Condomino (condomin → rubrica/soggetti) - `nom_cond` → `soggetti.cognome` (se unico valore) oppure `ragione_sociale` - `Cond_cod_fisc` → `soggetti.codice_fiscale` - `E_mail_condomino` → `soggetti.email` - `tel1`, `tel2`, `Cell_cond` → `soggetti.telefono` - `ind`, `cap`, `citta`, `pr` → `soggetti.indirizzo`, `cap`, `citta`, `provincia` ### Inquilino (condomin → rubrica/soggetti) - `inquil_nome` → `soggetti.cognome` (se unico valore) oppure `ragione_sociale` - `Inquil_cod_fisc` → `soggetti.codice_fiscale` - `E_mail_inquilino` → `soggetti.email` - `inquil_tel1`, `inquil_tel2`, `Cell_inquilino` → `soggetti.telefono` - `inquil_indir`, `inquil_cap`, `inquil_citta`, `inquil_pr` → `soggetti.indirizzo`, `cap`, `citta`, `provincia` - `inquil_dal`, `inquil_al` → `ruoli.data_inizio`, `ruoli.data_fine` ## 4) COMPROPRIETARI (Comproprietari → diritti/ruoli) - `id_cond` → unità/condominio di riferimento - `Perc_Diritto_reale` → quota comproprietà - Dati anagrafici → rubrica/soggetti ## 5) TABELLE MILLESIMALI (tabelle → tabelle_millesimali) - `cod_tab` → `tabelle_millesimali.codice` - `descr` → `tabelle_millesimali.nome_tabella` - `tipo` → `tabelle_millesimali.tipo_gestione` (O/R/S) - `calcolo` → `tabelle_millesimali.metodo_calcolo` (M/A/X/P) - `Tot_mm` → `tabelle_millesimali.totale_millesimi` - `tot_prev_euro` → `tabelle_millesimali.totale_prev` - `tot_cons_euro` → `tabelle_millesimali.totale_cons` - `nord` → `tabelle_millesimali.ordinamento` ## 6) DETTAGLI TABELLE (dett_tab → dettaglio_importi_tabella) - `cod_tab` → tabella millesimale - `id_cond` → unità - `mm` → millesimi unità - `prev_euro` → preventivo unità - `cons_euro` → consuntivo unità - `n_stra` → gestione straordinaria ## 7) VOCI SPESE (voc_spe → voci_spesa) - `cod` → `voci_spesa.codice` - `descriz` → `voci_spesa.descrizione` - `tabella` → `voci_spesa.codice_tabella` - `Perc_proprietario` → `voci_spesa.perc_proprietario` - `Perc_Inquilino` → `voci_spesa.perc_inquilino` - `preventivo_euro` → `voci_spesa.importo_default` - `consuntivo_euro` → `voci_spesa.importo_consuntivo` - `v_ors` → `voci_spesa.tipo_gestione` (O/R/S) ## 7.1) DETT_PERS (dett_pers → riparti personalizzati) - `n_spe` → collegamento a `operazioni.n_spe` - `id_cond` → condomino/unità - `cond_inq` → `C` condomino / `I` inquilino - `importo_euro` → importo riparto ## 7.2) FRAZIONAMENTI (fraz_gen / fraz_dett) - `fraz_gen.Progressivo` → riferimento frazionamento - `fraz_gen.cod_voce` → codice voce principale (es. Z01/Z02) - `fraz_dett.cod_voce` → voci di ripartizione (voc_spe) - `fraz_dett.Importo_parte` → importo per voce ## 8) STRAORDINARIE (straordinarie → gestioni straordinarie) - `codice` → `gestioni_contabili.numero_straordinaria` - `descriz_prev_cons` → `gestioni_contabili.denominazione` - `num_rate` → `gestioni_contabili.numero_rate` - `inizio_mese`, `inizio_anno` → `gestioni_contabili.data_inizio` ### Preventivi straordinari (prevent_straordinari → dettaglio spese) - `n_stra` → collegamento gestione straordinaria - `cod_spe` → voce spesa (voc_spe.cod) - `importo_euro` → preventivo voce - `voc_spe.tabella` → tabella millesimale di riparto (tabelle_millesimali) ## 9) RATE EMESSE / INCASSI ### Emissioni (emes_gen / emes_det) - `n_emissione` → emissione - `anno_emissione` → anno gestione - `n_rata_x` → dettagli rata ### Incassi (incassi) - `cod_cond` → soggetto/condominio - `importo_pagato_euro` → incasso importo - `dt_empag` → data pagamento - `o_r_s` → tipo gestione ## 10) FORNITORI (Fornitori.mdb → fornitori) - `cod_forn` → codice fornitore - `cognome`, `nome` → anagrafica - `cod_fisc`, `p_iva` → CF / P.IVA - `Indir_Email`, `PEC_Fornitore` → contatti ## 11) OPERAZIONI (regole segno) - Se disponibili i campi di dettaglio: `importo_spese`, `importo_entrate`, `importo_debiti`, `importo_crediti`: - Totale = (spese + debiti) - (entrate + crediti) - Se i campi sopra sono 0/assenti: - Usa `importo_euro` (o `importo`) - `natura2` ∈ {E, ENTRATA, ENTRATE, CREDITO} ⇒ importo negativo - Codice `RB1` (Rimborsi assicurazione) ⇒ importo negativo --- # Esempi di validazione ## A) Validazione per anno - Per ogni `legacy_year`, esistono: - `tabelle` + `voc_spe` + `dett_tab` - `condomin` - `operazioni` + `incassi` (se presenti in legacy) ## B) Validazione tabelle → voci - Ogni `voc_spe.tabella` deve esistere in `tabelle.cod_tab`. ## C) Validazione totali tabelle - `Tot_mm` coerente con somma `dett_tab.mm` per tabella - `tot_prev_euro` coerente con somma `dett_tab.prev_euro` - `tot_cons_euro` coerente con somma `dett_tab.cons_euro` (se gestione chiusa) ## D) Validazione quote soggetti - Percentuali `Perc_proprietario + Perc_Inquilino` = 100 ## E) Validazione unità/soggetti - Ogni unità ha `codice_unita` unico - Ogni soggetto deduplicato per CF/email