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

5.3 KiB

CURRENT-205

TASK_ID: task-estratto-conto-atomico-mdb-unita MACHINE: .205 STATO: completato

Obiettivo Completato

  1. Estratto Conto Atomico e Temporale Unità Immobiliare (/admin-filament/unita-immobiliare):

    • Servizio Dedicato GesconEstrattoContoService:
      • Creato app/Services/Gescon/GesconEstrattoContoService.php.
      • Legge direttamente dagli archivi montati in /mnt/gescon-archives/gescon/{codice_stabile}/:
        • generale_stabile.mdb: legge anni e emes_det (piano rate e conguagli storici e attivi).
        • {nome_dir}/singolo_anno.mdb: legge condomin, straordinarie (delibere/spese) e incassi.
      • Ripartisce atomicamente e cronologicamente i dati contabili:
        • Gestione Ordinaria Corrente (Es. 2026): rate emesse, conguaglio es. precedente e saldo/compensazione a zero.
        • Gestioni Straordinarie Separate: ciascuna spesa ha la sua scheda isolata con piano rate, pagamenti e residuo esigibile (Passerella e Tetto 1/2026 con 4 rate di cui 1 pagata da 482,80 €, 2 emesse da pagare e 1 da emettere; Cornicione 2/2026 con rata 1 pagata 209,51 €, rata 2 residuo 92,85 €, rata 3 da 209,51 €; Citofono 3/2022 con rata unica rif. 401; Cortile 2/2024 saldata).
        • Riepilogo Gestioni Ordinarie Pregresse: tabella storica dei consuntivi definitivi chiusi (2017-2025) a saldo zero.
        • Riscaldamento: escluso (non presente nell'ente).
      • Supporta pienamente il ruolo contabile cond_inquil con toggle tra Condòmino (C) (Spadavecchia Aldo) e Inquilino (I) (Kiwa Cermet SpA, residuo 731,30 €).
      • Riscontro matematico esatto al centesimo sul benchmark fornito per l'interno A-1: Passerella Rata 2 (482,80 €) + Passerella Rata 3 (482,80 €) + Cornicione Rata 2 residuo (92,85 €) + Cornicione Rata 3 (209,51 €) = € 1.267,96.
  2. Risoluzione Duplicazione e Riprogettazione Blade (unita-immobiliare.blade.php):

    • Eliminazione Blocco Duplicato: rimosso il secondo blocco @if($tab === 'estratto_conto') (ex righe 1577-1846) che appiattiva e mescolava tutte le date e gli anni tramite un ordinamento generico usort.
    • Nuova Interfaccia Atomica:
      • Testata scura con badge fonte (⚡ Archivio MDB Live / 🗄️ Database Consolidato), dati anagrafici e locatario.
      • Switcher istantaneo tra 🏢 Condòmino (C) e 👤 Inquilino (I).
      • Pulsante Ricarica MDB collegato al Livewire action refreshEstrattoContoMdb per invalidare la cache (300s) e rileggere a caldo i dati dai file MDB.
      • 4 KPI cards: Totale da Pagare (€ 1.267,96), Straordinarie Attive (€ 1.267,96), Ordinaria 2026 (€ 0,00), Ordinarie Pregresse (€ 0,00).
      • Sezione Ordinaria Corrente tabellare dettagliata.
      • Sezione Gestioni Straordinarie a schede atomiche indipendenti con badge di avanzamento rata (Saldata, Parziale, Da Pagare, Da Emettere).
      • Sezione Riepilogo Storico Consuntivi Chiusi con spunta di chiusura definitiva.
  3. Integrazione Controller Livewire (UnitaImmobiliarePage.php):

    • Aggiunta proprietà computata getEstrattoContoAtomicoProperty che interpola il service e l'unità selezionata.
    • Aggiunta azione refreshEstrattoContoMdb() con notifica Filament a schermo.

Output del Giro Operativo

ESITO_205: riuscito TASK_ID: task-estratto-conto-atomico-mdb-unita REPOSITORY: ssh://git@git.netgescon.it:2222/michele/netgescon-day0.git BRANCH: stabilization/205-zero COMMIT: DA_EFFETTUARE FILE_O_AREE_TOCCATE:

  • app/Filament/Pages/UnitaImmobiliarePage.php
  • app/Services/Gescon/GesconEstrattoContoService.php
  • resources/views/filament/pages/unita-immobiliare.blade.php
  • skill-netgescon/control-tower/CURRENT-205.md
  • tests/Feature/UnitaEstrattoContoAtomicoTest.php TEST_ESEGUITI:
  • ./vendor/bin/pest tests/Feature/UnitaEstrattoContoAtomicoTest.php (2 passed, 32 assertions)
  • ./vendor/bin/pest tests/Feature/UnitaCondominoInquilinoRoleToggleTest.php tests/Feature/UnitaGestioneTemporaleTest.php tests/Feature/UnitaImmobiliarePageTest.php tests/Feature/UnitaEstrattoContoAtomicoTest.php (12 passed, 103 assertions, 100% pass)
  • php artisan view:clear && php artisan view:cache (successo, zero errori di compilazione Blade) GATE_STATISTICS:
  • BLADE_COMPILATION: 100% pulita senza token inattesi.
  • BENCHMARK_VERIFICATION: Totale dovuto € 1.267,96 esatto al centesimo (Passerella 482,80 + 482,80 + Cornicione 92,85 + 209,51).
  • TEST_SUITE: 12 test Feature passati (103 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/UnitaEstrattoContoAtomicoTest.php).
  • Verificare su http://192.168.0.205:8000/admin-filament/unita-immobiliare (selezionando lo stabile 0013, unità A-1) il tab "🧾 Estratto Conto & Pagamenti":
    • Verificare che il Totale Dovuto sia esattamente € 1.267,96.
    • Verificare la corretta ripartizione tra Gestione Ordinaria 2026 (residuo € 0,00) e Gestioni Straordinarie (Passerella con 1 pagata e rate a 482,80 €, Cornicione con residuo 92,85 € e 209,51 €, Citofono 2022 con rif 401).
    • Verificare che non siano presenti voci di riscaldamento.
    • Testare il toggle "🏢 Condòmino (C)" / "👤 Inquilino (I)" e il pulsante "Ricarica MDB".