6.8 KiB
6.8 KiB
CURRENT-205
TASK_ID: task-unificazione-fornitore-rubrica-centralino MACHINE: .205 STATO: completato
Obiettivo Completato
-
Unificazione Dati e Viste Fornitore (
/admin-filament/fornitore/pratichee/admin-filament/fornitore/tickets):- Diagnosi sincronizzazione e conteggio (1831 vs 1876/1879):
- In
assistenza_tecnorepair_schede_legacy, 600 schede erano state importate sottofornitore_id = 359(NETHOME NO RITENUTA) e 1829 sottofornitore_id = 236(NETHOME sas), creando 600 record duplicati che scatenavano l'errore SQLIntegrity constraint violation: 1062 Duplicate entrysul vincolo univocoass_tecnorepair_source_legacy_unique. - In
TecnoRepairArchiveService.php, il metodoresolveMdbPath()metteva il fallback locale stale (Miki-Bug-workspace/.../TecnoRepairDB.mdbfermo a 1834) davanti al montaggio CIFS live.
- In
- Correzione e Risoluzione:
- Prioritizzato in modo assoluto il montaggio CIFS live
/mnt/cservergo/LunaSoftware_TecnoRepair/Archivi/TecnoRepairDB.mdb. - Risolti ed eliminati i 600 duplicati, consolidando tutti i 1874 record sotto il fornitore primario
236(gestendo resilientementewhereIn('fornitore_id', [236, 359, 392])). - Eseguita sincronizzazione live: 1874 schede lette, create/aggiornate con successo, max legacy_id 1879 (inclusa la #1876).
- Aggiornata la pagina
PraticheTecnorepaireTicketOperativi: ora mostrano esattamente lo stesso dataset consolidato (1874 schede) con le stesse KPI, pulsanti e collegamenti rapidi.
- Prioritizzato in modo assoluto il montaggio CIFS live
- Diagnosi sincronizzazione e conteggio (1831 vs 1876/1879):
-
Rubrica Clienti Unificata (
/admin-filament/fornitore/rubrica-clienti):- Creato il servizio
FornitoreRubricaSyncServiceche aggrega in modo armonico i contatti da 3 sorgenti distinte:- TecnoRepair (TClienti) dal database MDB live
/mnt/cservergo: 1.243 contatti. - Contabilità MySQL Target Cross (
arc_nehrsu 192.168.0.36:3307) daclieind: 2.473 contatti. - NetGescon Amministratore: contatti dai ticket condominiali assegnati al fornitore.
- TecnoRepair (TClienti) dal database MDB live
- Risultato: 3.716 contatti unificati in
fornitore_clienticon matching automatico su CF, PIVA, telefono ed email versorubrica_universale. - Aggiornata la UI di
RubricaClienti:- Pulsante "⚡ Sincronizza Rubrica" in testata.
- Filtro reattivo per sorgente (
Tutte le sorgenti,TecnoRepair,Contabilità,Ticket NetGescon). - Badge visivi semantici di provenienza e ricerca in tempo reale.
- Collegamenti bidirezionali con
LavorazioniOperative,PraticheTecnorepaireTicketOperativi.
- Creato il servizio
-
Integrazione Centralino Telefonico (Panasonic NS1000 / TAPI) & Wireframe ASCII:
- Identificato lo script in esecuzione all'avvio di Windows:
- Task Schedulato
NetGescon Panasonic Live Bridge(creato dascripts/ops/windows/install-netgescon-panasonic-live-task.cmd/.ps1). - Script launcher:
start-netgescon-panasonic-live.cmd/.ps1che esegue in loopwatch-netgescon-panasonic-tapi-dotnet-events.ps1.
- Task Schedulato
- Diagnosi del "furto di focus":
- Lato Windows: console PowerShell interattiva senza
-WindowStyle Hiddenche all'avvio del loop o su restart/errore apre una finestra e ruba il focus. - Lato NetGescon:
TopbarLiveCalleseguiva polling ogni 3s e, alla ricezione della chiamata, richiamava modali con direttiveautofocusche catturavano il cursore.
- Lato Windows: console PowerShell interattiva senza
- Soluzione architetturale push:
- Esecuzione Windows headless come Servizio o Task
SYSTEMcon reindirizzamento solo su file di log. - Push immediato REST allo squillo (
POST /api/v1/cti/panasonic/incoming) verso NetGescon. - Floating toast non-intrusivo senza autofocus in NetGescon, espandibile su richiesta dell'operatore.
- Esecuzione Windows headless come Servizio o Task
- Redatti 4 diagrammi ASCII Wireframe dettagliati (architettura, floating toast, scheda chiamante Fornitore con riparazioni, scheda chiamante Amministratore con estratto conto spese/incassi/rate scadute e ticket aperti).
- Identificato lo script in esecuzione all'avvio di Windows:
Output del Giro Operativo
ESITO_205: riuscito
TASK_ID: task-unificazione-fornitore-rubrica-centralino
REPOSITORY: ssh://git@git.netgescon.it:2222/michele/netgescon-day0.git
BRANCH: stabilization/205-zero
COMMIT: 07cec6a
FILE_O_AREE_TOCCATE:
- app/Console/Commands/TecnoRepairImportRubricaClientiCommand.php
- app/Filament/Pages/Fornitore/PraticheTecnorepair.php
- app/Filament/Pages/Fornitore/RubricaClienti.php
- app/Filament/Pages/Fornitore/TicketOperativi.php
- app/Services/Fornitore/FornitoreRubricaSyncService.php
- app/Services/Tecnorepair/TecnoRepairArchiveService.php
- bootstrap/app.php
- resources/views/filament/pages/fornitore/lavorazioni-operative.blade.php
- resources/views/filament/pages/fornitore/rubrica-clienti.blade.php
- resources/views/filament/pages/fornitore/ticket-operativi.blade.php
- skill-netgescon/control-tower/CURRENT-205.md TEST_ESEGUITI:
- ./vendor/bin/pest tests/Feature/FornitoreTecnorepairAndIntegrationsTest.php (6 passed, 54 assertions)
- ./vendor/bin/pest tests/Feature/PasswordResetAndEmailServiceTest.php tests/Feature/FornitoreTecnorepairAndIntegrationsTest.php 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 (47 passed, 299 assertions, 100% pass)
- php artisan view:clear && php artisan view:cache (successo, zero errori) GATE_STATISTICS:
- BLADE_COMPILATION: 100% pulita senza token inattesi.
- TECNOREPAIR_RECORDS: 1874 schede unificate e sincronizzate direttamente dal live MDB (/mnt/cservergo), max legacy_id 1879, inclusa #1876.
- RUBRICA_CLIENTI: 3.716 contatti aggregati (1.243 TecnoRepair + 2.473 Contabilità MySQL arc_nehr + Ticket NetGescon).
- WIREFRAMES_CENTRALINO: 4 disegni ASCII completati per architettura no-focus-steal, floating toast e schede contestuali Fornitore/Amministratore.
- TEST_SUITE: 47 test Feature passati (299 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 (47 passed, 299 assertions).
- Verificare su http://192.168.0.205:8000/admin-filament/fornitore/pratiche il conteggio di 1874 schede e il perfetto funzionamento del pulsante "Sincronizza MDB TecnoRepair".
- Verificare su http://192.168.0.205:8000/admin-filament/fornitore/rubrica-clienti i 3.716 contatti con badge sorgente e filtri.
- Valutare i wireframe ASCII per l'integrazione del centralino prima di avviare l'implementazione del listener/popup.