netgescon-day0/docs/000-FILAMENT/06-MAPPING-OPERATIVO.md

180 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Mapping operativo (tabelle → campi NetGescon)
## Obiettivo
Specificare mappature operative per limport 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