netgescon-day0/docs/08-ANAGRAFICA-UNICA-UI.md

136 lines
8.5 KiB
Markdown

# 📘 CAPITOLO 8.1 — SCHEDE ANAGRAFICA UNICA & CONDOMINI
**Versione:** 0.1 • **Data:** 27 Novembre 2025 • **Autore:** Copilot NetGescon
> Obiettivo: tradurre le maschere legacy (Gesnom / gestionale contabile) in un'interfaccia web moderna e responsive capace di governare l'anagrafica unica NetGescon, collegando clienti, fornitori, condòmini, occupanti e unità immobiliari.
---
## 1. Visione UX e principi guida
- **Context-aware**: ogni scheda mostra sempre il contesto (Condominio ⇄ Soggetto ⇄ Unità) nella barra superiore con breadcrumb e quick switch.
- **Dual-pane layout**: elenco compatto a sinistra (ricerche, segmenti, preferiti), dettagli a destra con tab/pillole per gruppi dati (generalità, indirizzi, relazioni, CRM, documenti).
- **Action rail verticale**: replica l'idea dei pulsanti rapidi legacy (CRM, contatti, banche, ecc.) ma con icone + tooltip e possibilità di pinnare le azioni usate spesso.
- **Atomic data**: una sola anagrafica alimenta clienti, fornitori, condòmini, tecnici, gestori. Ogni tab lavora su viste/ruoli senza duplicare dati.
- **Smart assist**: badge di completezza, avvisi (es. CF mancante, IBAN scaduto, documento identità in scadenza) e suggerimenti per import pipeline.
---
## 2. Struttura schermata
| Sezione | Componenti | Dettagli |
| --- | --- | --- |
| **Top Context Bar** | `<x-context.header>` | • Breadcrumb: Dashboard / Condominio / Anagrafica • Selector condominio con ricerca rapida • Indicatori Stato (es. rate scadute, ticket aperti). |
| **Left Rail (List & Filters)** | `<x-anagrafica.list>` | • Ricerca full-text, filtri (ruolo, stato, tag) • Segmenti salvati • Avatar/iniziali • Stato (attivo, sospeso, da importare). |
| **Main Detail Tabs** | `<x-tabs>` + `<x-card>` | Tab principali: 1) Generale 2) Indirizzi & recapiti 3) Dati fiscali 4) Relazioni condominiali 5) CRM & attività 6) Documenti 7) Canali (email/SMS) 8) Contabilità & banche. |
| **Right Action Rail** | `<x-action.rail>` | • Pulsanti rapidi (nuova nota, email, SMS, upload doc, crea accesso web) • KPI verticali (saldo rate, ultime attività) • Shortcut a stampe. |
| **Footer Utility** | `<x-footer.actions>` | • Pulsanti Salva, Duplica, Storico versioni • Stato sincronizzazione pipeline (ultima importazione, conflitti). |
Responsive: sotto i 992px list diventa off-canvas, azioni si trasformano in bottom sheet.
---
## 3. Mapping tab legacy → NetGescon
| Tab Legacy | Nuova scheda | Dati Laravel | Note UX |
| --- | --- | --- | --- |
| Generale + Dati fiscali | **Panoramica** | `rubrica_universale`, `soggetti`, `rubrica_ruoli` | Card con info anagrafica, badges ruolo (cliente/fornitore/condomino), icone CF/P.IVA verificate. |
| Indirizzi 1/2, fatturazione, incassi | **Indirizzi & recapiti** | `rubrica_indirizzi`, `indirizzi_operativi` | Timeline modifiche + checkbox "sincronizza con operativo". Supporto multi-indirizzo con tag (legale, operativo, fatturazione, incassi). |
| Dati extra / certificazione unica | **Compliance & CU** | `rubrica_compliance`, `documenti_identita` | Card collapsible per campi CU, residenza estera, categoria previdenziale. Alert quando mancano campi obbligatori. |
| Collegamenti / riferimenti / storico nominativi | **Relazioni & Storico** | `rubrica_relazioni`, `audit_logs` | Tabella relazioni (unità, incarichi, pertinenze) + timeline versioni indirizzi. |
| CRM, email, SMS | **Comunicazioni** | `crm_attivita`, `notifiche_outbox` | Sub-tabs: Timeline, Email, SMS. Editor WYSIWYG + template. Filtri "solo condominio corrente". |
| Banche appoggio | **Pagamenti & IBAN** | `rubrica_banche`, `mandati_sdd` | Lista IBAN con icone stato (verificato, scaduto). Supporto upload mandato. |
| Contatti | **Referenti** | `rubrica_contatti` | Mini-card per referenti (nome, ruolo, canali, note). Pulsante "invita a portale". |
| Utenti WEB | **Accessi digitali** | `user_accounts` | Gestione credenziali, 2FA, ruoli portale, log accessi. |
| Gestione clienti (scheda riepilogo) | **Scheda condominiale** | `unita_immobiliari`, `proprieta`, `contratti_servizi` | Widget laterali per unità associate, ruoli (proprietario, inquilino, tecnico), stato rate. |
---
## 4. Widget condominiali chiave
1. **Riepilogo Condominio** (top right): nome stabile, cod. condominio, numero unità, millesimi gestiti, prossime assemblee.
2. **Unità collegate**: tabella scrollabile (Scala, Interno, Ruolo, Millesimi, Stato occupazione, flag locale tecnico). Filtri rapidi per "solo pertinenze".
3. **Stato Rate & Fatture**: cards con importi scaduti, in scadenza, piani di rientro. CTA "Apri StampeRate".
4. **Attività recenti**: timeline ultima nota, email, chiamata dal CRM; icone colorate per canale.
5. **Documenti rapidi**: chip per documento identità, contratto locazione, manutenzioni in corso.
---
## 5. Flussi operativi prioritari
### 5.1 Navigazione Condominio → Soggetto
1. Seleziono condominio dalla barra.
2. Il list mostra solo soggetti legati al condominio; badge "import" per record provenienti dalla pipeline.
3. Click su soggetto: pannello dettagli si aggiorna, i widget laterali rimangono contestualizzati (es. rate condominio X).
### 5.2 Aggiornare indirizzo e sincronizzare ruoli
- Form dinamico con switch "Applica a tutti i ruoli (cliente, fornitore, condomino)".
- Salvataggio tramite `LiveValidator + FormHandler` già descritti nel capitolo 8.
- Al salvataggio, mostra snackbar con elenco ruoli aggiornati e link allo storico.
### 5.3 Invio comunicazioni massive
- Dalla tab Comunicazioni: selezione template → scelta canale (Email / PEC / SMS) → definizione destinatari (ruoli, filtri CRM).
- Preview in modal, allegati drag&drop, logging automatico in `crm_attivita` e relazione con condominio.
### 5.4 Gestione locali tecnici
- Widget "Locali Tecnici" nella tab Relazioni: elenco con manutentori assegnati, contratti attivi, calendario interventi.
- Pulsante "Aggiungi manutentore" apre slide-over con picklist soggetti già presenti; se nuovo, quick-create con campi minimi.
---
## 6. Componenti da realizzare
| Componente | Tipo | Note di implementazione |
| --- | --- | --- |
| `resources/views/components/anagrafica/context-header.blade.php` | Blade | Breadcrumb + selectors + badge stato. |
| `resources/js/modules/anagrafica/ListPanel.js` | JS/Alpine | Ricerca, filtri, infinite scroll. |
| `resources/views/anagrafica/show.blade.php` | Pagina | Contiene struttura dual-pane con tabs. |
| `resources/js/modules/anagrafica/RelationsWidget.js` | JS/Alpine | Gestisce unità collegate e ruoli. |
| `resources/views/components/action/rail.blade.php` | Blade | Pulsanti rapidi, KPI. |
| `resources/js/modules/anagrafica/CommunicationCenter.js` | JS | Editor email/SMS, integrazione template. |
Ogni componente deve rispettare linee guida di Capitolo 8 (Bootstrap 5 + Alpine, lazy loading, validazione live).
---
## 7. Integrazione con pipeline import
1. **Badge provenienza**: `source=gescon` → etichetta su card soggetto con link a record storico.
2. **Campi read-only**: per dati bloccati dall'import (es. codice legacy) mostra badge "Gestito da import" con tooltip.
3. **Task list riconciliazione**: nella sidebar appare lista delle incongruenze (CF mancante, IBAN incompleto) alimentata da `import_discrepancies`.
4. **Storico versioni**: integrazione con `LegacyArchiveService` per aprire view "storico nominativi" direttamente dalla UI.
---
## 8. Roadmap di sviluppo
1. **Sprint 1**
- Contesto + List Panel + scheda Panoramica
- Widget unità collegate (read-only)
2. **Sprint 2**
- Tab Indirizzi/Recapiti e Dati fiscali
- Action rail + quick actions (note/email)
3. **Sprint 3**
- Comunicazioni (email/SMS) + timeline CRM
- Referenti e banche
4. **Sprint 4**
- Accessi digitali, allegati documentali, locali tecnici
- Integrazione alert pipeline + validazioni avanzate
Ogni sprint dovrà includere test HTTP/Feature per endpoint e test di componenti Livewire/Alpine dove applicabile.
---
## 9. Next steps immediati
- Definire schema API / endpoints per:
- `/api/anagrafica/{id}/relations`
- `/api/anagrafica/{id}/communications`
- `/api/anagrafica/{id}/financial`
- Preparare mock JSON per sviluppo frontend (fixtures in `resources/js/mocks/anagrafica`).
- Allineare `docs/07-IMPORT-UNITA-IMMOBILIARI.md` con nuove viste per verificare che ogni campo importato abbia una collocazione UI.
---
**Risultato atteso:** operatori amministratori possono navigare rapidamente tra condominio, soggetti e unità, aggiornare dati anagrafici, inviare comunicazioni e verificare situazioni economiche senza uscire dalla scheda, mantenendo semplicità visiva rispetto alle maschere legacy ma sfruttando la flessibilità web.