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

59 lines
3.7 KiB
Markdown

# CURRENT-205
TASK_ID: task-bpm-bank-normalization
MACHINE: .205
STATO: completato
## Obiettivo Completato
1. **Parser Semantico Estratti Conto Banco BPM (`BpmCsvParser.php`)**:
- Parsing atomico e semantico delle 10 colonne CSV BPM (`Ragione Sociale`, `Data contabile`, `Data valuta`, `Banca`, `Rapporto`, `Importo`, `Divisa`, `Descrizione`, `Categoria/sottocategoria`, `Hashtag`).
- Classificazione deterministica e decodifica di 18 tipologie operative (disposizioni bonifici fornitori con numero fattura e data fattura, bonifici condòmini a credito/debito, addebiti SDD, bollettini CBILL/PagoPA, deleghe F24 Agenzia Entrate, commissioni bonifico, competenze e spese trimestrali, POS e carte, prelievi bancomat).
- Eliminazione completa dei dump grezzi di riga CSV da `descrizione_estesa` e generazione di descrizioni sintetiche e pulite.
2. **Importatore Multi-Banca & Matching Automatico Entità (`MovimentiBancaImporter.php`)**:
- Pipeline di importazione normalizzata su `contabilita_movimenti_banca` con memorizzazione strutturata in `match_data` (JSON).
- Matching automatico entità: associazione a `Fornitore` (`fornitore_id`), `RubricaUniversale` (`rubrica_mittente_id`, `rubrica_beneficiario_id`) e condòmini di unità immobiliare.
- Gestione `da_confermare`: marcatura deterministica per le transazioni senza riscontro certo per la revisione operatore da interfaccia.
3. **Modello & Visualizzazione Filament (`MovimentoBanca.php` & Blade Modal)**:
- Accessor avanzati (`mittente`, `beneficiario`, `tipo_operazione`, `rif_documento`, `descrizione_estesa_pulita`).
- Modale Filament potenziata con schede chiare per Mittente / Ordinante, Beneficiario / Fornitore, Riferimento Documento/Fattura, Codici CBILL/SDD, ABI/CAB e badge di stato.
4. **Re-import & Bonifica Stabile Pilota 0013 (Conto ID 8 - Banco BPM)**:
- Ri-allineati tutti i 531 movimenti storici con dati 100% strutturati e rimozione delle ridondanze.
## Output del Giro Operativo
ESITO_205: riuscito
TASK_ID: task-bpm-bank-normalization
REPOSITORY: ssh://git@git.netgescon.it:2222/michele/netgescon-day0.git
BRANCH: stabilization/205-zero
COMMIT: 25e2339
FILE_O_AREE_TOCCATE:
- .gitignore
- app/Modules/Contabilita/Models/MovimentoBanca.php
- app/Services/Contabilita/BpmCsvParser.php
- app/Services/Contabilita/MovimentiBancaImporter.php
- resources/views/filament/pages/contabilita/partials/movimento-banca-dettaglio.blade.php
- tests/Feature/BpmBankParserAndImporterTest.php
- skill-netgescon/control-tower/CURRENT-205.md
TEST_ESEGUITI:
- ./vendor/bin/pest 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 (26 passed, 180 assertions)
GATE_STATISTICS:
- PARSER_BPM_SEMANTICO: 18 casistiche operative coperte e decodificate con precisione.
- PULIZIA_RIDONDANZE_CSV: 0 dump grezzi di riga su descrizione_estesa.
- ENTITY_MATCHING: Matching automatico fornitori, rubrica universale e condomini con flag da_confermare.
- TEST_SUITE: 26 test Feature passati con successo (180 asserzioni).
- ZERO_MOCK: Dati bancari reali derivati da estratti conto Banco BPM.
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 (26 passed, 180 assertions).
- Verificare la vista movimenti bancari `http://192.168.0.205:8000/admin-filament/contabilita/casse-banche/movimenti?conto_id=8` e l'apertura modale dei dettagli movimento.