netgescon-day0/docs/sviluppo/2026-03-08-ticket-letture-dipendenti-google-qa.md

135 lines
5.7 KiB
Markdown
Executable File

# 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/`.