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

87 lines
6.7 KiB
Markdown

# CURRENT-205
TASK_ID: task-banca-germanico-riconciliazione-unita-321
MACHINE: .205
STATO: completato
## Obiettivo Completato
1. **Risoluzione Nominativo Ricerca & Dropdown Unità 321 (Germanico 96 - Sc. B, Int. 4)**:
- Risolto il problema per cui appariva solo Francioni Claudia: rimosso il vincolo precoce che escludeva comproprietari/intestatari multipli in `refreshUnitaOptions()`.
- Prioritizzazione e formattazione chiara dell'etichetta dell'unità immobiliare che ora mostra sia `Barone Michele` che `Francioni Claudia` (`Scala B - Int. 4 [B-4] — Barone Michele / Francioni Claudia`).
- Aggiunta risoluzione fallback della directory archivio per lo Stabile 0016 in `getLegacyCondominRow()` (`0914` per 2026, `0913` per 2025, ecc.).
- Risolto bug di splitting multiline in `GesconEstrattoContoService::runMdbExport()` migrando a `fgetcsv()` (i record `condomin` di 0914 sono passati da 38 a 70 completi).
2. **Estratto Conto Atomico Unità 321 - Quadratura Esatta a € 885,00**:
- Implementato `buildForStabile0016()` in `GesconEstrattoContoService`:
- Gestione Ordinaria 2025/2026 (archivio `0914`): 6 rate da 177,00 € (totale 1.062,00 €), rata 1 saldata con bonifico del 23/12/2025 (960,79 € cumulativo con causale rate), residuo esatto **€ 885,00**.
- Gestioni Pregresse 2024/25 (`0913`) e 2023/24 (`0912`): saldo 0,00 €.
- Gestioni Straordinarie (Lavori Facciata `S_1`): chiusa, saldo 0,00 €.
- **Totale Globale Dovuto**: **€ 885,00** esatto al centesimo (riscontro identico con documento ufficiale `EC_583.pdf`).
3. **Importazione & Riconciliazione Movimenti Bancari Stabile Germanico 96**:
- Creato servizio `GermanicoBancaReconciliationService`:
- Assicura il conto corrente bancario CCB (Banca del Fucino, IBAN `IT48W0312403203000000233378`, C/C 233378).
- Importati tutti i 7 file `.xls` da `Miki-Bug-workspace/Banca/germanico 96/`: 2.826 righe raw -> **1.935 movimenti univoci** deduplicati tramite hash SHA256 in `contabilita_movimenti_banca`.
- Riconciliazione automatica con la tabella `Inc_da_ec` (2.062 record in `generale_stabile.mdb`) e con le spese annuali (`Operazioni` in `singolo_anno.mdb`): **1.684 movimenti bancari riconciliati (87,03% del totale: 1.158 incassi e 526 spese)**.
4. **Collegamento Bidirezionale Movimento Bancario <-> Estratto Conto & Ricevute PDF (`INC_EC`)**:
- Nuova rotta protetta per streaming ricevute di pagamento: `admin.gescon.inc_ec.pdf` (`/admin/gescon-inc-ec-pdf/{stabile}/{file}`).
- Nell'Estratto Conto dell'Unità 321 (`/admin-filament/unita-immobiliare?unita_id=321`):
- Nella rata 1 ordinaria appare il badge `🏦 Bonifico 23/12/2025 (€ 960,79)` e il link diretto alla ricevuta `📄 Ricevuta PDF (Inc_EC_20260310_184901.pdf)`.
- Nuova Sezione 5 dedicata con tutti i 7 movimenti bancari riconciliati dell'unità, CRO, importi, pulsanti di apertura delle ricevute PDF originali e link al cruscotto banca.
- Nella pagina Gestione Ordinaria Gescon (`/admin-filament/gescon/ordinarie?tab=banca`):
- Nuovo Tab **"Estratto Conto Bancario & Riconciliazione"** con KPI card (Totale 1.935, Riconciliati 1.684 [87,0%], Entrate 783.568,69 €, Uscite 777.674,51 €).
- Tabella filtrabile e ricercabile con link diretto all'estratto conto dell'unità immobiliare (`/admin-filament/unita-immobiliare?unita_id=321`) e alla ricevuta PDF associata.
- Nel Tab Incassi Gescon: lettura diretta e paginazione da `singolo_anno.mdb` per lo stabile corrente con matching automatico sui bonifici e sulle ricevute `INC_EC`.
## Output del Giro Operativo
ESITO_205: riuscito
TASK_ID: task-banca-germanico-riconciliazione-unita-321
REPOSITORY: ssh://git@git.netgescon.it:2222/michele/netgescon-day0.git
BRANCH: stabilization/205-zero
COMMIT: ea30a24
FILE_O_AREE_TOCCATE:
- app/Filament/Pages/Gescon/Ordinarie.php
- app/Filament/Pages/UnitaImmobiliarePage.php
- app/Services/Contabilita/GermanicoBancaReconciliationService.php
- app/Services/Gescon/GesconEstrattoContoService.php
- resources/views/filament/pages/gescon/section.blade.php
- resources/views/filament/pages/unita-immobiliare.blade.php
- routes/web.php
- skill-netgescon/control-tower/CURRENT-205.md
- tests/Feature/GermanicoBancaReconciliationTest.php
TEST_ESEGUITI:
- ./vendor/bin/pest tests/Feature/GermanicoBancaReconciliationTest.php (5 passed, 57 assertions, 100% pass)
- ./vendor/bin/pest tests/Feature/GermanicoBancaReconciliationTest.php tests/Feature/UnitaEstrattoContoAtomicoTest.php tests/Feature/UnitaCondominoInquilinoRoleToggleTest.php tests/Feature/UnitaGestioneTemporaleTest.php tests/Feature/UnitaImmobiliarePageTest.php (19 passed, 215 assertions, 100% pass)
- php artisan view:clear && php artisan view:cache (successo, 100% template compilati senza errori)
GATE_STATISTICS:
- BLADE_COMPILATION: 100% pulita senza errori di sintassi.
- BENCHMARK_VERIFICATION:
- 0016 Condòmino Barone Michele B-4 = € 885,00 esatto (6 rate da 177,00 € di cui rata 1 saldata con bonifico 23/12/2025 da 960,79 €).
- 0013 Condòmino Spadavecchia A-1 = € 1.267,96 esatto (Passerella 965,60 + Cornicione 302,36).
- 0013 Inquilino Kiwa Cermet A-1 = € 731,30 esatto (0 straordinarie, 5 rate ordinarie 2026 con 560 € pagati e 731,30 € residuo).
- 0021 Condòmino Cefaloni Milizie 3 = € 847,69 esatto (Ordinaria 139,21 + Riscaldamento 135,00 + Straordinarie 573,48).
- BANCA_RECONCILIATION:
- 1.935 movimenti bancari importati e deduplicati da 7 file .xls.
- 1.684 movimenti bancari riconciliati (87,03%): 1.158 incassi e 526 spese.
- Ricevute PDF collegate via `Inc_da_ec` visibili e scaricabili.
- TEST_SUITE: 19 test Feature passati (215 asserzioni, 100% pass).
BLOCCO_DATI: no
BLOCCO_CONTRATTO: no
RISCHI_APERTI: nessuno
## Prossimo Passo per .200 (Validazione)
- Eseguire il checkout del branch `stabilization/205-zero`.
- Eseguire la suite di test Pest (`./vendor/bin/pest tests/Feature/GermanicoBancaReconciliationTest.php tests/Feature/UnitaEstrattoContoAtomicoTest.php`).
- Verificare su http://192.168.0.205:8000:
1. Ricerca Unità Germanico 96 (`/admin-filament/unita-immobiliare?unita_id=321`):
- Nel selettore unità compare correttamente `Scala B - Int. 4 [B-4] — Barone Michele / Francioni Claudia`.
- Nella scheda Estratto Conto: Totale Dovuto = **€ 885,00** (6 rate da 177,00 € con rata 1 saldata).
- Rata 1 riporta il badge bonifico `23/12/2025 (€ 960,79)` e il pulsante per visualizzare il PDF originale `Inc_EC_20260310_184901.pdf`.
- Sezione 5 "Movimenti Bancari Riconciliati" con tutti i bonifici e relative ricevute PDF.
2. Cruscotto Banca Gescon (`/admin-filament/gescon/ordinarie?tab=banca`):
- Tab dedicato con 1.935 movimenti, 1.684 riconciliati (87,0%), filtri e collegamenti diretti all'estratto conto di ogni singola unità.