|
|
@@ -30,29 +30,137 @@ class RegistroCalicaciones extends Controller
|
|
|
return response()-> json($calificaciones, 200);
|
|
|
}
|
|
|
|
|
|
- public function registrarCalificacion(Request $request){
|
|
|
+ // ------------------------------------------------------------------------------------
|
|
|
+
|
|
|
+ public function registrarCalificacion(Request $request) {
|
|
|
$message = '';
|
|
|
$status = 0;
|
|
|
- try{
|
|
|
- $registro = DB::table('boletas_calificaciones')->Insert([
|
|
|
- 'idEscuela' => 'COLEGIOABC',
|
|
|
- 'idAlumnoBoletaCalificaciones'=> $request-> alumnos,
|
|
|
- 'idMateriaBoletaCalificaciones'=> $request-> materias,
|
|
|
- 'idPeriodoBoletaCalificaciones'=> $request-> periodo,
|
|
|
- 'calificacion' => $request-> calificacion,
|
|
|
- 'usuarioRegistro' => $request-> usuarioRegistro,
|
|
|
- 'estado' => 'Activo',
|
|
|
- ]);
|
|
|
-
|
|
|
- $message = 'Registro de calficiacion exitoso'; $status = 200;
|
|
|
-
|
|
|
- } catch(\Exception $e){
|
|
|
- $message = 'Error al ingresar el registro: ' . $e->getMessage();
|
|
|
- $status = 500;
|
|
|
+
|
|
|
+ try {
|
|
|
+ // Verificar si ya existe una calificación para este alumno, materia y periodo
|
|
|
+ $existente = DB::table('boletas_calificaciones')
|
|
|
+ ->where('idEscuela', 'COLEGIOABC')
|
|
|
+ ->where('idAlumnoBoletaCalificaciones', $request->alumno)
|
|
|
+ ->where('idMateriaBoletaCalificaciones', $request->materia)
|
|
|
+ ->where('idPeriodoBoletaCalificaciones', $request->periodo)
|
|
|
+ ->where('estado', 'Activo')
|
|
|
+ ->first();
|
|
|
+
|
|
|
+ if ($existente) {
|
|
|
+ // Actualizar la calificación existente
|
|
|
+ DB::table('boletas_calificaciones')
|
|
|
+ ->where('id', $existente->id)
|
|
|
+ ->update([
|
|
|
+ 'calificacion' => $request->calificacion,
|
|
|
+ 'usuarioRegistro' => $request->usuarioRegistro
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $message = 'Calificación actualizada exitosamente';
|
|
|
+ $status = 200;
|
|
|
+ } else {
|
|
|
+ // Insertar nueva calificación
|
|
|
+ DB::table('boletas_calificaciones')->insert([
|
|
|
+ 'idEscuela' => 'COLEGIOABC',
|
|
|
+ 'idAlumnoBoletaCalificaciones' => $request->alumno,
|
|
|
+ 'idMateriaBoletaCalificaciones' => $request->materia,
|
|
|
+ 'idPeriodoBoletaCalificaciones' => $request->periodo,
|
|
|
+ 'calificacion' => $request->calificacion,
|
|
|
+ 'usuarioRegistro' => $request->usuarioRegistro,
|
|
|
+ 'estado' => 'Activo',
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $message = 'Registro de calificación exitoso';
|
|
|
+ $status = 200;
|
|
|
+ }
|
|
|
+ } catch(\Exception $e) {
|
|
|
+ $message = 'Error al procesar la calificación: ' . $e->getMessage();
|
|
|
+ $status = 500;
|
|
|
}
|
|
|
+
|
|
|
return response()->json(['mensaje' => $message], $status);
|
|
|
- }
|
|
|
+}
|
|
|
|
|
|
+// Nuevo método para carga masiva
|
|
|
+public function registrarCalificacionesMasivas(Request $request) {
|
|
|
+ $respuestas = [];
|
|
|
+ $status = 200;
|
|
|
+
|
|
|
+ try {
|
|
|
+ $datos = $request->all();
|
|
|
+ $usuarioRegistro = $request->header('usuario'); // O como lo estés recibiendo
|
|
|
+
|
|
|
+ foreach ($datos as $calificacion) {
|
|
|
+ $response = $this->registrarCalificacionIndividual($calificacion, $usuarioRegistro);
|
|
|
+ $respuestas[] = $response;
|
|
|
+ }
|
|
|
+
|
|
|
+ $message = 'Proceso de carga masiva completado';
|
|
|
+ } catch(\Exception $e) {
|
|
|
+ $message = 'Error en carga masiva: ' . $e->getMessage();
|
|
|
+ $status = 500;
|
|
|
+ }
|
|
|
+
|
|
|
+ return response()->json(['mensaje' => $message, 'detalles' => $respuestas], $status);
|
|
|
+}
|
|
|
+
|
|
|
+private function registrarCalificacionIndividual($calificacion, $usuarioRegistro) {
|
|
|
+ try {
|
|
|
+ // Verificar si ya existe
|
|
|
+ $existente = DB::table('boletas_calificaciones')
|
|
|
+ ->where('idEscuela', 'COLEGIOABC')
|
|
|
+ ->where('idAlumnoBoletaCalificaciones', $calificacion['alumnoId'])
|
|
|
+ ->where('idMateriaBoletaCalificaciones', $calificacion['materiaId'])
|
|
|
+ ->where('idPeriodoBoletaCalificaciones', $calificacion['periodoId'])
|
|
|
+ ->where('estado', 'Activo')
|
|
|
+ ->first();
|
|
|
+
|
|
|
+ if ($existente) {
|
|
|
+ // Actualizar
|
|
|
+ DB::table('boletas_calificaciones')
|
|
|
+ ->where('id', $existente->id)
|
|
|
+ ->update([
|
|
|
+ 'calificacion' => $calificacion['calificacion'],
|
|
|
+ 'usuarioRegistro' => 'JUAN'
|
|
|
+ ]);
|
|
|
+
|
|
|
+ return [
|
|
|
+ 'alumno' => $calificacion['alumnoId'],
|
|
|
+ 'materia' => $calificacion['materiaId'],
|
|
|
+ 'periodo' => $calificacion['periodoId'],
|
|
|
+ 'mensaje' => 'Actualizado',
|
|
|
+ 'status' => 200
|
|
|
+ ];
|
|
|
+ } else {
|
|
|
+ // Insertar
|
|
|
+ DB::table('boletas_calificaciones')->insert([
|
|
|
+ 'idEscuela' => 'COLEGIOABC',
|
|
|
+ 'idAlumnoBoletaCalificaciones' => $calificacion['alumnoId'],
|
|
|
+ 'idMateriaBoletaCalificaciones' => $calificacion['materiaId'],
|
|
|
+ 'idPeriodoBoletaCalificaciones' => $calificacion['periodoId'],
|
|
|
+ 'calificacion' => $calificacion['calificacion'],
|
|
|
+ 'usuarioRegistro' => 'JUAN',
|
|
|
+ 'estado' => 'Activo',
|
|
|
+ ]);
|
|
|
+
|
|
|
+ return [
|
|
|
+ 'alumno' => $calificacion['alumnoId'],
|
|
|
+ 'materia' => $calificacion['materiaId'],
|
|
|
+ 'periodo' => $calificacion['periodoId'],
|
|
|
+ 'mensaje' => 'Registrado',
|
|
|
+ 'status' => 200
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ } catch(\Exception $e) {
|
|
|
+ return [
|
|
|
+ 'alumno' => $calificacion['alumnoId'],
|
|
|
+ 'materia' => $calificacion['materiaId'],
|
|
|
+ 'periodo' => $calificacion['periodoId'],
|
|
|
+ 'mensaje' => 'Error: ' . $e->getMessage(),
|
|
|
+ 'status' => 500
|
|
|
+ ];
|
|
|
+ }
|
|
|
+}
|
|
|
+// ----------------------------------------------------------------
|
|
|
public function editarCalificacion(Request $request){
|
|
|
$message = '';
|
|
|
$status = 0;
|
|
|
@@ -64,7 +172,7 @@ class RegistroCalicaciones extends Controller
|
|
|
->where('idPeriodoBoletaCalificaciones', $request ->periodo)
|
|
|
->update([
|
|
|
'calificacion' => $request-> calificacion,
|
|
|
- 'usuarioRegistro' => $request-> $usuarioRegistro,
|
|
|
+ 'usuarioRegistro' => $request-> usuarioRegistro,
|
|
|
]);
|
|
|
$message = 'Registro de calficiacion actualizado'; $status = 200;
|
|
|
} catch(\Exception $e){
|