netgescon-day0/skill-netgescon/directives/sincronizzazione-contabilita-stabili.md

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 fornitori e anagrafiche.
  • 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 o FORN_*).

2. Mappatura Esercizi Gestionali (generale_stabile.mdb)

  • Sorgente MDB: Tabella anni.
  • Mapping: nome_dir (es. 0003, 0013, 0014, 0015) \leftrightarrow anno_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_tab su connessione gescon_import.
  • Conguagli Apertura: cod_tab con prefissi CONG.O (Ordinario), CONG.R (Riscaldamento), CONG.S (Straordinario).
  • Legame Soggetti: id_cond associato alla corretta unità immobiliare, con distinzione cond_inquil ('C' Condomino, 'I' Inquilino).

4. Rate Emesse e Conguaglio Finale CF (singolo_anno.mdb \rightarrow rate)

  • Sorgente MDB: Tabella rate.
  • Target Canonico: piano_rateizzazione e rate_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 = 1 e numero_rata_progressivo = 999.
    • Riporta il saldo esatto di chiusura dell'unità per l'anno di gestione.

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_bancari per 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' per VER_4/VER_20, 'da_versare' per RDA_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à

  1. 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.
  2. Segregazione Ruoli: I conguagli, le rate e gli incassi mantengono costantemente separata la titolarità tra Proprietario/Condomino ('C') e Inquilino/Conduttore ('I').
  3. Idempotenza: I comandi possono essere eseguiti ripetutamente senza duplicare registrazioni, rate, fatture o ritenute d'acconto (chiavi di aggiornamento basate su riferimenti legacy univoci).