136 lines
8.5 KiB
Markdown
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.
|