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() { return view('usuariosCrearEditar'); // Vista para crear usuario } /** * 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' => 'required|string|max:255', 'carrera' => 'required|string|max:255', 'telefono' => 'required|string|max:255', 'password' => 'required|string|min:8|confirmed', ]); // Crear nuevo usuario $usuario = new User(); $usuario->name = $request->name; $usuario->email = $request->email; $usuario->apellido = $request->apellido; $usuario->puesto = $request->puesto; $usuario->carrera = $request->carrera; $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) { $usuario = User::findOrFail($id); return view('usuariosCrearEditar', compact('usuario')); // Vista para editar 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', 'apellido' => 'required|string|max:255', 'puesto' => 'required|string|max:255', 'carrera' => 'required|string|max:255', 'telefono' => 'required|string|max:255', 'password' => 'nullable|string|min:8|confirmed', ]); // Actualizar usuario $usuario = User::findOrFail($id); $usuario->name = $request->name; $usuario->email = $request->email; $usuario->apellido = $request->apellido; $usuario->puesto = $request->puesto; $usuario->carrera = $request->carrera; $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'); } }