diff --git a/app/Http/Controllers/TiposLicenciasController.php b/app/Http/Controllers/TiposLicenciasController.php index 0095913..1c63db7 100644 --- a/app/Http/Controllers/TiposLicenciasController.php +++ b/app/Http/Controllers/TiposLicenciasController.php @@ -16,26 +16,23 @@ class TiposLicenciasController extends Controller $busqueda = $request->busqueda; if($busqueda) { - $tiposLicencias = TiposLicencias::where('tipoLicencia', 'LIKE', "%{$busqueda}%")->get(); + $tiposLicencias = TiposLicencias::where('tipoLicencia', 'LIKE', "%{$busqueda}%")->where('eliminado', 1)->get(); if($tiposLicencias->count() == 0) { return redirect()->route('tiposLicencias.index') ->with('error', 'No existe ningún tipo de licencia con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.'); } - // Si solo hay un tipo de licencia, mostrar sus detalles if($tiposLicencias->count() == 1) { $tipoLicencia = $tiposLicencias->first(); return redirect()->route('tiposLicencias.edit', $tipoLicencia->id); } - // Si hay múltiples coincidencias, mostrar la lista filtrada - return view('tiposLicencia', ["tiposLicencias" => $tiposLicencias]); // Cambiado aquí + return view('tiposLicencia', ["tiposLicencias" => $tiposLicencias]); } - // Si no hay búsqueda, mostrar todos los tipos de licencias - $tiposLicencias = TiposLicencias::all(); - return view('tiposLicencia', ["tiposLicencias" => $tiposLicencias]); // Cambiado aquí + $tiposLicencias = TiposLicencias::where('eliminado', 1)->get(); + return view('tiposLicencia', ["tiposLicencias" => $tiposLicencias]); } /** @@ -51,47 +48,57 @@ class TiposLicenciasController extends Controller * Store a newly created resource in storage. */ public function store(Request $request) -{ - // Crear una nueva instancia de TiposLicencias - $tipoLicencia = new TiposLicencias(); - $tipoLicencia->tipoLicencia = $request->tipoLicencia; // Asigna el nombre ingresado por el usuario - $tipoLicencia->save(); // Guarda el nuevo tipo de licencia en la base de datos + { + $tipoLicencia = new TiposLicencias(); + $tipoLicencia->tipoLicencia = $request->tipoLicencia; + $tipoLicencia->eliminado = 1; + $tipoLicencia->save(); - // Redirige a la lista de tipos de licencias con un mensaje de éxito - return redirect()->route('tiposLicencias.index')->with('success', 'Tipo de licencia creado exitosamente.'); -} + return redirect()->route('tiposLicencias.index')->with('success', 'Tipo de licencia creado exitosamente.'); + } -public function edit($id) -{ - // Busca el tipo de licencia por ID - $tipoLicencia = TiposLicencias::findOrFail($id); + public function edit($id) + { + // Busca el tipo de licencia por ID + $tipoLicencia = TiposLicencias::findOrFail($id); + + // Retorna la vista con el tipo de licencia para editar + return view('tiposLicenciaCrearEditar', ['tipoLicencia' => $tipoLicencia]); + } - // Retorna la vista con el tipo de licencia para editar - return view('tiposLicenciaCrearEditar', ['tipoLicencia' => $tipoLicencia]); -} /** * Update the specified resource in storage. */ public function update(Request $request, $id) { - // Busca el tipo de licencia por ID $tipoLicencia = TiposLicencias::findOrFail($id); + $tipoLicencia->tipoLicencia = $request->tipoLicencia; + if ($request->has('eliminado')) { + $tipoLicencia->eliminado = $request->eliminado; + } + $tipoLicencia->save(); - // Actualiza el nombre del tipo de licencia - $tipoLicencia->tipoLicencia = $request->tipoLicencia; // Asigna el nuevo nombre ingresado por el usuario - $tipoLicencia->save(); // Guarda los cambios - - // Redirige a la lista de tipos de licencias con un mensaje de éxito return redirect()->route('tiposLicencias.index')->with('success', 'Tipo de licencia actualizado exitosamente.'); } + public function toggleStatus($id) + { + $tipoLicencia = TiposLicencias::findOrFail($id); + $tipoLicencia->eliminado = !$tipoLicencia->eliminado; + $tipoLicencia->save(); + + $mensaje = $tipoLicencia->eliminado ? 'Tipo de licencia activado exitosamente.' : 'Tipo de licencia desactivado exitosamente.'; + return redirect()->route('tiposLicencias.index')->with('success', $mensaje); + } + /** * Remove the specified resource from storage. */ public function destroy($id) { - $tipoLicencia = TiposLicencias::find($id); - $tipoLicencia->delete(); + $tipoLicencia = TiposLicencias::findOrFail($id); + $tipoLicencia->eliminado = 0; + $tipoLicencia->save(); return redirect()->route('tiposLicencias.index')->with('success', 'Tipo de licencia eliminado exitosamente.'); } } diff --git a/app/Models/tiposLicencias.php b/app/Models/tiposLicencias.php index 285f5d9..2703839 100644 --- a/app/Models/tiposLicencias.php +++ b/app/Models/tiposLicencias.php @@ -11,5 +11,5 @@ class tiposLicencias extends Model protected $table = 'tiposLicencias'; - protected $fillable = ['nombre']; + protected $fillable = ['nombre', 'eliminado']; } diff --git a/database/migrations/2025_03_27_143601_add_status_to_tipos_licencias_table.php b/database/migrations/2025_03_27_143601_add_status_to_tipos_licencias_table.php new file mode 100644 index 0000000..16977d5 --- /dev/null +++ b/database/migrations/2025_03_27_143601_add_status_to_tipos_licencias_table.php @@ -0,0 +1,28 @@ +boolean('status')->default(true); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('tiposLicencias', function (Blueprint $table) { + $table->dropColumn('status'); + }); + } +}; diff --git a/database/migrations/2025_03_27_144121_rename_status_to_eliminado_in_tipos_licencias.php b/database/migrations/2025_03_27_144121_rename_status_to_eliminado_in_tipos_licencias.php new file mode 100644 index 0000000..e242bc1 --- /dev/null +++ b/database/migrations/2025_03_27_144121_rename_status_to_eliminado_in_tipos_licencias.php @@ -0,0 +1,28 @@ +renameColumn('status', 'eliminado'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('tiposLicencias', function (Blueprint $table) { + $table->renameColumn('eliminado', 'status'); + }); + } +}; diff --git a/resources/views/tiposLicencia.blade.php b/resources/views/tiposLicencia.blade.php index d2824eb..612c4c3 100644 --- a/resources/views/tiposLicencia.blade.php +++ b/resources/views/tiposLicencia.blade.php @@ -72,6 +72,10 @@ class="text-blue-600 hover:text-blue-900"> + + +
name('tiposLicencias.toggle-status'); Route::resource('capacidades', CapacidadController::class);