netgescon-day0/docs/ai/topics/import-unita-cod-cond.md

58 lines
3.3 KiB
Markdown

# 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.