Browse Source

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
main
sergiomarquez778 2 weeks ago
parent
commit
f5264a04f1
  1. 78
      app/Http/Controllers/MarcaController.php
  2. 29
      database/migrations/2025_03_19_030418_add_columneliminado_tomarcas.php
  3. 10
      resources/views/marcasCrearEditar.blade.php

78
app/Http/Controllers/MarcaController.php

@ -6,9 +6,6 @@ use App\Models\Marca;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Models\Marc; use App\Models\Marc;
class MarcaController extends Controller class MarcaController extends Controller
{ {
/** /**
@ -18,23 +15,23 @@ class MarcaController extends Controller
{ {
$busqueda = $request->busqueda; $busqueda = $request->busqueda;
if($busqueda) { if ($busqueda) {
$marcas = Marca::where('nombre', 'LIKE', "%{$busqueda}%")->get(); $marcas = Marca::where('nombre', 'LIKE', "%{$busqueda}%")->get();
if($marcas->count() == 0) { if ($marcas->count() == 0) {
return redirect()->route('marca.index') return redirect()->route('marca.index')
->with('error', 'No existe ninguna marca con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.'); ->with('error', 'No existe ninguna marca con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.');
} }
// Si solo hay una marca, mostrar sus detalles // Si solo hay una marca, mostrar sus detalles
if($marcas->count() == 1) { if ($marcas->count() == 1) {
$marca = $marcas->first(); $marca = $marcas->first();
return redirect()->route('marca.edit', $marca->id); return redirect()->route('marca.edit', $marca->id);
} }
// Si hay múltiples coincidencias, mostrar la lista filtrada // Si hay múltiples coincidencias, mostrar la lista filtrada
return view('marca', ["marcas" => $marcas]); return view('marcas', ["marcas" => $marcas]);
} }
// Si no hay búsqueda, mostrar todas las marcas // Si no hay búsqueda, mostrar todas las marcas
$marcas = Marca::all(); $marcas = Marca::all();
@ -47,7 +44,7 @@ class MarcaController extends Controller
public function create() public function create()
{ {
$marcs = Marc::all(); // Asegúrate de que el modelo Marc esté correctamente importado $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) public function store(Request $request)
{ {
$marca = new Marca($request->all()); $marca = new Marca($request->all());
$marca->save(); $marca->save();
return redirect()->route('marca.index')->with('success', 'Marca creada exitosamente.'); 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. * Show the form for editing the specified resource.
*/ */
@ -83,27 +73,37 @@ class MarcaController extends Controller
*/ */
public function update(Request $request, $id) public function update(Request $request, $id)
{ {
// Validar los datos del formulario $marca = Marca::findOrFail($id); // Encuentra la marca por ID
$request->validate([
'marcs_id' => 'required|exists:marcs,id', // Asegúrate de que la marca seleccionada exista // 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->save(); // Guarda los cambios
$marca = Marca::findOrFail($id);
$marca->marcs_id = $request->marcs_id; // Asigna el nuevo ID de la marca seleccionada
$marca->save();
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. * Remove the specified resource from storage.
*/ */
public function destroy($id ) public function destroy($id)
{ {
$marca = Marca::find($id); // Encuentra la marca por ID
$marca->delete(); $marca = Marca::findOrFail($id);
return redirect()->route('marca.index')->with('success', 'Marca eliminada exitosamente.');
// 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.
*/
} }

29
database/migrations/2025_03_19_030418_add_columneliminado_tomarcas.php

@ -0,0 +1,29 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('marcas', function (Blueprint $table) {
$table->boolean('eliminado')->default(false);
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('marcas', function (Blueprint $table) {
$table->dropColumn('eliminado');
});
}
};

10
resources/views/marcasCrearEditar.blade.php

@ -42,11 +42,11 @@
<div class="space-y-6"> <div class="space-y-6">
<!-- Campo Nombre --> <!-- Campo Nombre -->
<div class="mb-3"> <div class="mb-6">
<label for="marcs_id" class="form-label">Marca 🏷️</label> <label for="marcs_id" class="block text-sm font-medium text-gray-700">Selecciona una Marca 🏷️</label>
<select name="marcs_id" id="marcs_id" class="form-control" required> <select name="marcs_id" id="marcs_id" class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500" required>
<option value="" disabled selected>Seleccione una marca</option> <option value="" disabled selected></option>
@foreach($marcs as $marc) <!-- Asegúrate de que la variable sea $marcs --> @foreach($marcs as $marc)
<option value="{{ $marc->id }}">{{ $marc->name }}</option> <option value="{{ $marc->id }}">{{ $marc->name }}</option>
@endforeach @endforeach
</select> </select>

Loading…
Cancel
Save