netgescon-day0/skill-netgescon/control-tower/CURRENT-205.md

63 lines
4.4 KiB
Markdown

# CURRENT-205
TASK_ID: task-relational-contabilita-db-sync
MACHINE: .205
STATO: completato
## Obiettivo Completato
1. **Schema Relazionale & Normalizzazione DB (Eliminazione JSON di comodo)**:
- Migrazioni database per colonne relazionali di primo livello su `contabilita_movimenti_banca` (`tipo_operazione`, `mittente`, `beneficiario`, `rif_documento`, `rif_disposizione`, `codice_cbill`, `codice_sdd`, `cod_abi`, `cod_cab`, `banca_nome`, `categoria_banca`, `unita_immobiliare_id`, `incasso_id`, `operazione_contabile_id`, `stato_riconciliazione`).
- Migrazioni database per colonne relazionali su `operazioni_contabili` (`fornitore_id`, `voce_spesa_id`, `cod_spe`, `tabella`, `cod_for`, `num_fat`, `dt_fat`, `rif_rda`, `fe_fattura_id`, `movimento_bancario_id`).
- Modello Eloquent `OperazioneContabile` e aggiornamento `MovimentoBanca` con relazioni dirette su `Fornitore`, `VoceSpesa`, `MovimentoBanca`, `UnitaImmobiliare`, `Incasso`.
2. **Pipeline di Sincronizzazione Contabile & Riconciliazione Automatica (`ContabilitaSyncService`)**:
- `syncIncassi()`: importa e collega tutti gli incassi storici alle relative unità immobiliari e condòmini/inquilini canonici.
- `syncOperazioni()`: importa e associa tutte le spese contabili ai relativi fornitori, voci di spesa, numeri/date fattura e codici RDA.
- `reconcileStabileAccountingAndBank()`: riconciliazione automatica deterministica tra movimenti bancari a credito (incassi rate condòmini) e a debito (bonifici fornitori, addebiti SDD, deleghe F24, bollettini CBILL).
- Eseguita sincronizzazione completa per lo stabile pilota 0013: 1.664 operazioni contabili, 2.698 incassi e oltre 260 riconciliazioni automatiche effettuate.
3. **Blade Gescon Ordinarie DB-Driven (`http://192.168.0.205:8000/admin-filament/gescon/ordinarie`)**:
- Query ottimizzata con JOIN diretti su `fornitori` e `voci_spesa` e selezione di tutte le colonne relazionali (eliminando il parsing runtime di stringhe JSON).
- Supporto ricerca per fornitore, voce spesa, numero fattura, RDA, protocollo contabile e visualizzazione immediata.
4. **Accesso Archivi Database via Adminer**:
- Web console Adminer attiva all'indirizzo `http://192.168.0.205:8000/adminer.php`.
- Accesso rapido 1-click su database MySQL (`?auto=mysql`) e PostgreSQL consolidato (`?auto=pgsql`).
## Output del Giro Operativo
ESITO_205: riuscito
TASK_ID: task-relational-contabilita-db-sync
REPOSITORY: ssh://git@git.netgescon.it:2222/michele/netgescon-day0.git
BRANCH: stabilization/205-zero
COMMIT: TO_BE_COMMITTED
FILE_O_AREE_TOCCATE:
- app/Filament/Pages/Gescon/Ordinarie.php
- app/Models/OperazioneContabile.php
- app/Modules/Contabilita/Models/MovimentoBanca.php
- app/Services/Contabilita/ContabilitaSyncService.php
- app/Services/Contabilita/MovimentiBancaImporter.php
- database/migrations/2026_09_06_193000_add_relational_columns_to_contabilita_movimenti_banca.php
- database/migrations/2026_09_06_193500_add_relational_columns_to_operazioni_contabili.php
- tests/Feature/ContabilitaRelazionaleOrdinarieTest.php
- skill-netgescon/control-tower/CURRENT-205.md
TEST_ESEGUITI:
- ./vendor/bin/pest tests/Feature/ContabilitaRelazionaleOrdinarieTest.php tests/Feature/BpmBankParserAndImporterTest.php tests/Feature/UnitaGestioneTemporaleTest.php tests/Feature/CatastoHubDbDrivenTest.php tests/Feature/UnitaCondominoInquilinoRoleToggleTest.php tests/Feature/UnitaImmobiliarePageTest.php tests/Feature/AnagraficaUnicaCanonicaTest.php tests/Feature/BenedettoBonificaIdempotenteTest.php tests/Feature/ControlTowerPollCommandTest.php (28 passed, 188 assertions)
GATE_STATISTICS:
- DB_NORMALIZATION: Colonne relazionali atomiche su contabilita_movimenti_banca e operazioni_contabili.
- SYNC_AUTOMATICA: 1.664 operazioni e 2.698 incassi sincronizzati nel DB su Stabile 0013.
- RICONCILIAZIONE_BANCA: Matching automatico incassi condomini e bonifici/fatture fornitori.
- BLADE_ORDINARIE: Query DB relazionale con JOIN e filtri attivi.
- TEST_SUITE: 28 test Feature passati con successo (188 asserzioni).
- ZERO_MOCK: 100% dati reali da archivi legacy e flussi bancari.
BLOCCO_DATI: no
BLOCCO_CONTRATTO: no
RISCHI_APERTI: nessuno
## Prossimo Passo per .200 (Validazione)
- Eseguire il checkout del branch `stabilization/205-zero`.
- Eseguire i test Pest (28 passed, 188 assertions).
- Verificare la vista `http://192.168.0.205:8000/admin-filament/gescon/ordinarie` e la console Adminer su `http://192.168.0.205:8000/adminer.php`.