5.5 KiB
Direttiva Operativa: Sincronizzazione Contabilità Stabili da Legacy MDB
Scopo
Questa direttiva definisce il processo standardizzato, riusabile ed autonomo per l'importazione e la sincronizzazione della contabilità condominiale dagli archivi storici Microsoft Access MDB (singolo_anno.mdb, generale_stabile.mdb, dbc/Fornitori.mdb) verso il database canonico PostgreSQL / MySQL di NetGescon.
La procedura è applicabile in piena autonomia dall'operatore sia tramite interfaccia grafica Filament che tramite comando da terminale Artisan CLI.
Architettura Dati e Mapping delle Tabelle
1. Fornitori Centralizzati (dbc/Fornitori.mdb)
- Sorgente MDB: Tabella
Fornitori. - Target Canonico: Tabella
fornitorieanagrafiche. - Campi Chiave:
cod_forn,Descrizione/cognome+nome,cod_fisc,p_iva,Cod_IBAN,indirizzo,cap,citta,pr,Telef_1,Cellulare,Indir_Email. - Regola di Unicità: Codice univoco fornitore normalizzato a 8 caratteri (
F+ padding oFORN_*).
2. Mappatura Esercizi Gestionali (generale_stabile.mdb)
- Sorgente MDB: Tabella
anni. - Mapping:
nome_dir(es.0003,0013,0014,0015)\leftrightarrowanno_o(es.2017,2024,2025,2026). - Target Canonico:
gestioni_contabili(anno_gestione,tipo_gestione,protocollo_prefix,data_inizio,data_fine,stato,gestione_attiva).gestioni(id_gestione,anno_gestione,tipo_gestione = 'Ord.',stabile_id).
3. Millesimi e Conguagli di Apertura (singolo_anno.mdb \rightarrow dett_tab)
- Sorgente MDB: Tabella
dett_tab. - Target: Tabella di staging
dett_tabsu connessionegescon_import. - Conguagli Apertura:
cod_tabcon prefissiCONG.O(Ordinario),CONG.R(Riscaldamento),CONG.S(Straordinario). - Legame Soggetti:
id_condassociato alla corretta unità immobiliare, con distinzionecond_inquil('C'Condomino,'I'Inquilino).
4. Rate Emesse e Conguaglio Finale CF (singolo_anno.mdb \rightarrow rate)
- Sorgente MDB: Tabella
rate. - Target Canonico:
piano_rateizzazioneerate_emesse. - Rata Conguaglio Finale (CF):
- Identificata da
n_mese = 'CF',dt_empag = '31/12/99'o descrizione contenente 'CONGUAGLIO FINALE'. - Marcata con flag
is_conguaglio_finale = 1enumero_rata_progressivo = 999. - Riporta il saldo esatto di chiusura dell'unità per l'anno di gestione.
- Identificata da
5. Incassi Effettuati (singolo_anno.mdb \rightarrow incassi)
- Sorgente MDB: Tabella
incassi. - Target Canonico: Tabella
incassi. - Conto Bancario: Risoluzione automatica del conto bancario attivo su
conti_bancariper lo stabile (codice = '{cod_stabile}-{cod_cassa}', es.0013-CCB). - Titolare Movimento: Distinzione tassativa tramite
cond_inquil('C'vs'I').
6. Operazioni Contabili, Fatture e Ritenute d'Acconto (singolo_anno.mdb \rightarrow Operazioni)
- Sorgente MDB: Tabella
Operazioni. - Target Canonico:
contabilita_registrazioni(Prima Nota):entry_date,document_number,document_type,description,status = 'confirmed'.contabilita_fatture_fornitori:fornitore_id,data_documento,imponibile,totale,netto_da_pagare,ritenuta_aliquota.registro_ritenute_acconto:fornitore_id,data_competenza,imponibile,aliquota_ritenuta(4% Condominio cod. tributo 1019, 20% Professionisti cod. tributo 1040),stato_versamento('versata'perVER_4/VER_20,'da_versare'perRDA_4/RDA_20),data_versamento.
7. Consolidamento Bilanci (bilanci)
- Target Canonico: Tabella
bilanci. - Calcolo:
totale_entrate: Somma rate emesse (rate_emesse).totale_uscite: Somma fatture fornitori consuntivate (contabilita_fatture_fornitori).saldo: Differenza algebrica Entrate - Uscite.stato:'CHIUSO'per esercizi pregressi,'DRAFT'per esercizio corrente.
Modalità di Esecuzione
1. Da Terminale (Artisan CLI)
Per sincronizzare un singolo stabile su tutti gli anni di gestione:
php artisan gescon:sync-contabilita-stabile {codice_stabile} --all-years
Esempio per Stabile 0013:
php artisan gescon:sync-contabilita-stabile 0013 --all-years
Per sincronizzare un singolo anno specifico (es. 2026):
php artisan gescon:sync-contabilita-stabile 0013 --anno=2026
Per simulare senza scritture a database (Dry Run):
php artisan gescon:sync-contabilita-stabile 0013 --dry-run
2. Da Interfaccia Web Filament (One-Click Sync)
Nelle schermate di contabilità:
- Situazione Iniziale (
/admin-filament/contabilita/situazione-iniziale) - Chiusure Gestione (
/admin-filament/contabilita/chiusure-gestione)
Fare clic sul pulsante in alto a destra:
[ 🔄 Sincronizza da Legacy ]
e confermare la modale. Il sistema elaborerà automaticamente tutti gli esercizi e aggiornerà i saldi e le quadrature.
Regole di Integrità e Conformità
- Zero Mock Data: È rigorosamente vietato generare dati fittizi. Se mancano riscontri o corrispondenze certe, la procedura registra l'anomalia o interrompe con blocco dati strutturato.
- Segregazione Ruoli: I conguagli, le rate e gli incassi mantengono costantemente separata la titolarità tra Proprietario/Condomino (
'C') e Inquilino/Conduttore ('I'). - Idempotenza: I comandi possono essere eseguiti ripetutamente senza duplicare registrazioni, rate, fatture o ritenute d'acconto (chiavi di aggiornamento basate su riferimenti legacy univoci).