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

90 lines
6.9 KiB
Markdown

# CURRENT-205
TASK_ID: task-affitti-contatti-banca-documenti-stabilizzazione
MACHINE: .205
STATO: completato
## Obiettivi Completati
1. **Risoluzione Recapiti e Residenza Barone Michele (Unità 321, Germanico 96)**:
- Eliminata la collisione di chiave primaria (`persona_id` vs `anagrafica_id`) in `UnitaImmobiliarePage.php` che causava l'errata visualizzazione dei dati di Skynet Solutions SRL.
- I recapiti estraggono fedelmente l'anagrafica reale di Barone Michele / Cecilia Tordini (`cecilia.tordini@gmail.com`, `barone.michele@gmail.com`, PEC `cecilia.tordini@legalmail.it`, cellulare `3388155553`, telefono `0639731100`).
- Applicata la regola richiesta dall'utente: se l'indirizzo di residenza non è specificato nel profilo, cade automaticamente sull'indirizzo dello Stabile dove è situata l'unità (`Via Germanico 96 00192 Roma (RM)`).
2. **Risoluzione Errore HTTP 500 (`Undefined variable $tabs`) in Gestione Affitti (`/admin-filament/affitti/gestione`)**:
- Bonificato il template Blade `gestione-affitti.blade.php` rimuovendo le direttive `@php(...)` a riga singola che corrompevano il parser del compilatore Blade di Laravel 12.
- Aggiunta la computed property `$this->tabs` in `GestioneAffitti.php` per le 6 sezioni (Elenco Immobili a Reddito, Anagrafica & Catasto, Banca & Incassi, Contratto & Clausole, Canoni & Rate, Documenti & Allegati).
- Predisposta la gestione sia dei contratti registrati AdE (RLI, scadenze, F24) sia dell'uso di beni comuni/spazi condominiali interni (locale bici Germanico 96, cantine, lavatoi) con addebito in estratto conto e conguaglio a fine gestione.
3. **Risoluzione HTTP 403 su Scheda Fattura Elettronica (`/admin-filament/contabilita/fatture-ricevute/255`)**:
- In `FatturaElettronicaScheda.php`: esteso `canAccess()` e `mount()` per consentire esplicitamente l'accesso agli utenti con ruolo `amministratore` (come Cecilia Tordini) e `collaboratore`, oltre a super-admin/admin.
4. **Isolamento Dati Cross-Stabile & Collegamento Corretto Unità**:
- In `Ordinarie.php`: corretta l'indicizzazione di `$condMap` su `$c['cod_cond']` e precaricata `$unitaMap` per mappare biunivocamente `[scala|interno]` all'ID unità. La riga di Lucaferri Antonella (A-13) punta ora con precisione all'Unità 287 (A-13) e non più alla 295.
- In `GesconEstrattoContoService.php`: aggiunto `buildForStabile0016Generic` e protetto `buildFromDatabase` per prevenire qualsiasi iniezione di dati straordinari 0013 Spadavecchia (Passerella e Cornicione) nelle unità di altri stabili (verificato: Unità 295 di Germanico 96 ha 0 straordinarie 0013).
5. **Modale Anteprima Ricevute & Gestione Documenti Ufficiali Bancari (`dati_bancari`)**:
- In `unita-immobiliare.blade.php`: implementato modale inline Alpine.js (`receiptModalOpen`) per visualizzare istantaneamente in iframe le ricevute di pagamento PDF (`Inc_EC_...`) sia dalle rate ordinarie/straordinarie che dalla tabella movimenti banca, con pulsante di download/apertura in nuova scheda.
- In `section.blade.php` (Gescon Ordinarie):
- Implementato modale inline Alpine.js (`previewModalOpen`) per l'anteprima rapida dei PDF di ricevuta incasso e dei documenti bancari.
- Aggiunta in Tab Banca (`$activeTab === 'banca'`) la sezione **"Documenti Ufficiali Bancari dello Stabile (`dati_bancari`)"**: modulo di upload (tipologia estratto conto, contabile bonifico, contratto C/C; descrizione opzionale; file fino a 20MB) e tabella dei documenti archiviati con anteprima rapida, download e cancellazione gestita da Livewire (`uploadBankDocument`, `deleteBankDocument`, `getBankDocumentsProperty`).
## Output del Giro Operativo
ESITO_205: riuscito
TASK_ID: task-affitti-contatti-banca-documenti-stabilizzazione
REPOSITORY: ssh://git@git.netgescon.it:2222/michele/netgescon-day0.git
BRANCH: stabilization/205-zero
COMMIT: f4d2050
FILE_O_AREE_TOCCATE:
- app/Filament/Pages/Affitti/GestioneAffitti.php
- app/Filament/Pages/Contabilita/FatturaElettronicaScheda.php
- app/Filament/Pages/Gescon/Ordinarie.php
- app/Filament/Pages/UnitaImmobiliarePage.php
- app/Services/Gescon/GesconEstrattoContoService.php
- resources/views/filament/pages/affitti/gestione-affitti.blade.php
- resources/views/filament/pages/gescon/section.blade.php
- resources/views/filament/pages/unita-immobiliare.blade.php
- tests/Feature/GermanicoBancaReconciliationTest.php
- skill-netgescon/control-tower/CURRENT-205.md
TEST_ESEGUITI:
- ./vendor/bin/pest tests/Feature/GermanicoBancaReconciliationTest.php (10 passed, 82 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 (24 passed, 242 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.
- 0013 Condòmino Spadavecchia A-1 = € 1.267,96 esatto.
- 0013 Inquilino Kiwa Cermet A-1 = € 731,30 esatto.
- 0021 Condòmino Cefaloni Milizie 3 = € 847,69 esatto.
- ISOLATION_VERIFICATION:
- Unità 287 (A-13 Lucaferri) linkata correttamente da incassi MDB.
- Unità 295 (A-21 Volpetti) priva di contaminazioni Stabile 0013 (0 straordinarie Passerella/Cornicione).
- CONTACTS_VERIFICATION:
- Unità 321 Barone Michele: recapiti Skynet rimossi; contatti reali presenti; residenza fallback su Via Germanico 96.
- PERMISSIONS_VERIFICATION:
- Cecilia Tordini (`amministratore`) accede alla Scheda Fattura Elettronica FE 255.
- AFFITTI_VERIFICATION:
- Gestione Affitti (`/admin-filament/affitti/gestione`) monta e renderizza con 6 tab operative e 0 errori 500.
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:
`./vendor/bin/pest tests/Feature/GermanicoBancaReconciliationTest.php tests/Feature/UnitaEstrattoContoAtomicoTest.php`
- Verificare su http://192.168.0.205:8000:
1. Scheda Unità Barone Michele (`/admin-filament/unita-immobiliare?unita_id=321`):
- Recapiti mostrano i dati reali di Barone Michele / Cecilia Tordini e residenza Via Germanico 96.
- Cliccando su "📄 Ricevuta PDF" si apre il modale inline con l'anteprima del documento.
2. Gestione Affitti (`/admin-filament/affitti/gestione`):
- Pagina accessibile con status 200 (nessun errore 500 $tabs).
3. Scheda Fattura 255 (`/admin-filament/contabilita/fatture-ricevute/255`):
- Accessibile per l'utente amministratore Cecilia Tordini.
4. Cruscotto Ordinarie Gescon (`/admin-filament/gescon/ordinarie?tab=banca`):
- Tab Banca con sezione "Documenti Ufficiali Bancari dello Stabile (dati_bancari)" con modulo upload e anteprima modale.
- Tab Incassi con Lucaferri Antonella (A-13) che linka all'Unità 287 (non più 295).