diff --git a/app/Http/Controllers/DocentesController.php b/app/Http/Controllers/DocentesController.php index 26dc233..ecefb71 100644 --- a/app/Http/Controllers/DocentesController.php +++ b/app/Http/Controllers/DocentesController.php @@ -19,11 +19,12 @@ class DocentesController extends Controller if ($busqueda) { // Busca docentes que coincidan con el término de búsqueda - $docentes = Docentes::where('nombre', 'LIKE', "%{$busqueda}%") - ->orWhere('correo', 'LIKE', "%{$busqueda}%") - ->orWhere('tipo_licencia', 'LIKE', "%{$busqueda}%") - ->orWhere('materia', 'LIKE', "%{$busqueda}%") - ->get(); + $docentes = Docentes::where(function($query) use ($busqueda) { + $query->where('nombre', 'LIKE', "%{$busqueda}%") + ->orWhere('correo', 'LIKE', "%{$busqueda}%") + ->orWhere('tipo_licencia', 'LIKE', "%{$busqueda}%") + ->orWhere('materia', 'LIKE', "%{$busqueda}%"); + })->get(); if ($docentes->isEmpty()) { return redirect()->route('docentes.index') @@ -79,7 +80,8 @@ class DocentesController extends Controller public function update(Request $request, $id) { $docente = Docentes::find($id); - $docente->update($request->all()); + $docente->fill($request->all()); + $docente->save(); return redirect()->route('docentes.index')->with('success', 'Docente actualizado correctamente'); } @@ -89,8 +91,19 @@ class DocentesController extends Controller public function destroy($id) { $docente = Docentes::find($id); - $docente->delete(); - return redirect()->route('docentes.index')->with('success', 'Docente eliminado correctamente'); + $docente->status = false; + $docente->save(); + return redirect()->route('docentes.index')->with('success', 'Docente desactivado correctamente'); + } + + public function toggleStatus($id) + { + $docente = Docentes::find($id); + $docente->status = !$docente->status; + $docente->save(); + + $mensaje = $docente->status ? 'Docente activado correctamente' : 'Docente desactivado correctamente'; + return redirect()->route('docentes.index')->with('success', $mensaje); } public function export($format) diff --git a/app/Models/Docentes.php b/app/Models/Docentes.php index 8bd5954..ff46d73 100644 --- a/app/Models/Docentes.php +++ b/app/Models/Docentes.php @@ -14,6 +14,7 @@ class Docentes extends Model 'telefono', 'correo', 'tipo_licencia', - 'materia' + 'materia', + 'status' ]; } diff --git a/database/migrations/2025_03_27_054337_add_status_to_docentes_table.php b/database/migrations/2025_03_27_054337_add_status_to_docentes_table.php new file mode 100644 index 0000000..921a4d6 --- /dev/null +++ b/database/migrations/2025_03_27_054337_add_status_to_docentes_table.php @@ -0,0 +1,28 @@ +boolean('status')->default(true)->after('materia'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('docentes', function (Blueprint $table) { + $table->dropColumn('status'); + }); + } +}; diff --git a/resources/views/docentes.blade.php b/resources/views/docentes.blade.php index 470628c..c1c0ebc 100644 --- a/resources/views/docentes.blade.php +++ b/resources/views/docentes.blade.php @@ -82,6 +82,7 @@ Correo Tipo de Licencia Materia + Estado Acciones @@ -97,25 +98,20 @@ {{ $docente->correo }} {{ $docente->tipo_licencia }} {{ $docente->materia }} + + + {{ $docente->status ? 'Activo' : 'Inactivo' }} + +
- + -
- @csrf - @method('DELETE') - -
+ + +
diff --git a/routes/web.php b/routes/web.php index 91c4d56..4b10bad 100644 --- a/routes/web.php +++ b/routes/web.php @@ -42,6 +42,7 @@ Route::get('marcas/excel', [MarcaController::class, 'exportExcel'])->name('marca Route::get('marcas/pdf', [MarcaController::class, 'exportPDF'])->name('marcas.pdf'); Route::get('/docentes/export/{format}', [DocentesController::class, 'export'])->name('docentes.export'); +Route::get('/docentes/{id}/toggle-status', [DocentesController::class, 'toggleStatus'])->name('docentes.toggle-status'); // Rutas protegidas que requieren autenticación Route::middleware(['auth'])->group(function () {