From f5264a04f130867227d16e9ccfc72ac5a0db3a34 Mon Sep 17 00:00:00 2001 From: sergiomarquez778 Date: Tue, 18 Mar 2025 21:48:40 -0600 Subject: [PATCH] cambios nuevos agrege el metodo de estatus el cual no elimina completamente el campo de marca en mysql si no que lo pasa a un estado inactivo pero tambien agregue la funcion en el update conde si queires pudes cambiar el estatus denuevo y poder habilitar esa opcion --- app/Http/Controllers/MarcaController.php | 78 +++++++++---------- ...19_030418_add_columneliminado_tomarcas.php | 29 +++++++ resources/views/marcasCrearEditar.blade.php | 10 +-- 3 files changed, 73 insertions(+), 44 deletions(-) create mode 100644 database/migrations/2025_03_19_030418_add_columneliminado_tomarcas.php diff --git a/app/Http/Controllers/MarcaController.php b/app/Http/Controllers/MarcaController.php index 1c45e8d..f0216a3 100644 --- a/app/Http/Controllers/MarcaController.php +++ b/app/Http/Controllers/MarcaController.php @@ -6,9 +6,6 @@ use App\Models\Marca; use Illuminate\Http\Request; use App\Models\Marc; - - - class MarcaController extends Controller { /** @@ -18,23 +15,23 @@ class MarcaController extends Controller { $busqueda = $request->busqueda; - if($busqueda) { - $marcas = Marca::where('nombre', 'LIKE', "%{$busqueda}%")->get(); + if ($busqueda) { + $marcas = Marca::where('nombre', 'LIKE', "%{$busqueda}%")->get(); - if($marcas->count() == 0) { - return redirect()->route('marca.index') - ->with('error', 'No existe ninguna marca con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.'); - } + if ($marcas->count() == 0) { + return redirect()->route('marca.index') + ->with('error', 'No existe ninguna marca con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.'); + } - // Si solo hay una marca, mostrar sus detalles - if($marcas->count() == 1) { - $marca = $marcas->first(); - return redirect()->route('marca.edit', $marca->id); - } + // Si solo hay una marca, mostrar sus detalles + if ($marcas->count() == 1) { + $marca = $marcas->first(); + return redirect()->route('marca.edit', $marca->id); + } - // Si hay múltiples coincidencias, mostrar la lista filtrada - return view('marca', ["marcas" => $marcas]); - } + // Si hay múltiples coincidencias, mostrar la lista filtrada + return view('marcas', ["marcas" => $marcas]); + } // Si no hay búsqueda, mostrar todas las marcas $marcas = Marca::all(); @@ -47,7 +44,7 @@ class MarcaController extends Controller public function create() { $marcs = Marc::all(); // Asegúrate de que el modelo Marc esté correctamente importado - return view('marcasCrearEditar', ['marcs' => $marcs]); // Asegúrate de pasar la variable correctamente + return view('marcasCrearEditar', ['marcs' => $marcs]); // Pasa la variable correctamente } /** @@ -55,19 +52,12 @@ class MarcaController extends Controller */ public function store(Request $request) { + $marca = new Marca($request->all()); $marca->save(); return redirect()->route('marca.index')->with('success', 'Marca creada exitosamente.'); } - /** - * Display the specified resource. - */ - public function show(Marca $marca) - { - // - } - /** * Show the form for editing the specified resource. */ @@ -83,27 +73,37 @@ class MarcaController extends Controller */ public function update(Request $request, $id) { - // Validar los datos del formulario - $request->validate([ - 'marcs_id' => 'required|exists:marcs,id', // Asegúrate de que la marca seleccionada exista - ]); + $marca = Marca::findOrFail($id); // Encuentra la marca por ID + + // Si el campo 'recuperar' está presente, cambia el estado a activo + if ($request->has('recuperar')) { + $marca->eliminado = 0; // Marca como activa + } else { + // Actualiza los datos de la marca directamente + $marca->fill($request->all()); // Rellena los datos sin validación + } - // Buscar la marca y actualizarla - $marca = Marca::findOrFail($id); - $marca->marcs_id = $request->marcs_id; // Asigna el nuevo ID de la marca seleccionada - $marca->save(); + $marca->save(); // Guarda los cambios - return redirect()->route('marca.index')->with('success', 'Marca actualizada exitosamente.'); + return redirect()->route('marca.index')->with('success', 'Marca actualizada correctamente.'); } /** * Remove the specified resource from storage. */ - public function destroy($id ) + public function destroy($id) { - $marca = Marca::find($id); - $marca->delete(); - return redirect()->route('marca.index')->with('success', 'Marca eliminada exitosamente.'); + // Encuentra la marca por ID + $marca = Marca::findOrFail($id); + + // Cambia el campo 'eliminado' a 1 (inactivo) + $marca->eliminado = 1; // Marca como inactiva + $marca->save(); // Guarda los cambios + // Redirige con un mensaje de éxito + return redirect()->route('marca.index')->with('success', 'Marca inactivada correctamente.'); } + /** + * Recover the specified resource. + */ } diff --git a/database/migrations/2025_03_19_030418_add_columneliminado_tomarcas.php b/database/migrations/2025_03_19_030418_add_columneliminado_tomarcas.php new file mode 100644 index 0000000..bca0bba --- /dev/null +++ b/database/migrations/2025_03_19_030418_add_columneliminado_tomarcas.php @@ -0,0 +1,29 @@ +boolean('eliminado')->default(false); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('marcas', function (Blueprint $table) { + $table->dropColumn('eliminado'); + }); + } +}; diff --git a/resources/views/marcasCrearEditar.blade.php b/resources/views/marcasCrearEditar.blade.php index cb10a58..e178bbe 100644 --- a/resources/views/marcasCrearEditar.blade.php +++ b/resources/views/marcasCrearEditar.blade.php @@ -42,11 +42,11 @@
-
- - + + @foreach($marcs as $marc) @endforeach