# πŸ”„ **PROCESSO IMPORT AUTOMATICO NETGESCON** ## πŸ“‹ **PANORAMICA** Sistema automatizzato per importare dati dal vecchio programma Gescon a NetGescon tramite API. Per import reali nel progetto Laravel usa la pipeline CLI: php artisan gescon:import-full [opzioni] – supporta dry-run, filtraggio per stabile/anno, esecuzione per step e aggiornamento viste QA. --- ## πŸ“ **STRUTTURA CARTELLE** ``` 000-IMPORT/ β”œβ”€β”€ README-IMPORT-PROCESS.md # Questo file - guida processo β”œβ”€β”€ 01-GESCON/ # Dati estratti da Gescon β”‚ β”œβ”€β”€ amministratori.json # Dati amministratori β”‚ β”œβ”€β”€ stabili.json # Dati stabili β”‚ β”œβ”€β”€ unita.json # UnitΓ  immobiliari β”‚ └── condomini.json # Anagrafica condomini β”œβ”€β”€ 02-MAPPING/ # Mapping campi β”‚ β”œβ”€β”€ campo-mapping.json # Corrispondenze campi β”‚ └── validation-rules.json # Regole validazione └── 03-SCRIPTS/ # Script automatici β”œβ”€β”€ import-runner.js # Script principale import β”œβ”€β”€ validation-checker.js # Controllo pre-import └── progress-monitor.js # Monitoraggio progresso ``` --- ## 🎯 **FASI IMPORT** ### **Fase 1: Preparazione Dati** βœ… 1. Estrazione dati dal vecchio CSV/XML 2. Conversione in formato JSON standardizzato 3. Validazione struttura dati ### **Fase 2: Mapping Automatico** πŸ”„ 1. Mapping campi vecchio β†’ nuovo sistema 2. Trasformazione valori (date, formati, etc.) 3. Validazione integritΓ  referenziale ### **Fase 3: Import Automatico** ⏳ 1. Login API NetGescon 2. Import sequenziale (Admin β†’ Stabili β†’ UnitΓ  β†’ Condomini) 3. Gestione errori e rollback 4. Report finale --- ## πŸš€ **ORDINE IMPORT** 1. Amministratori β†’ Base del sistema 2. Stabili β†’ CF/CF-amministratore, catasto, dati bancari 3. UnitΓ  immobiliari β†’ collegate agli stabili (palazzine/scale) 4. Soggetti/Diritti β†’ proprietari, inquilini, quote 5. Tabelle millesimali β†’ per-unitΓ , bilanciamento 6. Voci/Operazioni β†’ prima nota, partita doppia 7. Rate/Incassi β†’ flusso incassi 8. Straord./Addebiti/Detrazioni β†’ componenti extra --- ## πŸ“Š **MONITORAGGIO** - Progress tracking in tempo reale - Log dettagliati di ogni operazione - Statistiche import (successi/errori) - PossibilitΓ  di rollback completo - Aggiornamento viste QA automatico (disattivabile con --no-views) ### Resume e Log di esecuzione - Ogni esecuzione scrive log persistenti in `/home/michele/netgescon/docs/logs/gescon__*`. - File: `state.json` (stato corrente), `progress.jsonl` (eventi con timestamp), `stdout.log` (output raw). - Per riprendere, leggere `state.json` e rilanciare il comando artisan corrispondente (vedi sezione Pipeline). Vedi anche `docs/logs/README-IMPORT-LOGS.md`. ## πŸ”§ Pipeline artisan (riepilogo) - php artisan gescon:import-full --stabile=NNNN [--dry-run] [--anno=YYYY] [--solo=step] - Step disponibili: stabili, unita, soggetti, diritti, millesimi, voci, operazioni, rate, incassi, giroconti, straord, addebiti, detrazioni --- ## πŸ”§ **CONFIGURAZIONE** Vedere file specifici in ogni cartella per dettagli implementazione. ## 🧱 Lettura legacy: strategia e servizi - Strategia: MDB-first con fallback su staging/dataset. Per ogni stabile/anno si tenta la lettura da `singolo_anno.mdb` e, se non disponibile, si ricade su staging. - Servizio dedicato: `App/Services/GesconImport/LegacyArchiveService` centralizza discovery e lettura (anni, gestioni, unitΓ , casse), evitando duplicazioni nel controller. - Risoluzione cartellaβ†’anno: il servizio usa la tabella `anni` in `generale_stabile.mdb` per mappare `nome_dir` (es. "0001") all'anno civile e ai periodi (ordinarie/riscaldamento). Questo consente di passare in input sia l'anno che la cartella. ## πŸ”Ž Smoke test UnitΓ  (diagnostica rapida) Per validare rapidamente la lettura delle unitΓ  per uno stabile e una cartella/anno Γ¨ disponibile lo script CLI `scripts/smoke_unita.php` nel progetto Laravel. Lo script: - risolve automaticamente cartella/anno usando `LegacyArchiveService` - stampa periodi e gestioni risolte - legge intestazioni e prime righe della tabella `condomin` (MDB-first, fallback su staging) Nota: in presenza di discrepanze tra anno cartella e periodo riscaldamento (es. riscaldamento che sconfina sull'anno successivo), fare riferimento alla risoluzione basata su tabella `anni`.