Parcourir la source

Creating a Controller to Update Academic Records (Solution to conditional rendering log)

FREDY il y a 1 mois
Parent
commit
088a89667d

+ 50 - 0
Back/backendP-Educativa/app/Http/Controllers/Api/RegistroAcademico.php

@@ -821,4 +821,54 @@ public function editarRegistroAdmin(Request $request, $id)
         return response()->json($usuario, 200);
     }
 
+    public function RecalcularCompletado()
+{
+    try {
+        DB::beginTransaction();
+
+        // Traer todos los registros
+        $registros = DB::table('registroacademico')->get();
+
+        foreach ($registros as $registro) {
+            $data = (array) $registro;
+
+            // Revisar campos (excluyendo los que no deben contar)
+            $incompleto = false;
+            foreach ($data as $key => $val) {
+                if (in_array($key, ['id', 'idEscuela', 'idAlumno', 'personasAutorizadas', 'completado', 'usuarioRegistro'])) {
+                    continue;
+                }
+                if (is_null($val)) {
+                    $incompleto = true;
+                    break;
+                }
+                if (is_string($val) && trim($val) === '') {
+                    $incompleto = true;
+                    break;
+                }
+            }
+
+            $nuevoCompletado = $incompleto ? 0 : 1;
+
+            // Solo actualizar si cambia
+            if ($registro->completado != $nuevoCompletado) {
+                DB::table('registroacademico')
+                    ->where('id', $registro->id)
+                    ->update(['completado' => $nuevoCompletado]);
+            }
+        }
+
+        DB::commit();
+
+        return response()->json([
+            'mensaje' => 'Proceso finalizado con éxito',
+            'total' => count($registros)
+        ], 200);
+
+    } catch (\Exception $e) {
+        DB::rollBack();
+        return response()->json(['mensaje' => $e->getMessage()], 500);
+    }
+}
+
 }

+ 5 - 0
Back/backendP-Educativa/routes/api.php

@@ -48,6 +48,7 @@ use App\Http\Controllers\s3;
 
 //RUTAS QUE NO NECESITAN TOKENS
 Route::post('/subir-archivo', [s3::class, 'subirArchivo']);
+    Route::post('/recalcular-completado', [RegistroAcademico::class, 'RecalcularCompletado']);
 
 Route::post('login', [LoginController::class, 'login']);
 Route::post('register', [UserController::class, 'register']);
@@ -288,4 +289,8 @@ Route::middleware(['auth:sanctum'])->group(function () {
     Route::get('/personalizar/perlogo2', [PersonalizarController::class, 'getPerLogo2Base64']);
 
 
+
+
+
+
 });