# Topic: Import Unita Cod Cond ## Obiettivo - Rendere l'import legacy di unita, nominativi, millesimi e voci coerente con la realta archivistica Gescon, evitando fallback vuoti o identificazioni deboli. ## Regole vincolanti - L'ultimo anno disponibile e la fotografia autorevole dello stato corrente. - La chiave certa dell'unita e `condomin.cod_cond`. - `scala`, `interno`, `catasto_sub` e il codice mnemonico servono per riconciliazione e visualizzazione, non come chiave inventata in fallback. - Il codice visibile all'operatore deve restare leggibile in forma `Palazzina/Scala/Interno`. - Gli anni precedenti servono a costruire la cronologia dei soggetti collegati all'unita, non a sostituire il nominativo corrente trovato nell'ultimo anno. - Non creare righe di completamento artificiale a zero per millesimi o nominativi se la sorgente non le fornisce. ## Modello archivistico chiarito dall'utente - `condomin.cod_cond` identifica l'unita legacy in modo stabile. - `comproprietari` integra la storia proprietari e quote. - `emes_gen` definisce il contesto di emissione e l'anno gestionale. - `emes_det.cod_cond` collega la rata emessa all'unita. - `incassi.cod_cond` collega l'incasso all'unita. - `cond_inq` distingue il ruolo storico: condomino/proprietario (`C`) o inquilino (`I`). ## Stato attuale del codice - `app/Console/Commands/ImportGesconFullPipeline.php` - fixato il riempimento automatico di dettagli millesimali a zero: ora e opt-in con `--fill-missing-millesimi` - fixato il fallback di aggancio tabella per `stepVoci()` - fixato il preload staging per `legacy_year` - `app/Console/Commands/NetgesconQaMillesimiSpeseCommand.php` - aggiunto per QA su allineamento unita/nominativi/millesimi/voci ## Evidenze validate su 0021 - Lo staging dell'ultimo anno utile non veniva caricato correttamente finche il preflight controllava solo `cod_stabile`. - Dopo il fix sul preload, `0021/0004` viene caricato e reso disponibile per confronto/import. - Le unita ancora senza nominativo corrente non vanno risolte con fallback automatici: almeno i casi `A/0`, `A/42`, `A/43`, `A/215`, `A/216` non hanno corrispondenza trovata nel controllo staging eseguito. ## Prossimi step operativi 1. Rifattorizzare la costruzione snapshot corrente unita/nominativi a partire dall'ultimo anno disponibile. 2. Usare `cod_cond` come chiave di merge tra staging e dominio. 3. Inserire gli anni precedenti solo come variazioni storiche in `unita_immobiliare_nominativi`. 4. Verificare che rate, incassi e ruoli `C`/`I` restino riconciliabili per anno e unita. 5. Gestire le unita dominio senza sorgente corrente con una decisione esplicita di review/disattivazione, non con dati inventati. ## Comandi utili gia usati - `php artisan netgescon:qa-millesimi-spese --stabile=0021 --anno=0003` - `php artisan netgescon:qa-unita-nominativi --stabile_id=25` - `php artisan gescon:import-align --stabile=0021 --path=/mnt/gescon-archives/gescon --years=2025,2026 --water-years=2025,2026 --open-years=2025,2026` - `php artisan gescon:import-full --stabile=0021 --solo=unita --anno=0004 --dry-run` ## Vincolo di continuita - Le vecchie note in `docs/ai` o nei chat export che propongono fallback tipo unita inventate, `interno=0` come riempitivo o codici sintetici non fondati sulla sorgente vanno considerate superate se confliggono con questo topic.