|
|
@@ -243,30 +243,44 @@ class RegistroCalicaciones extends Controller
|
|
|
return response()->json($periodoBoleta, 200);
|
|
|
}
|
|
|
|
|
|
- // TODO: Debuggear esta función
|
|
|
+
|
|
|
public function getCalificacionesMateria(Request $request)
|
|
|
{
|
|
|
$idGradoGrupo = $request->idGradoGrupo;
|
|
|
$idMateria = $request->idMateria;
|
|
|
|
|
|
+ // Determinar si el parámetro es un grupo o un grado
|
|
|
+ $esGrupo = DB::table('grupos_usuarios')
|
|
|
+ ->where('idGrupo', $idGradoGrupo)
|
|
|
+ ->exists();
|
|
|
+
|
|
|
$calificaciones = DB::table('grupos_usuarios as g')
|
|
|
->join('usuarios as u', function ($join) {
|
|
|
$join->on('g.idEscuela', '=', 'u.idEscuela')
|
|
|
- ->on('g.idUsuario', '=', 'u.idUsuario');
|
|
|
+ ->on('g.idUsuario', '=', 'u.idUsuario')
|
|
|
+ ->where('u.tipoUsuario', '=', 'AL')
|
|
|
+ ->where('u.estatus', '=', 'Activo');
|
|
|
+ })
|
|
|
+ ->join('materias as m', function ($join) use ($idMateria, $idGradoGrupo, $esGrupo) {
|
|
|
+ $join->on('m.idEscuela', '=', 'g.idEscuela')
|
|
|
+ ->where('m.idMateria', '=', $idMateria)
|
|
|
+ ->where('m.estado', '=', 'Activo')
|
|
|
+ ->where('m.idGradoGrupoRelacionado', $idGradoGrupo);
|
|
|
})
|
|
|
- ->join('materias as m', function ($join) {
|
|
|
- $join->on('m.idEscuela', '=', 'u.idEscuela')
|
|
|
- ->where(function ($query) {
|
|
|
- $query->where('m.idGradoGrupoRelacionado', '=', DB::raw('g.idGrupo'))
|
|
|
- ->orWhere('m.idGradoGrupoRelacionado', '=', DB::raw('u.grado'));
|
|
|
- });
|
|
|
+ ->leftJoin('boletas_calificaciones as b', function ($join) use ($idMateria) {
|
|
|
+ $join->on('b.idEscuela', '=', 'g.idEscuela')
|
|
|
+ ->on('b.idAlumnoBoletaCalificaciones', '=', 'g.idUsuario')
|
|
|
+ ->where('b.idMateriaBoletaCalificaciones', '=', $idMateria)
|
|
|
+ ->where('b.estado', '=', 'Activo');
|
|
|
})
|
|
|
- // ->join('boletas_calificaciones as b', function ($join) {
|
|
|
- // $join->on('b.idEscuela', '=', 'm.idEscuela')
|
|
|
- // ->on('b.idMateriaBoletaCalificaciones', '=', 'm.idMateria');
|
|
|
- // })
|
|
|
- ->where('m.idGradoGrupoRelacionado', $idGradoGrupo)
|
|
|
- // ->where('b.idMateriaBoletaCalificaciones', $idMateria)
|
|
|
+ ->when($esGrupo, function ($query) use ($idGradoGrupo) {
|
|
|
+ // Si es un grupo, filtrar por grupo
|
|
|
+ $query->where('g.idGrupo', $idGradoGrupo);
|
|
|
+ }, function ($query) use ($idGradoGrupo) {
|
|
|
+ // Si es un grado, filtrar por grado
|
|
|
+ $query->where('u.grado', $idGradoGrupo);
|
|
|
+ })
|
|
|
+ ->where('g.estado', 'Activo')
|
|
|
->select([
|
|
|
'g.idEscuela',
|
|
|
'g.idGrupo',
|
|
|
@@ -279,28 +293,15 @@ class RegistroCalicaciones extends Controller
|
|
|
'm.idMateria',
|
|
|
'm.nombreMateria',
|
|
|
'm.idGradoGrupoRelacionado',
|
|
|
- // 'b.idMateriaBoletaCalificaciones',
|
|
|
- // 'b.idPeriodoBoletaCalificaciones',
|
|
|
- // 'b.calificacion'
|
|
|
- ])
|
|
|
- ->groupBy([
|
|
|
- 'g.idEscuela',
|
|
|
- 'g.idGrupo',
|
|
|
- 'g.idUsuario',
|
|
|
- 'u.primerNombre',
|
|
|
- 'u.segundoNombre',
|
|
|
- 'u.apellidoPaterno',
|
|
|
- 'u.apellidoMaterno',
|
|
|
- 'u.grado',
|
|
|
- 'm.idMateria',
|
|
|
- 'm.nombreMateria',
|
|
|
- 'm.idGradoGrupoRelacionado',
|
|
|
- // 'b.idMateriaBoletaCalificaciones',
|
|
|
- // 'b.idPeriodoBoletaCalificaciones',
|
|
|
- // 'b.calificacion'
|
|
|
+ 'b.idPeriodoBoletaCalificaciones',
|
|
|
+ 'b.calificacion'
|
|
|
])
|
|
|
+ ->orderBy('u.apellidoPaterno')
|
|
|
+ ->orderBy('u.apellidoMaterno')
|
|
|
+ ->orderBy('u.primerNombre')
|
|
|
->get();
|
|
|
|
|
|
return response()->json($calificaciones, 200);
|
|
|
}
|
|
|
+
|
|
|
}
|