Auditoría Excel

This commit is contained in:
Your Name
2025-02-21 13:08:54 -06:00
parent 7b1755c872
commit 6e445bfbe6
2 changed files with 54 additions and 13 deletions

View File

@@ -71,6 +71,7 @@ try {
'periodo_id' 'periodo_id'
)); ));
$DaysWeek = implode(',', array_values(array_unique(array_map( $DaysWeek = implode(',', array_values(array_unique(array_map(
fn(DateTime $date) => (int) $date->format('w'), fn(DateTime $date) => (int) $date->format('w'),
iterator_to_array(new DatePeriod( iterator_to_array(new DatePeriod(
@@ -80,7 +81,7 @@ try {
)) ))
)))); ))));
$HorariosID = implode(',', array_column($db->query( $_SESSION['horarios'] = $HorariosID = implode(',', array_column($db->query(
"SELECT horario_id FROM horario "SELECT horario_id FROM horario
WHERE horario_dia IN ($DaysWeek) WHERE horario_dia IN ($DaysWeek)
AND periodo_id IN ($PeriodosHorarios) AND periodo_id IN ($PeriodosHorarios)
@@ -105,8 +106,8 @@ try {
SELECT SELECT
$RelevantColumns, $RelevantColumns,
CASE CASE
WHEN registro.registro_retardo THEN 'warning'::text WHEN registro.registro_retardo THEN 'warning'
ELSE 'primary'::text ELSE 'primary'
END AS color END AS color
FROM horario FROM horario
NATURAL JOIN fechas NATURAL JOIN fechas
@@ -115,7 +116,8 @@ try {
NATURAL JOIN salon NATURAL JOIN salon
LEFT JOIN REGISTRO USING (profesor_id, registro_fecha_ideal, horario_id) LEFT JOIN REGISTRO USING (profesor_id, registro_fecha_ideal, horario_id)
LEFT JOIN usuario ON usuario.usuario_id = REGISTRO.supervisor_id LEFT JOIN usuario ON usuario.usuario_id = REGISTRO.supervisor_id
JOIN estado_supervisor ON estado_supervisor.estado_supervisor_id = COALESCE(REGISTRO.estado_supervisor_id, 0)", JOIN estado_supervisor ON estado_supervisor.estado_supervisor_id = COALESCE(REGISTRO.estado_supervisor_id, 0)
ORDER BY fechas.registro_fecha_ideal, horario_hora",
$fechas $fechas
); );

View File

@@ -21,13 +21,52 @@ $profesor_clave = isset($params['profesor'])
: null; : null;
$data = $db->query( $data = $db->query(
"SELECT * FROM auditoria_mat "WITH fechas AS (
WHERE facultad_id = COALESCE(:facultad_id, facultad_id) SELECT fechas_clase(
AND profesor_clave = COALESCE(:profesor_clave, profesor_clave) _horario_id => h.horario_id,
AND REGISTRO_FECHA_IDEAL + HORARIO_HORA between :fecha_inicio AND :fecha_fin _todos => false,
ORDER BY REGISTRO_FECHA_IDEAL, HORARIO_HORA", _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
fechas.registro_fecha_ideal,
profesor_clave,
profesor_nombre,
profesor_correo,
facultad_nombre,
materia_nombre,
carrera_nombre,
horario_grupo,
horario_hora,
horario_fin,
salon,
salon_array,
registro_fecha,
registro_retardo,
usuario_nombre,
registro_fecha_supervisor,
registro.estado_supervisor_id,
comentario,
justificacion
FROM horario
NATURAL JOIN fechas
NATURAL JOIN horario_profesor
NATURAL JOIN profesor
NATURAL JOIN salon_view_mat
NATURAL JOIN facultad
NATURAL JOIN materia
NATURAL JOIN carrera
LEFT JOIN REGISTRO USING (profesor_id, registro_fecha_ideal, horario_id)
LEFT JOIN usuario ON usuario.usuario_id = REGISTRO.supervisor_id
WHERE profesor_clave = COALESCE(:profesor_clave, profesor_clave)
AND horario.facultad_id = COALESCE(:facultad_id, horario.facultad_id)
ORDER BY fechas.registro_fecha_ideal, horario_hora",
[ [
'facultad_id' => $user->facultad['facultad_id'], 'facultad_id' => $user->facultad['facultad_id'] ?? $params['facultad_id'],
'profesor_clave' => $profesor_clave, 'profesor_clave' => $profesor_clave,
'fecha_inicio' => $_SESSION['fecha_inicio'], 'fecha_inicio' => $_SESSION['fecha_inicio'],
'fecha_fin' => $_SESSION['fecha_fin'], 'fecha_fin' => $_SESSION['fecha_fin'],
@@ -70,9 +109,9 @@ $data_excel = array(
"CLAVE" => 'profesor_clave', "CLAVE" => 'profesor_clave',
"PROFESOR" => 'profesor_nombre', "PROFESOR" => 'profesor_nombre',
"CORREO" => 'profesor_correo', "CORREO" => 'profesor_correo',
"FACULTAD" => 'facultad', "FACULTAD" => 'facultad_nombre',
"MATERIA" => 'materia', "MATERIA" => 'materia_nombre',
"CARRERA / PROGRAMA" => 'carrera', "CARRERA / PROGRAMA" => 'carrera_nombre',
"GRUPO" => 'horario_grupo', "GRUPO" => 'horario_grupo',
"HORARIO" => 'horario_hora_completa', "HORARIO" => 'horario_hora_completa',
"SALÓN" => 'salon', "SALÓN" => 'salon',