Browse Source

update Controller ResgistroAcademico

FREDY 1 month ago
parent
commit
4b0e9498c3
1 changed files with 99 additions and 202 deletions
  1. 99 202
      Back/backendP-Educativa/app/Http/Controllers/Api/RegistroAcademico.php

+ 99 - 202
Back/backendP-Educativa/app/Http/Controllers/Api/RegistroAcademico.php

@@ -195,7 +195,7 @@ public function registroAca(Request $request)
 
 public function ActualizarRegistroAca(Request $request, $id)
 {
-    $id = base64_decode($id);
+  $id = base64_decode($id);
     $message = '';
     $status = 0;
     $usuario = $request->usuario ?? 'sistema';
@@ -203,7 +203,7 @@ public function ActualizarRegistroAca(Request $request, $id)
     try {
         DB::beginTransaction();
 
-        // Obtener registro existente
+        // Buscar registro
         $registroExistente = DB::table('registroacademico')
             ->where('idEscuela', 'COLEGIOABC')
             ->where('idAlumno', $id)
@@ -213,200 +213,81 @@ public function ActualizarRegistroAca(Request $request, $id)
             return response()->json(['mensaje' => 'Registro no encontrado'], 404);
         }
 
-        // Manejo de personas autorizadas (opcional)
-        $personasAutorizadas = $registroExistente->personasAutorizadas;
+        // Manejo de personas autorizadas
+        $personasJson = $registroExistente->personasAutorizadas;
         if (!empty($request->personasAutorizadas)) {
             $personasExistentes = json_decode($registroExistente->personasAutorizadas, true) ?? [];
-            $personasAutorizadas = json_encode(array_merge($personasExistentes, $request->personasAutorizadas));
+            $personasJson = json_encode(array_merge($personasExistentes, $request->personasAutorizadas));
         }
 
-        // Campos obligatorios (todos menos personasAutorizadas)
-        $camposObligatorios = [
-            $request->primerNombre ?? '',
-            $request->segundoNombre ?? '',
-            $request->apellidoPaterno ?? '',
-            $request->apellidoMaterno ?? '',
-            $request->curp ?? '',
-            $request->sexo ?? '',
-            $request->edad ?? '',
-            $request->ciudadNacimiento ?? '',
-            $request->estado ?? '',
-            $request->diaNacimiento ?? '',
-            $request->mesNacimiento ?? '',
-            $request->añoNacimiento ?? '',
-            $request->domicilio ?? '',
-            $request->telefonoCasa ?? '',
-            $request->institucionProcedencia ?? '',
-            $request->motivoCambio ?? '',
-            $request->padrePrimerNombre ?? '',
-            $request->padreSegundoNombre ?? '',
-            $request->padreApellidoPaterno ?? '',
-            $request->padreApellidoMaterno ?? '',
-            $request->padreCurp ?? '',
-            $request->padreNacionalidad ?? '',
-            $request->padreEstadoCivil ?? '',
-            $request->padreDiaNacimiento ?? '',
-            $request->padreMesNacimiento ?? '',
-            $request->padreAñoNacimiento ?? '',
-            $request->padreDomicilio ?? '',
-            $request->padreCPDomicilio ?? '',
-            $request->padreEscolaridad ?? '',
-            $request->padreOcupacion ?? '',
-            $request->padreLugarTrabajo ?? '',
-            $request->padreTelefonoTrabajo ?? '',
-            $request->padreExtension ?? '',
-            $request->padreCelular ?? '',
-            $request->padreCorreo ?? '',
-            $request->madrePrimerNombre ?? '',
-            $request->madreSegundoNombre ?? '',
-            $request->madreApellidoPaterno ?? '',
-            $request->madreApellidoMaterno ?? '',
-            $request->madreCurp ?? '',
-            $request->madreNacionalidad ?? '',
-            $request->madreEstadoCivil ?? '',
-            $request->madreDiaNacimiento ?? '',
-            $request->madreMesNacimiento ?? '',
-            $request->madreAñoNacimiento ?? '',
-            $request->madreDomicilio ?? '',
-            $request->madreCPDomicilio ?? '',
-            $request->madreEscolaridad ?? '',
-            $request->madreOcupacion ?? '',
-            $request->madreLugarTrabajo ?? '',
-            $request->madreTelefonoTrabajo ?? '',
-            $request->madreExtension ?? '',
-            $request->madreCelular ?? '',
-            $request->madreCorreo ?? '',
-            $request->AutorizarAlum ?? '',
-            $request->MadreFam ?? '',
-            $request->PadreFam ?? '',
-            // Aquí van todos los campos CedA_* y antecedentes
-            $request->tipoSangre ?? '',
-            $request->aspirina ?? '',
-            $request->penicilina ?? '',
-            $request->otrosMedicamentos ?? '',
-            $request->paperas ?? '',
-            $request->sarampion ?? '',
-            $request->rubeola ?? '',
-            $request->escarlatina ?? '',
-            $request->tosferina ?? '',
-            $request->tifoidea ?? '',
-            $request->hepatitis ?? '',
-            $request->varicela ?? '',
-            $request->bronquitis ?? '',
-            $request->apendicitis ?? '',
-            $request->meninguitis ?? '',
-            $request->desmayos ?? '',
-            $request->covid ?? '',
-            $request->garganta ?? '',
-            $request->estomago ?? '',
-            $request->catarro ?? '',
-            $request->diarrea ?? '',
-            $request->dolorCabeza ?? '',
-            $request->fiebreAlta ?? '',
-            $request->comezonFrecuente ?? '',
-            $request->mareos ?? '',
-            $request->diabetes ?? '',
-            $request->asmatico ?? '',
-            $request->epileptico ?? '',
-            $request->enfermedadPiel ?? '',
-            $request->problemasEmbarazo ?? '',
-            $request->problemasParto ?? '',
-            $request->peso ?? '',
-            $request->talla1 ?? '',
-            $request->pesoActual ?? '',
-            $request->tallaActual ?? '',
-            $request->edad1 ?? '',
-            $request->edad2 ?? '',
-            $request->gateo ?? '',
-            $request->edadGateo ?? '',
-            $request->edadHablo ?? '',
-            $request->edadCamino ?? '',
-            $request->enfermedades ?? '',
-            $request->alergias ?? '',
-            $request->tratamientoMedico ?? '',
-            $request->lentes ?? '',
-            $request->piePlano ?? '',
-            $request->zapatoOrtopedico ?? '',
-            $request->problemasAprendizaje ?? '',
-            $request->relacionPareja ?? '',
-            $request->problemasFamilia ?? '',
-            $request->afectacionProblemas ?? '',
-            $request->tratamientoPsicologico ?? '',
-            $request->desagradaFamilia ?? '',
-            $request->agradaFamilia ?? '',
-            $request->actividadDesagrada ?? '',
-            $request->actividadAgrada ?? '',
-            $request->defectos ?? '',
-            $request->virtudes ?? '',
-            $request->futuro ?? '',
-            $request->comentarios ?? '',
-        ];
-      $completado = collect($camposObligatorios)->every(fn($c) => !empty($c)) ? 1 : 0;
-
-        // Actualizar registro completo
-        DB::table('registroacademico')
-            ->where('idEscuela', 'COLEGIOABC')
-            ->where('idAlumno', $id)
-            ->update([
-                'FiDI_Nombre1' => $request->primerNombre ?? '',
-                'FiDI_Nombre2' => $request->segundoNombre ?? null,
-                'FiDI_ApellidoPaterno' => $request->apellidoPaterno ?? '',
-                'FiDI_ApellidoMaterno' => $request->apellidoMaterno ?? '',
-                'FiDI_CURP' => $request->curp ?? '',
-                'FiDI_Sexo' => $request->sexo ?? '',
-                'FiDI_Edad' => $request->edad ?? '',
-                'FiDI_NacCiudad' => $request->ciudadNacimiento ?? '',
-                'FiDI_NacEstado' => $request->estado ?? '',
-                'FiDI_NacFechaDia' => $request->diaNacimiento ?? '',
-                'FiDI_NacFechaMes' => $request->mesNacimiento ?? '',
-                'FiDI_NacFechaAnio' => $request->añoNacimiento ?? '',
-                'FiDI_Domicilio' => $request->domicilio ?? '',
-                'FiDI_Telefono' => $request->telefonoCasa ?? '',
-                'FiDI_InstProce' => $request->institucionProcedencia ?? '',
-                'FiDI_MotivoCambio' => $request->motivoCambio ?? '',
-                'FiDI_PadNombre1' => $request->padrePrimerNombre ?? '',
-                'FiDI_PadNombre2' => $request->padreSegundoNombre ?? null,
-                'FiDI_PadApellidoPaterno' => $request->padreApellidoPaterno ?? '',
-                'FiDI_PadApellidoMaterno' => $request->padreApellidoMaterno ?? '',
-                'FiDI_PadCURP' => $request->padreCurp ?? '',
-                'FiDI_PadNacionalidad' => $request->padreNacionalidad ?? '',
-                'FiDI_PadEstadoCivil' => $request->padreEstadoCivil ?? '',
-                'FiDI_PadNacFechaDia' => $request->padreDiaNacimiento ?? '',
-                'FiDI_PadNacFechaMes' => $request->padreMesNacimiento ?? '',
-                'FiDI_PadNacFechaAnio' => $request->padreAñoNacimiento ?? '',
-                'FiDI_PadDomicilio' => $request->padreDomicilio ?? '',
-                'FiDI_PadCP' => $request->padreCPDomicilio ?? '',
-                'FiDI_PadEscolaridad' => $request->padreEscolaridad ?? '',
-                'FiDI_PadOcupacion' => $request->padreOcupacion ?? '',
-                'FiDI_PadLugTrabajo' => $request->padreLugarTrabajo ?? '',
-                'FiDI_PadTelTrabajo' => $request->padreTelefonoTrabajo ?? '',
-                'FiDI_PadTelTrabajoExt' => $request->padreExtension ?? '',
-                'FiDI_PadCelular' => $request->padreCelular ?? '',
-                'FiDI_PadCorreo' => $request->padreCorreo ?? '',
-                'FiDI_MadNombre1' => $request->madrePrimerNombre ?? '',
-                'FiDI_MadNombre2' => $request->madreSegundoNombre ?? null,
-                'FiDI_MadApellidoPaterno' => $request->madreApellidoPaterno ?? '',
-                'FiDI_MadApellidoMaterno' => $request->madreApellidoMaterno ?? '',
-                'FiDI_MadCURP' => $request->madreCurp ?? '',
-                'FiDI_MadNacionalidad' => $request->madreNacionalidad ?? '',
-                'FiDI_MadEstadoCivil' => $request->madreEstadoCivil ?? '',
-                'FiDI_MadNacFechaDia' => $request->madreDiaNacimiento ?? '',
-                'FiDI_MadNacFechaMes' => $request->madreMesNacimiento ?? '',
-                'FiDI_MadNacFechaAnio' => $request->madreAñoNacimiento ?? '',
-                'FiDI_MadDomicilio' => $request->madreDomicilio ?? '',
-                'FiDI_MadCP' => $request->madreCPDomicilio ?? '',
-                'FiDI_MadEscolaridad' => $request->madreEscolaridad ?? '',
-                'FiDI_MadOcupacion' => $request->madreOcupacion ?? '',
-                'FiDI_MadLugTrabajo' => $request->madreLugarTrabajo ?? '',
-                'FiDI_MadTelTrabajo' => $request->madreTelefonoTrabajo ?? '',
-                'FiDI_MadTelTrabajoExt' => $request->madreExtension ?? '',
-                'FiDI_MadCelular' => $request->madreCelular ?? '',
-                'FiDI_MadCorreo' => $request->madreCorreo ?? '',
-                'FiDI_RetirarseSolo' => $request->AutorizarAlum ?? 'No',
-                'FiDI_RecogerMadre' => $request->MadreFam ?? 'No',
-                'FiDI_RecogerPadre' => $request->PadreFam ?? 'No',
-                'personasAutorizadas' => $personasAutorizadas,
-                'CedA_TipoSangre' => $request->tipoSangre ?? '',
+        // Construimos el array de actualización
+        $datosUpdate = [
+            'idEscuela' => 'COLEGIOABC',
+            'idAlumno' => $request->idAlumno ?? '',
+            'FiDI_Nombre1' => $request->primerNombre ?? '',
+            'FiDI_Nombre2' => $request->segundoNombre ?? null,
+            'FiDI_ApellidoPaterno' => $request->apellidoPaterno ?? '',
+            'FiDI_ApellidoMaterno' => $request->apellidoMaterno ?? '',
+            'FiDI_CURP' => $request->curp ?? '',
+            'FiDI_Sexo' => $request->sexo ?? '',
+            'FiDI_Edad' => $request->edad ?? '',
+            'FiDI_NacCiudad' => $request->ciudadNacimiento ?? '',
+            'FiDI_NacEstado' => $request->estado ?? '',
+            'FiDI_NacFechaDia' => $request->diaNacimiento ?? '',
+            'FiDI_NacFechaMes' => $request->mesNacimiento ?? '',
+            'FiDI_NacFechaAnio' => $request->añoNacimiento ?? '',
+            'FiDI_Domicilio' => $request->domicilio ?? '',
+            'FiDI_Telefono' => $request->telefonoCasa ?? '',
+            'FiDI_InstProce' => $request->institucionProcedencia ?? '',
+            'FiDI_MotivoCambio' => $request->motivoCambio ?? '',
+            // Padres
+            'FiDI_PadNombre1' => $request->padrePrimerNombre ?? '',
+            'FiDI_PadNombre2' => $request->padreSegundoNombre ?? null,
+            'FiDI_PadApellidoPaterno' => $request->padreApellidoPaterno ?? '',
+            'FiDI_PadApellidoMaterno' => $request->padreApellidoMaterno ?? '',
+            'FiDI_PadCURP' => $request->padreCurp ?? '',
+            'FiDI_PadNacionalidad' => $request->padreNacionalidad ?? '',
+            'FiDI_PadEstadoCivil' => $request->padreEstadoCivil ?? '',
+            'FiDI_PadNacFechaDia' => $request->padreDiaNacimiento ?? '',
+            'FiDI_PadNacFechaMes' => $request->padreMesNacimiento ?? '',
+            'FiDI_PadNacFechaAnio' => $request->padreAñoNacimiento ?? '',
+            'FiDI_PadDomicilio' => $request->padreDomicilio ?? '',
+            'FiDI_PadCP' => $request->padreCPDomicilio ?? '',
+            'FiDI_PadEscolaridad' => $request->padreEscolaridad ?? '',
+            'FiDI_PadOcupacion' => $request->padreOcupacion ?? '',
+            'FiDI_PadLugTrabajo' => $request->padreLugarTrabajo ?? '',
+            'FiDI_PadTelTrabajo' => $request->padreTelefonoTrabajo ?? '',
+            'FiDI_PadTelTrabajoExt' => $request->padreExtension ?? '',
+            'FiDI_PadCelular' => $request->padreCelular ?? '',
+            'FiDI_PadCorreo' => $request->padreCorreo ?? '',
+            // Madres
+            'FiDI_MadNombre1' => $request->madrePrimerNombre ?? '',
+            'FiDI_MadNombre2' => $request->madreSegundoNombre ?? null,
+            'FiDI_MadApellidoPaterno' => $request->madreApellidoPaterno ?? '',
+            'FiDI_MadApellidoMaterno' => $request->madreApellidoMaterno ?? '',
+            'FiDI_MadCURP' => $request->madreCurp ?? '',
+            'FiDI_MadNacionalidad' => $request->madreNacionalidad ?? '',
+            'FiDI_MadEstadoCivil' => $request->madreEstadoCivil ?? '',
+            'FiDI_MadNacFechaDia' => $request->madreDiaNacimiento ?? '',
+            'FiDI_MadNacFechaMes' => $request->madreMesNacimiento ?? '',
+            'FiDI_MadNacFechaAnio' => $request->madreAñoNacimiento ?? '',
+            'FiDI_MadDomicilio' => $request->madreDomicilio ?? '',
+            'FiDI_MadCP' => $request->madreCPDomicilio ?? '',
+            'FiDI_MadEscolaridad' => $request->madreEscolaridad ?? '',
+            'FiDI_MadOcupacion' => $request->madreOcupacion ?? '',
+            'FiDI_MadLugTrabajo' => $request->madreLugarTrabajo ?? '',
+            'FiDI_MadTelTrabajo' => $request->madreTelefonoTrabajo ?? '',
+            'FiDI_MadTelTrabajoExt' => $request->madreExtension ?? '',
+            'FiDI_MadCelular' => $request->madreCelular ?? '',
+            'FiDI_MadCorreo' => $request->madreCorreo ?? '',
+            // Autorizaciones
+            'FiDI_RetirarseSolo' => $request->AutorizarAlum ?? 'No',
+            'FiDI_RecogerMadre' => $request->MadreFam ?? 'No',
+            'FiDI_RecogerPadre' => $request->PadreFam ?? 'No',
+            // personas autorizadas
+            'personasAutorizadas' => $personasJson,
+            // ejemplo: aquí irían todos los campos médicos y antecedentes...
+             'CedA_TipoSangre' => $request->tipoSangre ?? '',
                 'CedA_AlergiaAspirina' => $request->aspirina ?? '',
                 'CedA_AlergiaPenicilina' => $request->penicilina ?? '',
                 'CedA_AlergiaOtro' => $request->otrosMedicamentos ?? '',
@@ -466,24 +347,40 @@ public function ActualizarRegistroAca(Request $request, $id)
                 'CedA_Virtudes' => $request->virtudes ?? '',
                 'CedA_Futuro' => $request->futuro ?? '',
                 'CedA_Comentario' => $request->comentarios ?? '',
-                'completado' => $completado,
-                'usuarioRegistro' => $usuario,
-            ]);
+            'usuarioRegistro' => $usuario,
+        ];
+
+        // Verificar si está completo
+        $incompleto = false;
+        foreach ($datosUpdate as $key => $val) {
+            if ($key === 'personasAutorizadas') continue;
+            if (is_null($val)) { $incompleto = true; break; }
+            if (is_string($val) && trim($val) === '') { $incompleto = true; break; }
+        }
+        $datosUpdate['completado'] = $incompleto ? 0 : 1;
+
+        // Actualizar
+        DB::table('registroacademico')
+            ->where('idEscuela', 'COLEGIOABC')
+            ->where('idAlumno', $id)
+            ->update($datosUpdate);
 
         DB::commit();
-        $message = 'Actualización exitosa';
-        $status = 200;
+
+        return response()->json([
+            'mensaje' => 'Registro actualizado correctamente',
+            'completado' => $datosUpdate['completado']
+        ], 200);
 
     } catch (\Exception $e) {
         DB::rollBack();
-        $message = $e->getMessage();
-        $status = 500;
+        return response()->json([
+            'mensaje' => 'Error al actualizar el registro',
+            'error' => $e->getMessage()
+        ], 500);
     }
-
-    return response()->json(['mensaje' => $message], $status);
 }
 
-
     public function getOneRegistro($id){
         $id = base64_decode($id);
         $registro = DB::table('registroacademico')