You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							58 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							58 lines
						
					
					
						
							1.9 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								namespace App\Http\Controllers;
							 | 
						|
								
							 | 
						|
								use Illuminate\Http\Request;
							 | 
						|
								
							 | 
						|
								class HomeController extends Controller
							 | 
						|
								{
							 | 
						|
								    /**
							 | 
						|
								     * Create a new controller instance.
							 | 
						|
								     *
							 | 
						|
								     * @return void
							 | 
						|
								     */
							 | 
						|
								    public function __construct()
							 | 
						|
								    {
							 | 
						|
								        $this->middleware('auth');
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Show the application dashboard.
							 | 
						|
								     *
							 | 
						|
								     * @return \Illuminate\Contracts\Support\Renderable
							 | 
						|
								     */
							 | 
						|
								    public function index()
							 | 
						|
								    {
							 | 
						|
								        $user = auth()->user();
							 | 
						|
								
							 | 
						|
								        // Validar que el usuario tenga tipo asignado y que sea Administrador
							 | 
						|
								        if (!$user->tipo || $user->tipo->nombre !== 'Administrador') {
							 | 
						|
								            // Cerrar la sesión del usuario
							 | 
						|
								            auth()->logout();
							 | 
						|
								            // Redirigir con mensaje de error
							 | 
						|
								            return redirect()->route('login')->with('error', 'No tienes permisos para acceder al sistema. Solo los administradores pueden acceder en este momento.');
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        // Notificaciones si el usuario no tiene puesto o departamento asignado
							 | 
						|
								        $notificaciones = [];
							 | 
						|
								        if (is_null($user->puesto_id)) {
							 | 
						|
								            $notificaciones[] = 'No tienes un puesto asignado. Contacta al administrador para que te asigne uno.';
							 | 
						|
								        }
							 | 
						|
								        if (is_null($user->departamento_id)) {
							 | 
						|
								            $notificaciones[] = 'No tienes un departamento asignado. Contacta al administrador para que te asigne uno.';
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        // Si es administrador, mostrar el dashboard con datos reales
							 | 
						|
								        $adminData = [
							 | 
						|
								            'totalUsers' => \App\Models\User::count(),
							 | 
						|
								            'totalPrestamos' => \App\Models\Prestamo::count(),
							 | 
						|
								            'prestamosPendientes' => \App\Models\Prestamo::where('estado', 'pendiente')->count(),
							 | 
						|
								            'prestamosAceptados' => \App\Models\Prestamo::where('estado', 'aceptado')->count(),
							 | 
						|
								        ];
							 | 
						|
								
							 | 
						|
								        return view('dashboard', [
							 | 
						|
								            'adminData' => $adminData,
							 | 
						|
								            'notificaciones' => $notificaciones
							 | 
						|
								        ]);
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |