Query optimizado sin función de fechas_clase.
This commit is contained in:
@@ -22,22 +22,16 @@ $profesor_clave = isset($params['profesor'])
|
||||
|
||||
$data = $db->query(
|
||||
"WITH fechas AS (
|
||||
SELECT fechas_clase(
|
||||
_horario_id => h.horario_id,
|
||||
_todos => false,
|
||||
_fecha_inicio => :fecha_inicio,
|
||||
_fecha_fin => :fecha_fin
|
||||
) AS registro_fecha_ideal, h.horario_id
|
||||
FROM horario h WHERE horario_id IN ({$_SESSION['horarios']})
|
||||
SELECT generate_series(:fecha_inicio, :fecha_fin, '1 day'::INTERVAL)::DATE AS registro_fecha_ideal
|
||||
)
|
||||
SELECT
|
||||
fechas.registro_fecha_ideal,
|
||||
profesor_clave,
|
||||
profesor_nombre,
|
||||
COALESCE(materia_asignacion.materia_asignacion_profesor, profesor.profesor_nombre) AS profesor_nombre,
|
||||
profesor_correo,
|
||||
facultad_nombre,
|
||||
materia_nombre,
|
||||
carrera_nombre,
|
||||
COALESCE(materia_asignacion.materia_asignacion_materia, materia.materia_nombre) AS materia_nombre,
|
||||
COALESCE(materia_asignacion.materia_asignacion_carrera, carrera.carrera_nombre) AS carrera_nombre,
|
||||
horario_grupo,
|
||||
horario_hora,
|
||||
horario_fin,
|
||||
@@ -52,14 +46,16 @@ $data = $db->query(
|
||||
comentario,
|
||||
justificacion
|
||||
FROM horario
|
||||
NATURAL JOIN fechas
|
||||
NATURAL JOIN horario_profesor
|
||||
NATURAL JOIN profesor
|
||||
JOIN fechas ON EXTRACT(DOW FROM fechas.registro_fecha_ideal) = horario_dia
|
||||
NATURAL JOIN salon_view_mat
|
||||
|
||||
NATURAL JOIN facultad
|
||||
NATURAL JOIN materia
|
||||
NATURAL JOIN carrera
|
||||
JOIN facultad ON facultad.facultad_id = COALESCE(horario.facultad_id, 0)
|
||||
LEFT JOIN materia USING (MATERIA_ID)
|
||||
LEFT JOIN carrera USING (carrera_id)
|
||||
|
||||
LEFT JOIN materia_asignacion USING (horario_id)
|
||||
|
||||
LEFT JOIN REGISTRO USING (profesor_id, registro_fecha_ideal, horario_id)
|
||||
LEFT JOIN usuario ON usuario.usuario_id = REGISTRO.supervisor_id
|
||||
@@ -70,6 +66,7 @@ $data = $db->query(
|
||||
(horario_hora, horario_fin)
|
||||
OVERLAPS
|
||||
(COALESCE(:bloque_inicio, horario_hora), COALESCE(:bloque_fin, horario_fin))
|
||||
AND horario_id IN ({$_SESSION['horarios']})
|
||||
ORDER BY fechas.registro_fecha_ideal, horario_hora",
|
||||
[
|
||||
'facultad_id' => $user->facultad['facultad_id'] ?? $params['facultad_id'],
|
||||
|
||||
Reference in New Issue
Block a user