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

6.8 KiB

CURRENT-205

TASK_ID: task-unificazione-fornitore-rubrica-centralino MACHINE: .205 STATO: completato

Obiettivo Completato

  1. Unificazione Dati e Viste Fornitore (/admin-filament/fornitore/pratiche e /admin-filament/fornitore/tickets):

    • Diagnosi sincronizzazione e conteggio (1831 vs 1876/1879):
      • In assistenza_tecnorepair_schede_legacy, 600 schede erano state importate sotto fornitore_id = 359 (NETHOME NO RITENUTA) e 1829 sotto fornitore_id = 236 (NETHOME sas), creando 600 record duplicati che scatenavano l'errore SQL Integrity constraint violation: 1062 Duplicate entry sul vincolo univoco ass_tecnorepair_source_legacy_unique.
      • In TecnoRepairArchiveService.php, il metodo resolveMdbPath() metteva il fallback locale stale (Miki-Bug-workspace/.../TecnoRepairDB.mdb fermo a 1834) davanti al montaggio CIFS live.
    • 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 resilientemente whereIn('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 PraticheTecnorepair e TicketOperativi: ora mostrano esattamente lo stesso dataset consolidato (1874 schede) con le stesse KPI, pulsanti e collegamenti rapidi.
  2. Rubrica Clienti Unificata (/admin-filament/fornitore/rubrica-clienti):

    • Creato il servizio FornitoreRubricaSyncService che aggrega in modo armonico i contatti da 3 sorgenti distinte:
      1. TecnoRepair (TClienti) dal database MDB live /mnt/cservergo: 1.243 contatti.
      2. Contabilità MySQL Target Cross (arc_nehr su 192.168.0.36:3307) da cli e ind: 2.473 contatti.
      3. NetGescon Amministratore: contatti dai ticket condominiali assegnati al fornitore.
    • Risultato: 3.716 contatti unificati in fornitore_clienti con matching automatico su CF, PIVA, telefono ed email verso rubrica_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, PraticheTecnorepair e TicketOperativi.
  3. Integrazione Centralino Telefonico (Panasonic NS1000 / TAPI) & Wireframe ASCII:

    • Identificato lo script in esecuzione all'avvio di Windows:
      • Task Schedulato NetGescon Panasonic Live Bridge (creato da scripts/ops/windows/install-netgescon-panasonic-live-task.cmd / .ps1).
      • Script launcher: start-netgescon-panasonic-live.cmd / .ps1 che esegue in loop watch-netgescon-panasonic-tapi-dotnet-events.ps1.
    • Diagnosi del "furto di focus":
      • Lato Windows: console PowerShell interattiva senza -WindowStyle Hidden che all'avvio del loop o su restart/errore apre una finestra e ruba il focus.
      • Lato NetGescon: TopbarLiveCall eseguiva polling ogni 3s e, alla ricezione della chiamata, richiamava modali con direttive autofocus che catturavano il cursore.
    • Soluzione architetturale push:
      • Esecuzione Windows headless come Servizio o Task SYSTEM con 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.
    • 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).

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: in_pubblicazione 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)