diff --git a/skill-netgescon/control-tower/CURRENT-205.md b/skill-netgescon/control-tower/CURRENT-205.md index 8334142..f3abc72 100644 --- a/skill-netgescon/control-tower/CURRENT-205.md +++ b/skill-netgescon/control-tower/CURRENT-205.md @@ -1,45 +1,65 @@ # CURRENT-205 -TASK_ID: task-db-structure-storage-erd +TASK_ID: task-fornitore-mysql-seriali-rma MACHINE: .205 STATO: completato ## Obiettivo Completato -1. **Spiegazione Errore di Sessione & Risoluzione**: - - Chiarito che l'errore `Error ID: 8f74c6bf-bcca-475a-aba1-8dd6d35de514-3800` è una disconnessione temporanea/timeout dello stream SSE del client AI e non un problema dei database (MySQL/PostgreSQL) né del backend Laravel. - - Tutti i commit, file e test rimangono sempre salvi e integri. +1. **Connessione Read-Only a Contabilità MySQL Esterna (`192.168.0.36:3307`)**: + - Individuata porta MySQL attiva `3307` e autenticazione con credenziali fornite. + - Analizzato database contabile gestionale Target Cross `arc_nehr` (oltre 580.000 righe) collegato all'anagrafica aziende `arc.dit` (NETHOME sas di BARONE M. & C., P.IVA 10055221005). + - Configurato `contabilita_mysql` in `config/database.php` in sola lettura. -2. **Cruscotto Grafico Struttura Database & Storage (`/admin-filament/impostazioni/struttura-database`)**: - - Creata la pagina Filament dedicata `StrutturaDatabase` con 5 KPI Summary cards, calcolo ingombro in tempo reale (MB Dati, MB Indici, Numero Record), e raggruppamento per 10 Domini applicativi. - - Tab 1: Tabella interattiva con filtri istantanei per ricerca e dominio, commenti e link diretti ad Adminer per ogni singola tabella. - - Tab 2: Diagramma architetturale ERD e regole invarianti di business (`id_cond`, `cod_cond`, `cond_inquil`, `codice_fiscale`, `perc_diritto_reale`). - - Tab 3: Simulatore di ingombro hardware interattivo (calcolo proiezioni GB disco, RAM consigliata e volume backup per 10 - 1000 stabili). - - Tab 4: Guida all'uso di Adminer Schema ERD interattivo e query SQL personalizzate. +2. **Parser Deterministico e Importazione Seriali / Prodotti / Fornitore NCOM SRL**: + - Creato `ContabilitaMysqlSerialImportService` e comando Artisan `php artisan fornitore:import-mysql-serials`. + - Analizzate 171 fatture e 488 righe documento da `fet` e `fea` di `NCOMSRL`. + - Creato fornitore locale `NCOM SRL` (P.IVA `14001151001`) e collegato al catalogo operativo di Nethome (`merged_supplier_ids`). + - Importati **117 seriali**, **81 prodotti** e **89 SKU/identifier**, incluso il seriale richiesto **`8CG9454YMN`** (Fattura N. 3964, acquisto a 265,00 €). -3. **Integrazione Visualizzatore Adminer ERD**: - - Accesso automatico e diretto allo schema ERD completo di 256 tabelle (`/adminer.php?server=127.0.0.1&username=netgescon_user&db=netgescon&schema=`). +3. **Risoluzione Contesto Fornitore e Accesso Immediato (`/fornitore/*`)**: + - Risolto il blocco "Questa vista richiede un fornitore selezionato" su: + - `/admin-filament/fornitore/seriali` (`SerialiCatalogo`) + - `/admin-filament/fornitore/prodotti` (`ProdottiCatalogo`) + - `/admin-filament/fornitore/tickets` (`TicketOperativi`) + - `/admin-filament/fornitore/lavorazioni` (`LavorazioniOperative`) + - Aggiunto il fallback automatico su Nethome (P.IVA 10055221005, ID 236) in assenza di query param. + - Integrato il selettore fornitore interattivo (dropdown) in testata per gli amministratori. + - Agganciata l'email `michele@nethome.it` (User 33) in `fornitore_dipendenti`, `operational_config` e `ResolvesOperatoreContext` per l'accesso riservato ai dati fornitore. + +4. **Architettura Prodotti Multi-Codice / Alias Fornitori**: + - Modellati i codici alternativi dei diversi fornitori tramite `ProductIdentifier` (con `normalized_code`, `code_type`, `fornitore_id`) e `ProductOffer` per confrontare prezzi d'acquisto sotto il medesimo `Product` canonico. ## Output del Giro Operativo ESITO_205: riuscito -TASK_ID: task-db-structure-storage-erd +TASK_ID: task-fornitore-mysql-seriali-rma REPOSITORY: ssh://git@git.netgescon.it:2222/michele/netgescon-day0.git BRANCH: stabilization/205-zero -COMMIT: ea6353e +COMMIT: 85037ae FILE_O_AREE_TOCCATE: -- app/Filament/Pages/SuperAdmin/StrutturaDatabase.php -- resources/views/filament/pages/super-admin/struttura-database.blade.php -- tests/Feature/StrutturaDatabaseAndStorageTest.php +- app/Console/Commands/ImportNcomSerialsCommand.php +- app/Services/Catalog/ContabilitaMysqlSerialImportService.php +- app/Filament/Pages/Fornitore/Concerns/ResolvesOperatoreContext.php +- app/Filament/Pages/Fornitore/SerialiCatalogo.php +- app/Filament/Pages/Fornitore/ProdottiCatalogo.php +- app/Filament/Pages/Fornitore/TicketOperativi.php +- app/Filament/Pages/Fornitore/LavorazioniOperative.php +- resources/views/filament/pages/fornitore/seriali-catalogo.blade.php +- resources/views/filament/pages/fornitore/prodotti-catalogo.blade.php +- resources/views/filament/pages/fornitore/ticket-operativi.blade.php +- resources/views/filament/pages/fornitore/lavorazioni-operative.blade.php +- tests/Feature/FornitoreContabilitaSerialiImportTest.php - skill-netgescon/control-tower/CURRENT-205.md TEST_ESEGUITI: -- ./vendor/bin/pest tests/Feature/StrutturaDatabaseAndStorageTest.php tests/Feature/NominativiAndFeMatchingTest.php tests/Feature/PostaImapWebmailAndProtocolloTest.php 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/BenedettoBonificaIdempotenteTest.php tests/Feature/ControlTowerPollCommandTest.php (33 passed, 218 assertions) +- ./vendor/bin/pest tests/Feature/FornitoreContabilitaSerialiImportTest.php tests/Feature/StrutturaDatabaseAndStorageTest.php tests/Feature/NominativiAndFeMatchingTest.php tests/Feature/PostaImapWebmailAndProtocolloTest.php 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/BenedettoBonificaIdempotenteTest.php tests/Feature/ControlTowerPollCommandTest.php (36 passed, 230 assertions) GATE_STATISTICS: -- STRUTTURA_DATABASE_PAGE: Pagina Filament attiva con KPI, storage e filtri domini. -- ERD_MERMAID_DOMAIN_MAP: Documentazione visuale e deterministica delle relazioni chiave. -- STORAGE_SIMULATION: Simulatore di ingombro e scalabilità hardware 10-1000 stabili. -- ADMINER_ERD_INTEGRATION: Accesso 1-click a schema ERD e console SQL. -- TEST_SUITE: 33 test Feature passati (218 asserzioni, 100% pass). +- FORNITORE_CONTABILITA_MYSQL_CONNECTION: Porta 3307, host 192.168.0.36, db arc_nehr funzionante. +- NCOM_SRL_IMPORT: 171 fatture, 488 righe analizzate, 117 seriali persistiti (incluso 8CG9454YMN). +- FORNITORE_UI_FIX: Risolto blocco admin context su 4 pagine fornitore con dropdown selettore e default Nethome. +- NETHOME_SUPPLIER_HOOK: Collegamento email michele@nethome.it e profilo Fornitore 236. +- MULTI_CODICE_ALIAS: ProductIdentifier + ProductOffer operativi per unificazione multi-fornitore. +- TEST_SUITE: 36 test Feature passati (230 asserzioni, 100% pass). BLOCCO_DATI: no BLOCCO_CONTRATTO: no RISCHI_APERTI: nessuno @@ -47,5 +67,6 @@ ## Output del Giro Operativo ## Prossimo Passo per .200 (Validazione) - Eseguire il checkout del branch `stabilization/205-zero`. -- Eseguire la suite di test Pest (33 passed, 218 assertions). -- Verificare la nuova pagina Struttura Database (`/admin-filament/impostazioni/struttura-database`) e il visualizzatore Adminer ERD (`/adminer.php?schema=`). +- Eseguire la suite di test Pest (36 passed, 230 assertions). +- Verificare la ricerca seriale su `/admin-filament/fornitore/seriali` (cercare `8CG9454YMN`). +- Verificare il catalogo prodotti unificato su `/admin-filament/fornitore/prodotti`.