# NetGescon - Integrazioni Sviluppo 08/03/2026 ## Obiettivo del ciclo Allineare il flusso operativo tra ticket, fornitori/manutentori, dipendenti fornitore, letture acqua da utente finale e controlli qualita DB su unita immobiliari/nominativi. ## Modifiche implementate ### 1) Ruoli e aree applicative - Redirect dashboard aggiornato: - `condomino|inquilino` -> area `condomino` - `fornitore` -> area `fornitore.tickets.index` - Area `condomino` estesa al ruolo `inquilino`. ### 2) Ticket utente (condomino/inquilino) - Accesso alle unita immobiliari risolto con doppia logica: - proprieta diretta (`proprieta`) - inquilino da anagrafica affitti (`affitti_immobili` + `rubrica_universale.email`). - Creazione ticket con log interno in `ticket_messages`. ### 3) Letture acqua utente - Nuovo controller: `App\\Http\\Controllers\\Condomino\\LetturaAcquaController`. - Nuove route: - `condomino.letture-acqua.index` - `condomino.letture-acqua.store` - Nuova view: `resources/views/condomino/letture-acqua/index.blade.php`. - Funzioni principali: - inserimento autolettura con foto - aggancio automatico alla lettura precedente - calcolo delta consumo (`lettura_fine - lettura_precedente`) - tracciamento canale `portale_condomino` e `created_by`. #### Note operative per integrazione WhatsApp (ripartenza) - Trigger suggerito messaggistica: - su nuova autolettura validata (`stabile_servizio_letture` appena creata) - payload minimo: stabile, unita, data_lettura, lettura_fine, delta_consumo, link foto. - Campi da mantenere per automazioni: - `tipo_lettura = autolettura_utente` - `canale = portale_condomino` - `created_by` per tracciatura operatore/account. - Regole funzionali consigliate per bot WhatsApp: - se delta < 0: invio alert anomalia e richiesta conferma foto/lettura - se delta > soglia configurabile: invio alert anomalia consumo - in caso di esito corretto: invio ricevuta lettura all utente. - Endpoint di partenza per evoluzione: - `Condomino\\LetturaAcquaController@index/store` - view: `resources/views/condomino/letture-acqua/index.blade.php`. ### 4) Nominativi/Unita in Filament - Pagina `Condomini/NominativiStabile` estesa con: - riferimento unita (scala/interno/piano) - cellulare condomino - cellulare inquilino - Fallback domain allineato su `rubrica_ruoli` + `rubrica_universale`. ### 5) Dipendenti fornitore (nuovo modulo) - Nuova tabella: `fornitore_dipendenti`. - Nuovo campo intervento: `ticket_interventi.eseguito_da_dipendente_id`. - Nuovo model: `App\\Models\\FornitoreDipendente`. - Nuovo controller: `App\\Http\\Controllers\\Fornitore\\DipendenteController`. - Nuove route fornitore: - `fornitore.dipendenti.index` - `fornitore.dipendenti.store` - `fornitore.dipendenti.update` - `fornitore.dipendenti.toggle` - Nuova view: `resources/views/fornitore/dipendenti/index.blade.php`. - Workflow intervento aggiornato: - login via account dipendente collegato al fornitore - valorizzazione `eseguito_da_dipendente_id` su presa in carico/completamento. ### 6) QA DB unita/nominativi - Nuovo comando artisan: `netgescon:qa-unita-nominativi`. - Controlli inclusi: - unita senza storico nominativi - mismatch `rubrica_ruoli.stabile_id` vs `unita_immobiliari.stabile_id` - ruoli attivi senza cellulare - possibili sovrapposizioni periodi in `unita_immobiliare_nominativi` - visibilita anni legacy disponibili (da `gescon_import.condomin`) - Opzione `--fix` per allineamento automatico mismatch stabile su `rubrica_ruoli`. ## Integrazione Google (stato) - OAuth presente e funzionante a livello codice: - `App\\Http\\Controllers\\Integrations\\GoogleOAuthController` - Lettura/scambio dati gia presenti in widget: - preview eventi Google Calendar - import contatti People API su rubrica interna. - Punto operativo: verificare credenziali per amministratore in `Scheda amministratore` e completare login OAuth una volta per ambiente. ## Correzioni import legacy e visibilita (08/03/2026 - follow-up) - Corretto mapping sync anagrafiche da `gescon_import.condomin`: - proprietario: fallback esplicito su `e_mail_condomino` e `cell_cond` - inquilino: fallback esplicito su `e_mail_inquilino` e `cell_inq` anche da riga chiave. - Backfill eseguito su stabile `0019` con: - `php artisan gescon:auto-sync-anagrafiche --stabile=0019 --only=both --link-ruolo --apply` - risultato: 1 inserito, 37 aggiornati. - Caso utente verificato (`Sasso Francesca Romana`): cellulare ora presente in `rubrica_universale.telefono_cellulare` (`3294508130`). - Aggiunto comando batch per sync simmetrica Google -> gestionale: - `php artisan google:sync-rubrica` - opzioni: `--admin-id`, `--max-pages`, `--dry-run` - schedulato hourly (`:20`) in `routes/console.php`. - Esteso widget Filament `Google Workspace` in `admin-filament` con: - export `Rubrica NetGescon -> Google Contacts` - quick link a ticket/fornitore locali - preview ticket aperti per avvio test operativi. - Migliorata discoverability dashboard admin: - pulsante "Vedi Tutti i Ticket" ora punta a `admin.tickets.index` - aggiunti quick link a `fornitore.tickets.index` e `fornitore.dipendenti.index`. ## Comandi consigliati post-deploy ```bash php artisan migrate php artisan netgescon:qa-unita-nominativi php artisan netgescon:qa-unita-nominativi --fix php artisan code-quality:scan --path=app,resources/views --severity=all ``` ## Note di continuita per prossimo agent - Fonte canonica per periodi occupazione: `unita_immobiliare_nominativi` (base ripartizione spese per intervallo effettivo). - Nella UI usare sempre dati legati all'unita immobiliare e ruoli attivi a periodo. - Per fornitori multi-operatore usare `fornitore_dipendenti` come ponte verso utenti autenticati. - Prima di modifiche massive su import legacy, rieseguire QA unita/nominativi e salvare report in `docs/logs/`.