busqueda; if ($busqueda) { // Busca en la columna 'name' de la tabla 'users' $usuarios = User::where('name', 'LIKE', "%{$busqueda}%")->where('eliminado', 0)->get(); if ($usuarios->isEmpty()) { return redirect()->route('usuarios') ->with('error', 'No existe ningún usuario con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.'); } } else { // Si no hay búsqueda, mostrar todos los usuarios $usuarios = User::where('eliminado', 0)->get(); } return view('usuarios', ['usuarios' => $usuarios]); } /** * Show the form for creating a new resource. */ public function create() { $despartamentos = Despartamento::all(); $puestos = Puesto::all(); return view('usuariosCrearEditar', ['usuario' => null, 'puestos' => $puestos, 'despartamentos'=> $despartamentos]); } /** * Store a newly created resource in storage. */ public function store(Request $request) { // Validación de datos $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'apellido' => 'required|string|max:255', 'puesto_id' => 'required|exists:puestos,id', 'departamento_id' => 'required|exists:despartamentos,id', 'telefono' => 'required|string|max:255', 'password' => 'required|string|min:8|confirmed', ], [ 'name.required' => 'El campo nombre es obligatorio.', 'email.required' => 'El campo email es obligatorio.', 'email.unique' => 'El email ya está registrado.', 'apellido.required' => 'El campo apellido es obligatorio.', 'puesto_id.required' => 'El campo puesto es obligatorio.', 'departamento_id.required' => 'El campo departamento es obligatorio.', 'telefono.required' => 'El campo teléfono es obligatorio.', 'password.required' => 'El campo contraseña es obligatorio.', 'password.confirmed' => 'Las contraseñas no coinciden.', ]); // Si la validación pasa, crea el usuario $usuario = new User(); $usuario->name = $request->name; $usuario->email = $request->email; $usuario->apellido = $request->apellido; $usuario->puesto_id = $request->puesto_id; $usuario->departamento_id = $request->departamento_id; $usuario->telefono = $request->telefono; $usuario->password = bcrypt($request->password); $usuario->save(); return redirect()->route('usuarios')->with('success', 'Usuario creado exitosamente.'); } /** * Display the specified resource. */ public function show(string $id) { // Implementar si es necesario } /** * Show the form for editing the specified resource. */ public function edit($id) { $user = User::findOrFail($id); $puestos = Puesto::all(); $despartamentos = Despartamento::all(); return view('usuariosCrearEditar',['usuario' => $user, 'puestos' => $puestos,'despartamentos'=> $despartamentos]); // Asegúrate de que la clave sea 'usuario' } /** * Update the specified resource in storage. */ public function update(Request $request, $id) { // Validación de datos $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'apellido' => 'required|string|max:255', 'puesto_id' => 'required|exists:puestos,id', 'departamento_id' => 'required|exists:despartamentos,id', 'telefono' => 'required|string|max:255', 'password' => 'required|string|min:8|confirmed', ], [ 'name.required' => 'El campo nombre es obligatorio.', 'email.required' => 'El campo email es obligatorio.', 'email.unique' => 'El email ya está registrado.', 'apellido.required' => 'El campo apellido es obligatorio.', 'puesto_id.required' => 'El campo puesto es obligatorio.', 'departamento_id.required' => 'El campo departamento es obligatorio.', 'telefono.required' => 'El campo teléfono es obligatorio.', 'password.required' => 'El campo contraseña es obligatorio.', 'password.confirmed' => 'Las contraseñas no coinciden.', ]); // Actualizar usuario $usuario = User::findOrFail($id); $usuario->name = $request->name; $usuario->email = $request->email; $usuario->apellido = $request->apellido; $usuario->puesto_id = $request->puesto_id; $usuario->departamento_id = $request->departamento_id; $usuario->telefono = $request->telefono; if ($request->filled('password')) { $usuario->password = bcrypt($request->password); } $usuario->save(); return redirect()->route('usuarios')->with('success', 'Usuario actualizado exitosamente.'); } /** * Remove the specified resource from storage. */ public function destroy($id) { // Buscar el usuario por ID $usuario = User::findOrFail($id); // Cambiar el estado de eliminado a 1 $usuario->eliminado = 1; // Asumiendo que 'eliminado' es el campo que indica el estado $usuario->save(); // Guardar los cambios // Redirigir a la lista de usuarios con un mensaje de éxito return redirect()->route('usuarios')->with('success', 'Usuario eliminado exitosamente.'); } public function exportExcel() { return Excel::download(new UsuariosExport, 'usuarios.xlsx'); } public function exportPDF() { $usuarios = User::where('eliminado', 0)->get(); $pdf = PDF::loadView('exports.usuarios-pdf', ['usuarios' => $usuarios]); return $pdf->download('usuarios.pdf'); } }