setRelation('roles', collect()); // fallback vuoto } $stabili = collect(); if ($user) { if (method_exists($user, 'hasRole') && $user->hasRole('super-admin')) { $stabili = Stabile::orderBy('denominazione')->get(); } elseif ($user->amministratore) { // Usa 'id' invece di 'id_amministratore' per la chiave modernizzata $stabili = Stabile::where('amministratore_id', $user->amministratore->id)->orderBy('denominazione')->get(); } } $stabileAttivo = session('stabile_corrente') ?? ($stabili->first() ? $stabili->first()->denominazione : null); $stabileObj = $stabili->firstWhere('denominazione', $stabileAttivo); $gestioni = $stabileObj ? Gestione::where('stabile_id', $stabileObj->id)->orderByDesc('anno_gestione')->get() : collect(); $annoAttivo = session('anno_corrente') ?? ($gestioni->first() ? $gestioni->first()->anno_gestione : date('Y')); $gestioneAttiva = session('gestione_corrente') ?? ($gestioni->first() ? $gestioni->first()->tipo_gestione : 'Ord.'); $view->with([ 'stabili' => $stabili, 'stabileAttivo' => $stabileAttivo, 'anni' => $gestioni->pluck('anno_gestione')->unique(), 'annoAttivo' => $annoAttivo, 'gestione' => $gestioneAttiva, 'hasAnyStabile' => $stabili->count() > 0, 'canGesconImport' => $user ? $user->can('gescon-import.view') : false, 'canGesconExecute' => $user ? $user->can('gescon-import.execute') : false, 'canGesconConfig' => $user ? $user->can('gescon-import.config') : false, 'canContabilitaGescon' => $user ? $user->can('contabilita-gescon.view') : false, 'activeModules' => Cache::remember('netgescon.active_modules', 3600, function () { return DB::table('modules')->where('status', 'active')->pluck('name')->toArray(); }), ]); } }