<?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 o Servicios Generales
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        if (!$user->tipo || !in_array($user->tipos_id, [1, 4])) {
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								            // 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 o servicios 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
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								        ]);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								}