170 lines
5.7 KiB
Markdown
170 lines
5.7 KiB
Markdown
# MAPPATURA RELAZIONI GESCON - STABILE 148
|
|
|
|
## ANALISI STRUTTURA DATABASE GESCON
|
|
|
|
### TABELLE PRINCIPALI E RELAZIONI CRITICHE
|
|
|
|
#### 1. TABELLA CONDOMIN (Core Anagrafica)
|
|
- **ID Primario**: `id_cond` (autoincrement)
|
|
- **Codice Condomino**: `cod_cond` (2 = B.1, 3 = B.2, etc.)
|
|
- **Unità Immobiliare**: `scala` + `int` + `tipo_pr` (es: B.1.A, B.2.A)
|
|
- **Relazione E_lostesso_Di**: Campo `E_lostesso_Di` (colonna 119)
|
|
- Indica se condomino è uguale a altro (proprietario = inquilino)
|
|
- Valori: `0` = no relation, `N` = stesso soggetto
|
|
|
|
**CRITICAL RELATIONS:**
|
|
- `condomin.E_lostesso_Di` → relazione proprietario/inquilino
|
|
- `condomin.id_cond` → `dett_tab.id_cond` (millesimi)
|
|
- `condomin.id_cond` → `rate.id_condomino` (rate)
|
|
- `condomin.id_cond` → `dett_pers.id_cond` (dettagli operazioni)
|
|
|
|
#### 2. TABELLA OPERAZIONI (Movimenti Contabili)
|
|
- **ID Primario**: `id_operaz`
|
|
- **Collegamento Spese**: `n_spe` → `dett_pers.n_spe`
|
|
- **Collegamento Straordinarie**: `n_stra` → `straordinarie.id_stra`
|
|
- **Vocabolario Spese**: `cod_spe` → `voc_spe.cod`
|
|
|
|
**STRUCTURE:**
|
|
```
|
|
operazioni.n_spe → dett_pers.n_spe → dett_pers.id_cond → condomin.id_cond
|
|
operazioni.n_stra → straordinarie.id_stra (lavori straordinari)
|
|
operazioni.cod_spe → voc_spe.cod (tipologia spesa)
|
|
```
|
|
|
|
#### 3. TABELLA DETT_PERS (Dettaglio Ripartizione Spese)
|
|
- **Chiavi Multiple**: `n_spe` + `id_cond` + `cond_inq`
|
|
- **Campo cond_inq**: "C" = condomino, "I" = inquilino
|
|
- **Importi**: `importo` (lire) + `importo_euro` (euro)
|
|
|
|
**CRITICAL:**
|
|
```sql
|
|
dett_pers.n_spe = operazioni.n_spe
|
|
dett_pers.id_cond = condomin.id_cond
|
|
dett_pers.cond_inq = {'C': 'proprietario', 'I': 'inquilino'}
|
|
```
|
|
|
|
#### 4. TABELLA RATE (Rate Condominiali)
|
|
- **ID Primario**: `id_rate`
|
|
- **Collegamento Condomino**: `id_condomino` → `condomin.id_cond`
|
|
- **Tipologia**: `propr_inquil` = "C"/"I" (proprietario/inquilino)
|
|
- **Tipo Rata**: `o_r_s` = "R" (ordinaria), "S" (straordinaria)
|
|
- **Collegamento Straordinarie**: `n_stra` → `straordinarie.id_stra`
|
|
|
|
#### 5. TABELLA STRAORDINARIE (Lavori Straordinari)
|
|
- **ID Primario**: `id_stra`
|
|
- **Codice**: `codice` (numerico progressivo)
|
|
- **Descrizioni Multiple**: `descriz_prev_cons`, `descriz_ricev`, `descriz_ccp`
|
|
|
|
#### 6. SISTEMA MILLESIMI
|
|
|
|
**TABELLA TABELLE** (Tipologie Millesimi):
|
|
- **ID**: `id_tabella`
|
|
- **Codice**: `cod_tab` (TAB.A, ACQUA, RISC, etc.)
|
|
- **Descrizione**: `descr`
|
|
- **Tipo**: `tipo` ("O" = ordinaria, altro)
|
|
|
|
**TABELLA DETT_TAB** (Millesimi per Condomino):
|
|
- **Chiavi**: `cod_tab` + `id_cond` + `cond_inq`
|
|
- **Millesimi**: primo campo numerico (9.6520, 8.7510, etc.)
|
|
|
|
**RELAZIONI:**
|
|
```sql
|
|
dett_tab.cod_tab = tabelle.cod_tab
|
|
dett_tab.id_cond = condomin.id_cond
|
|
dett_tab.cond_inq = 'C'/'I' (proprietario/inquilino)
|
|
```
|
|
|
|
#### 7. VOCABOLARIO SPESE (voc_spe)
|
|
- **ID**: `id_vocspe`
|
|
- **Codice**: `cod` (802, 804, 816, etc.)
|
|
- **Descrizione**: `descriz`
|
|
- **Tabella Millesimi**: `tabella` → `tabelle.cod_tab`
|
|
|
|
### DATI ESEMPIO STABILE 148
|
|
|
|
**CONDOMINI IDENTIFICATI:**
|
|
- Scala A: 28 unità (1-28)
|
|
- Scala B: 28 unità (1-28) + cantine/box
|
|
- Scala C: 28 unità (1-28) + cantine/box + attività commerciali
|
|
- Scala D: 14 unità + cantine
|
|
|
|
**TOTALE UNITÀ**: ~214 record in tabella condomin
|
|
|
|
**TIPOLOGIE MILLESIMI PRESENTI:**
|
|
- TAB.A (millesimi generali): 9.6520, 8.7510, 11.5940...
|
|
- ACQUA (consumo acqua)
|
|
- RISC (riscaldamento)
|
|
- Altri codici specializzati
|
|
|
|
**OPERAZIONI ESEMPIO:**
|
|
- N_SPE 28, 31: Consumo elettricità parti comuni
|
|
- COD_SPE 816: Elettricità
|
|
- Importi in lire convertiti in euro
|
|
|
|
### STRATEGIA DI IMPORT
|
|
|
|
#### FASE 1: Tabelle Anagrafiche Base
|
|
1. `administrators` (amministratore 00000000)
|
|
2. `stabili` (stabile GES00148)
|
|
3. `database_stabili` (netgescon_stabile_GES00148)
|
|
|
|
#### FASE 2: Tabelle Master
|
|
1. `tabelle_millesimali` ← `tabelle`
|
|
2. `vocabolario_spese` ← `voc_spe`
|
|
3. `straordinarie` ← `straordinarie`
|
|
|
|
#### FASE 3: Anagrafica Condomini
|
|
1. `condomini` ← `condomin`
|
|
2. Gestione relazione `E_lostesso_Di`
|
|
3. Separazione proprietari/inquilini
|
|
|
|
#### FASE 4: Dettagli e Relazioni
|
|
1. `millesimi` ← `dett_tab`
|
|
2. `operazioni_contabili` ← `operazioni`
|
|
3. `dettaglio_ripartizioni` ← `dett_pers`
|
|
4. `rate_condominiali` ← `rate`
|
|
|
|
### VALIDAZIONI CRITICHE
|
|
|
|
#### Integrità Referenziale:
|
|
- Ogni `dett_pers.id_cond` deve esistere in `condomin.id_cond`
|
|
- Ogni `operazioni.n_spe` deve avere corrispondenti in `dett_pers.n_spe`
|
|
- Ogni `rate.id_condomino` deve esistere in `condomin.id_cond`
|
|
- Ogni `dett_tab.id_cond` deve esistere in `condomin.id_cond`
|
|
|
|
#### Controlli Quantitativi:
|
|
- Totale millesimi per tabella = 1000.0000
|
|
- Somma importi in `dett_pers` per N_SPE = importo in `operazioni`
|
|
- Coerenza date tra `operazioni` e `rate`
|
|
|
|
#### Relazioni E_lostesso_Di:
|
|
- Se `condomin.E_lostesso_Di != 0`, verificare esistenza target
|
|
- Mantenere coerenza proprietario/inquilino
|
|
- Evitare cicli nelle relazioni
|
|
|
|
### FILE DI OUTPUT CONSIGLIATI
|
|
|
|
1. **condomini_gescon_148.csv** - Anagrafica completa
|
|
2. **millesimi_gescon_148.csv** - Tutti i millesimi
|
|
3. **operazioni_gescon_148.csv** - Movimenti contabili
|
|
4. **relazioni_gescon_148.csv** - Mappatura E_lostesso_Di
|
|
5. **validazione_gescon_148.log** - Report controlli integrità
|
|
|
|
### NOTE TECNICHE
|
|
|
|
- **Conversione Valute**: Lire → Euro (fattore 1936.27)
|
|
- **Date Format**: "MM/DD/YY HH:MM:SS" → ISO format
|
|
- **Encoding**: Gestire caratteri italiani (à, è, ì, ò, ù)
|
|
- **Null Values**: Gestire campi vuoti e valori di default
|
|
|
|
**NEXT STEPS:**
|
|
1. Creare script di estrazione con mdb-export
|
|
2. Implementare validazioni relazionali
|
|
3. Testare import su database stabile dedicato
|
|
4. Verificare integrità post-import
|
|
|
|
---
|
|
**Created**: $(date +"%Y-%m-%d %H:%M:%S")
|
|
**Source DB**: `/home/michele/netgescon/docs/02-architettura-laravel/Gescon/0021/0001/singolo_anno.mdb`
|
|
**Target DB**: `netgescon_stabile_GES00148`
|