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 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.
*/
}

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">
<!-- Campo Nombre -->
<div class="mb-3">
<label for="marcs_id" class="form-label">Marca 🏷️</label>
<select name="marcs_id" id="marcs_id" class="form-control" required>
<option value="" disabled selected>Seleccione una marca</option>
@foreach($marcs as $marc) <!-- Asegúrate de que la variable sea $marcs -->
<div class="mb-6">
<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="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></option>
@foreach($marcs as $marc)
<option value="{{ $marc->id }}">{{ $marc->name }}</option>
@endforeach
</select>

Loading…
Cancel
Save