busqueda; if ($busqueda) { // Busca en la columna 'marca' de la tabla 'marcas' $marcas = Marca::where('marca', 'LIKE', "%{$busqueda}%")->where('eliminado', 0)->get(); if ($marcas->isEmpty()) { return redirect()->route('marca.index') ->with('error', 'No existe ninguna marca con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.'); } } else { // Si no hay búsqueda, mostrar todas las marcas $marcas = Marca::where('eliminado', 0)->get(); } return view('marcas', ['marcas' => $marcas]); } /** * Show the form for creating a new resource. */ public function create() { return view('marcasCrearEditar', ['marca' => null]); // No se necesita pasar marcas } /** * Store a newly created resource in storage. */ public function store(Request $request) { // Validación de datos $request->validate([ 'marca' => 'required|string|max:255|unique:marcas,marca', // Asegúrate de que 'marca' sea único ], [ 'marca.required' => 'El campo marca es obligatorio.', 'marca.string' => 'El campo marca debe ser una cadena de texto.', 'marca.max' => 'El campo marca no puede tener más de 255 caracteres.', 'marca.unique' => 'La marca ya existe en la base de datos.', ]); // Crea una nueva marca $marca = new Marca(); $marca->marca = $request->marca; // Asigna el nombre ingresado por el usuario $marca->eliminado = 0; // Marca como activa por defecto $marca->save(); return redirect()->route('marca.index')->with('success', 'Marca creada exitosamente.'); } /** * Show the form for editing the specified resource. */ public function edit($id) { $marca = Marca::findOrFail($id); // Busca la marca por ID return view('marcasCrearEditar', ['marca' => $marca]); // Pasa la marca a la vista } /** * Update the specified resource in storage. */ public function update(Request $request, $id) { $request->validate([ 'marca' => 'required|string|max:255|unique:marcas,marca', // Asegúrate de que 'marca' sea único ], [ 'marca.required' => 'El campo marca es obligatorio.', 'marca.string' => 'El campo marca debe ser una cadena de texto.', 'marca.max' => 'El campo marca no puede tener más de 255 caracteres.', 'marca.unique' => 'La marca ya existe en la base de datos.', ]); $marca = Marca::findOrFail($id); // Encuentra la marca por ID // Verifica si el nombre de la marca ha cambiado if ($marca->marca !== $request->marca) { $marca->marca = $request->marca; // Actualiza el nombre de la marca } $marca->eliminado = 0; // Cambia el estado a activo si se está editando $marca->save(); // Guarda los cambios return redirect()->route('marca.index')->with('success', 'Marca actualizada correctamente.'); } /** * Remove the specified resource from storage. */ public function destroy($id) { $marca = Marca::findOrFail($id); // Encuentra la marca por ID $marca->eliminado = 1; // Cambia el estado a inactivo $marca->save(); // Guarda los cambios return redirect()->route('marca.index')->with('success', 'Marca inactivada correctamente.'); } public function exportExcel() { return Excel::download(new MarcasExport, 'marcas.xlsx'); } public function exportPDF() { $marcas = Marca::where('eliminado', 0)->get(); $pdf = PDF::loadView('exports.marcas-pdf', ['marcas' => $marcas]); return $pdf->download('marcas.pdf'); } }