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

5.7 KiB

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

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