# ๐Ÿ“˜ MANUALE MANUTENZIONE - NetGescon Unified Platform ## ๐ŸŽฏ **PANORAMICA ARCHITETTURA** ### **Struttura Directory di Lavoro** ``` /home/michele/netgescon/netgescon-laravel/ (Directory principale Linux) โ”œโ”€โ”€ app/Http/Controllers/Admin/ # Controller amministrazione โ”œโ”€โ”€ resources/views/admin/ # View amministrazione โ”œโ”€โ”€ resources/views/components/ # Componenti riutilizzabili โ”œโ”€โ”€ resources/views/layouts/ # Layout principali โ”œโ”€โ”€ routes/web.php # Definizione route โ””โ”€โ”€ docs/ # Documentazione progetto ``` ### **Sistema Multi-Tenant & Multi-Ruolo** - **Utenti 8 caratteri**: Identificativo univoco per amministratore - **Cartelle dedicate**: Ogni admin ha la sua directory isolata - **Database separati**: Possibilitร  di separare i dati per amministratore - **Backup distribuiti**: Google Drive, Microsoft, NAS locale - **Migrazione facile**: Come VM Proxmox, portabilitร  completa --- ## ๐Ÿ”ง **GUIDE OPERATIVE** ### **1. MODIFICARE IL MENU SIDEBAR** **File da modificare**: `/resources/views/components/menu/sidebar-dynamic.blade.php` **Struttura Menu**: ```php // Aggiungere nuovo elemento menu @if($userPermissions['NUOVA_SEZIONE'] ?? false) @endif ``` **Aggiungere gestione JavaScript**: In `/admin/dashboard.blade.php`: ```javascript case 'NUOVA_SEZIONE': title = 'Gestione XXXX'; icon = 'fas fa-ICON'; loadNuovaSezioneContent(); break; ``` ### **2. AGGIUNGERE NUOVA DASHBOARD SEZIONE** **Step 1**: Aggiornare `/admin/dashboard.blade.php` ```javascript function loadNuovaSezioneContent() { const content = `
Panoramica XXXXX
`; $('#dynamic-content-body').html(content); } ``` **Step 2**: Aggiungere route in `/routes/web.php` ```php Route::middleware(['role:admin|amministratore|super-admin'])->prefix('admin')->name('admin.')->group(function () { Route::resource('NUOVA_RISORSA', NuovoController::class); }); ``` ### **3. CREARE NUOVO FORM AJAX** **Step 1**: Creare controller method ```php public function createForm() { return view('admin.SEZIONE._form-bootstrap'); } ``` **Step 2**: Aggiungere route specifica ```php Route::get('SEZIONE/create/form', [Controller::class, 'createForm'])->name('SEZIONE.create.form'); ``` **Step 3**: Creare view form con struttura standard ```php

Nuovo XXXXX

Descrizione form

``` ### **4. GESTIRE PERMESSI UTENTE** **File**: `/app/Helpers/MenuHelper.php` ```php public static function canUserAccessMenu($menuName) { // Logica permessi per $menuName return $hasPermission; } ``` **Utilizzo nelle view**: ```php @if(App\Helpers\MenuHelper::canUserAccessMenu('SEZIONE')) @endif ``` --- ## ๐Ÿ“Š **TABELLE DATABASE** ### **Tabelle Principali** - `stabili` - Dati stabili/condomini - `unita_immobiliari` - Unitร  immobiliari - `soggetti` - Anagrafica unificata (condomini, proprietari, etc.) - `ruoli_soggetti` - Ruoli degli utenti nel sistema - `permessi` - Sistema permessi granulare ### **Strutture JSON** - `stabili.palazzine` - JSON array palazzine - `stabili.locali` - JSON array locali servizio - `stabili.banche` - JSON array conti bancari multipli --- ## ๐Ÿš€ **PROCEDURE STANDARD** ### **Aggiungere Nuova Funzionalitร ** 1. **Leggere questo manuale** per capire dove intervenire 2. **Identificare la sezione** (admin, super-admin, etc.) 3. **Creare/modificare route** in `web.php` 4. **Implementare controller** in `app/Http/Controllers/Admin/` 5. **Creare view** in `resources/views/admin/SEZIONE/` 6. **Aggiornare sidebar** se necessario 7. **Aggiungere JavaScript** per navigazione AJAX 8. **Testare permessi** con diversi ruoli utente 9. **Aggiornare documentazione** ### **Debugging Route** ```bash cd /home/michele/netgescon/netgescon-laravel php artisan route:clear php artisan route:list | grep "NOME_ROUTE" ``` ### **Cache Management** ```bash php artisan cache:clear php artisan view:clear php artisan config:clear php artisan route:clear ``` --- ## ๐Ÿ”’ **SICUREZZA & RUOLI** ### **Ruoli Utente** - `super-admin` - Accesso completo, import dati, configurazioni sistema - `admin/amministratore` - Gestione condomini assegnati - `collaboratore` - Assistenza limitata - `condomino` - Accesso ai propri dati ### **Middleware Protezione** ```php Route::middleware(['role:super-admin'])->group(function () { // Solo super-admin puรฒ importare dati fiscali }); ``` --- ## ๐Ÿ“ **ORGANIZZAZIONE FILE** ### **Controller Organization** ``` app/Http/Controllers/ โ”œโ”€โ”€ Admin/ # Controllers amministrazione โ”œโ”€โ”€ SuperAdmin/ # Controllers super amministrazione โ”œโ”€โ”€ Api/ # API controllers โ””โ”€โ”€ Auth/ # Controllers autenticazione ``` ### **View Organization** ``` resources/views/ โ”œโ”€โ”€ admin/ # Dashboard e funzioni admin โ”œโ”€โ”€ superadmin/ # Funzioni super admin โ”œโ”€โ”€ components/ # Componenti riutilizzabili โ”œโ”€โ”€ layouts/ # Layout principali โ””โ”€โ”€ auth/ # Login/registrazione ``` --- ## ๐ŸŽจ **STANDARDS UI/UX** ### **Colori Sezioni** - Stabili: `bg-primary` (blu) - Condomini: `bg-success` (verde) - Tickets: `bg-warning` (giallo) - Contabilitร : `bg-info` (azzurro) - Urgenze: `bg-danger` (rosso) ### **Icone Standard** - Stabili: `fas fa-building` - Condomini: `fas fa-users` - Tickets: `fas fa-ticket-simple` - Contabilitร : `fas fa-calculator` - Banche: `fas fa-university` ### **Pattern Form** - Header con titolo e descrizione - Tab per organizzare campi - Footer con pulsanti azione - JavaScript per gestione dinamica - Validazione client e server --- ## ๐Ÿ“‹ **PROSSIMI SVILUPPI** ### **Milestone Immediate** 1. **Importazione Dati Legacy** - Sistema import dal vecchio gestionale 2. **Sistema Stampe** - Etichette faldoni, chiavi, documenti 3. **Gestione Documenti** - Upload e organizzazione documenti per stabile 4. **Dashboard Mobile** - Ottimizzazione per smartphone/tablet ### **Roadmap Futura** 1. **Multi-Tenant Completo** - Separazione database per amministratore 2. **Sincronizzazione Cloud** - Backup automatici distribuiti 3. **API REST** - Integrazione con sistemi esterni 4. **Mobile App** - App nativa per gestione mobile --- **๐Ÿ“ Mantenere sempre aggiornato questo documento ad ogni modifica significativa!**