amministratore) { $amministratore_id = $user->amministratore->id; // Usa 'id' invece di 'id_amministratore' } // Se l'utente non ha un amministratore associato, mostra vista vuota if (!$amministratore_id) { return view('admin.dashboard', [ 'stats' => [ 'stabili_gestiti' => 0, 'stabili_attivi' => 0, 'ticket_aperti' => 0, 'ticket_urgenti' => 0, ], 'ticketsAperti' => collect(), 'scadenzeImminenti' => collect(), 'ultimiDocumenti' => collect(), 'ultimiMovimenti' => collect(), ]); } // Statistiche principali $stats = [ 'stabili_gestiti' => Stabile::where('amministratore_id', $amministratore_id)->count(), 'stabili_attivi' => Stabile::where('amministratore_id', $amministratore_id)->where('stato', 'attivo')->count(), 'ticket_aperti' => Ticket::whereHas('stabile', function($q) use ($amministratore_id) { $q->where('amministratore_id', $amministratore_id); })->whereIn('stato', ['Aperto', 'Preso in Carico', 'In Lavorazione'])->count(), 'ticket_urgenti' => Ticket::whereHas('stabile', function($q) use ($amministratore_id) { $q->where('amministratore_id', $amministratore_id); })->where('priorita', 'Urgente')->whereIn('stato', ['Aperto', 'Preso in Carico'])->count(), ]; // Ticket aperti da lavorare $ticketsAperti = Ticket::with(['stabile', 'categoriaTicket']) ->whereHas('stabile', function($q) use ($amministratore_id) { $q->where('amministratore_id', $amministratore_id); }) ->whereIn('stato', ['Aperto', 'Preso in Carico', 'In Lavorazione']) ->orderBy('priorita', 'desc') ->orderBy('created_at', 'desc') ->take(5) ->get(); // Scadenze imminenti (prossimi 30 giorni) $scadenzeImminenti = collect(); // Placeholder per quando implementeremo le rate // Ultimi documenti caricati $ultimiDocumenti = Documento::with('documentable') ->whereHasMorph('documentable', [Stabile::class], function($q) use ($amministratore_id) { $q->where('amministratore_id', $amministratore_id); }) ->orderBy('created_at', 'desc') ->take(5) ->get(); // Movimenti contabili recenti $ultimiMovimenti = MovimentoContabile::with(['stabile', 'fornitore']) ->whereHas('stabile', function($q) use ($amministratore_id) { $q->where('amministratore_id', $amministratore_id); }) ->orderBy('created_at', 'desc') ->take(5) ->get(); return view('admin.dashboard', compact( 'stats', 'ticketsAperti', 'scadenzeImminenti', 'ultimiDocumenti', 'ultimiMovimenti' )); } }