7.6 KiB
Relazioni MDB → NetGescon (mappa operativa)
1) Stabili
Fonte: dbc/Stabili.mdb → tabella Stabili
- stabili (dominio)
- chiave legacy:
stabili.codice_stabile=Stabili.cod_stabile - serve per collegare tutte le tabelle per stabile/cartella
- chiave legacy:
📁 Regola archivi per amministratore (obbligatoria)
Gli archivi legacy devono stare nella cartella dell’amministratore:
- Base:
storage/app/amministratori/<COD_AMM>/legacy - Stabili:
.../legacy/dbc/Stabili.mdb - Indice anni:
.../legacy/cartellestabili_e_anni.mdb - Per stabile:
.../legacy/<COD_STABILE>/<ANNO>/singolo_anno.mdb - Generale:
.../legacy/<COD_STABILE>/generale_stabile.mdb
Questo evita contaminazioni tra amministratori (es. tabelle “fantasma” come TABADL su stabili che non la hanno).
📁 Archivi per stabile (documenti interni)
Oltre alla separazione per amministratore, i documenti interni devono vivere anche per stabile:
storage/app/amministratori/<COD_AMM>/stabili/<CODICE_UNIVOCO_STABILE>/...
Qui vanno PDF, XML, allegati e documenti generati dall’app. In questo modo non si sovrappongono tra stabili diversi.
🔒 Legacy: lettura diretta (no copia)
Gli archivi legacy si leggono in sola lettura per portare dati in staging. Non si copiano in locale. Il percorso viene risolto in base a amministratore/stabile per evitare contaminazioni.
2) Unità / nominativi (condomin)
Fonte: singolo_anno.mdb → tabella condomin
- condomin.cod_cond = ID unità legacy
- condomin.cond_inq o
cond_inquil=C(condomino) /I(inquilino) - condomin.scala + condomin.interno → unità immobiliare
- condomin.(nome/cognome/cf/email) → soggetto
Nota rubrica ruoli: in rubrica_ruoli.meta.cod_cond possono comparire formati legacy tipo I0012 o 13-INQ. In questi casi si normalizza il codice con sola parte numerica per il match con condomin.cod_cond.
Relazioni target:
unita_immobiliari(dominio) ← condomin (scala, interno, cod_stabile)soggetti(dominio) ← condomin (dati anagrafici)proprieta(pivot) collegasoggetti↔unita_immobiliariusandocondomin.cond_inq
3) Rate emesse (emes_gen / emes_det)
Fonte: generale_stabile.mdb → tabelle emes_gen, emes_det
- emes_gen.n_emissione = chiave emissione
- emes_det.n_emissione → collega emissione
- emes_det.anno_emissione → cartella (es. 0001=2024, 0002=2025)
- emes_det.cod_cond → unità legacy (condomin.cod_cond)
- emes_det.cond_inq → soggetto (C/I)
Relazioni target:
rate_emissioni(staging) ←emes_genrate_emissioni_dettaglio(staging) ←emes_detrate_emesse(dominio) ←rate_emissioni_dettagliounita_immobiliare_idrisolto dacondomin.cod_condsoggetto_responsabile_idin base acond_inqpiano_rateizzazione_idpern_emissione
4) Incassi
Fonte: singolo_anno.mdb → tabella incassi
- incassi.cod_cond → unità legacy (condomin.cod_cond)
- incassi.cond_inq → soggetto (C/I)
- incassi.n_riferimento / n_mese / anno_rif → aggancio rate
Relazioni target:
incassi(dominio)- match con
rate_emesseper riconciliazione
5) Tabelle millesimali
Fonte: singolo_anno.mdb → tabelle, dett_tab
- tabelle.cod_tab = tabella millesimale
- dett_tab.cod_tab → tabella
- dett_tab.id_cond → unità legacy (condomin.cod_cond)
Relazioni target:
tabelle_millesimali(dominio)dettagli_millesimali(dominio) collegato aunita_immobiliari
6) Voci di spesa
Fonte: singolo_anno.mdb → voc_spe
- voc_spe.cod_tab → tabella millesimale
- voc_spe.cod_spe → voce spesa
Relazioni target:
voci_spesa(dominio) collegate atabelle_millesimali- usate per ripartizioni e prima nota
7) Operazioni / mastrino
Fonte: singolo_anno.mdb → operazioni
- operazioni.cod_spe →
voc_spe - operazioni.cod_tab →
tabelle - operazioni.cod_cond →
condomin
Relazioni target:
operazioni_contabili(dominio)- legame con
voci_spesaetabelle_millesimali
Diagramma relazioni (mermaid)
flowchart LR
Stabili[(Stabili.mdb)] -->|cod_stabile| STABILI[stabili]
Condomin[(condomin)] -->|cod_stabile| STABILI
Condomin -->|scala+interno| UNITA[unita_immobiliari]
Condomin -->|anagrafica| SOGG[soggetti]
SOGG -->|pivot| PROP[proprieta]
PROP -->|unita_id| UNITA
EmesGen[(emes_gen)] -->|n_emissione| EMISSI[rate_emissioni]
EmesDet[(emes_det)] -->|n_emissione| EMDET[rate_emissioni_dettaglio]
EmesDet -->|cod_cond| Condomin
EMDET -->|unità/soggetto| RATE[rate_emesse]
EMISSI -->|piano per emissione| PIANI[piano_rateizzazione]
PIANI --> RATE
Incassi[(incassi)] -->|cod_cond| Condomin
Incassi -->|incasso| INCASSI[incassi]
INCASSI -. riconcilia .- RATE
Tabelle[(tabelle)] -->|cod_tab| TM[tabelle_millesimali]
DettTab[(dett_tab)] -->|cod_tab| TM
DettTab -->|id_cond| Condomin
TM --> DETT[dettagli_millesimali]
DETT --> UNITA
VocSpe[(voc_spe)] -->|cod_tab| TM
VocSpe --> VOCI[voci_spesa]
Operazioni[(operazioni)] -->|cod_spe| VOCI
Operazioni -->|cod_tab| TM
Operazioni --> OPER[operazioni_contabili]
Verifica import (checklist)
- Stabili importati da
Stabili.mdb. - condomin importato (staging), poi unità + soggetti + proprietà in dominio.
- emes_gen / emes_det importati in staging →
rate_emissioni*. - rate_emesse (dominio) generate da
rate_emissioni_dettagliocon legame a unità/soggetto. - tabelle / dett_tab →
tabelle_millesimali+ dettagli. - voc_spe →
voci_spesacon link a tabella millesimale. - operazioni collegate a tabella + voce.
Conformità import per stabile (rate/incassi)
Obiettivo: per ogni stabile/cartella assicurare coerenza tra staging e dominio.
Rate emesse
rate_emissioni(staging) deve avere le emissioni peranno_emissioneatteso (es. 0001, 0002).rate_emissioni_dettagliodeve avere righe percod_conden_emissione.rate_emesse(dominio) deve avere una riga per ogni dettaglio (o più se duplicati legittimi), con:unita_immobiliare_idrisolto dacondomin.cod_cond.soggetto_responsabile_idcoerente concond_inq(C/I).noteconn_emissioneecod_cond_srcper tracciabilità.
Incassi
incassi(dominio) deve averecod_cond_gesconecond_inquilvalorizzati.- La riconciliazione con
rate_emessedeve usare:cod_cond+n_rata_riferimento(on_mese)- importo e data (tolleranza data/periodo).
Controlli automatici suggeriti
- Unità duplicate o mancanti: verificare
condomin.cod_condmappati suunita_immobiliari. - Inquilini multipli: una sola relazione
locazioneattiva per unità, altrimenti dedup. - Rate orfane:
rate_emessesenzaunita_immobiliare_idosoggetto_responsabile_id. - Emissioni incoerenti:
rate_emissioniconn_emissionenon presenti inrate_emissioni_dettaglio.
Bonifica relazioni rubrica (inquilini/proprietari)
Comando utile:
php artisan gescon:bonifica-ruoli-legacy --stabile-id=<ID> [--apply]
Note operative:
- Se in
rubrica_ruoli.meta.cod_condcompaiono prefissiIo suffissi-INQ, sono inquilini. - Le relazioni con ruolo incoerente vengono disattivate in bonifica.
- Dopo bonifica, una sola relazione
inquilinoattiva per unità.
Esempio controllo (stabile 0019)
rate_emessecollegate: 535- rate con
unita_immobiliare_idmancanti: 0 - rate con
soggetto_responsabile_idmancanti: 0 - inquilini duplicati in rubrica: risolti tramite bonifica
Se vuoi, posso aggiungere una tabella “checklist” per ogni stabile con esito ✅/⚠️.