180 lines
6.9 KiB
Markdown
Executable File
180 lines
6.9 KiB
Markdown
Executable File
# 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
|