Closed diagutierrezro closed 1 month ago
SubTarea N°1: Ajustar scripts SQL en el CRUD.
Se han modificado las consultas SQL de los modelos 'reporte_general.go' y 'reporte_solicitud.go' respectivamente:
WITH estudiantes AS (
SELECT
trabajo_grado,
MAX(CASE WHEN row_number = 1 THEN estudiante ELSE NULL END) AS id_estudiante,
MAX(CASE WHEN row_number = 2 THEN estudiante ELSE NULL END) AS id_coestudiante
FROM (
SELECT
trabajo_grado,
estudiante,
ROW_NUMBER() OVER (PARTITION BY trabajo_grado ORDER BY estudiante) AS row_number
FROM
academica.estudiante_trabajo_grado
) sub
GROUP BY
trabajo_grado
),
usuarios AS (
SELECT
trabajo_grado,
MAX(CASE WHEN codigo_abreviacion = 'DIRECTOR_PLX' THEN usuario ELSE NULL END) AS docente_director,
MAX(CASE WHEN codigo_abreviacion = 'CODIRECTOR_PLX' THEN usuario ELSE NULL END) AS docente_codirector,
MAX(CASE WHEN codigo_abreviacion = 'EVALUADOR_PLX' THEN usuario ELSE NULL END) AS evaluador
FROM
academica.vinculacion_trabajo_grado
GROUP BY
trabajo_grado
),
notas AS (
SELECT
trabajo_grado,
MAX(CASE WHEN row_number = 1 THEN calificacion ELSE NULL END) AS nota2,
MAX(CASE WHEN row_number = 2 THEN calificacion ELSE NULL END) AS nota1
FROM (
SELECT
trabajo_grado,
calificacion,
ROW_NUMBER() OVER (PARTITION BY trabajo_grado ORDER BY calificacion) AS row_number
FROM
academica.asignatura_trabajo_grado
) sub
GROUP BY
trabajo_grado
)
SELECT
tg.id AS trabajo_grado,
tg.titulo,
tg.modalidad,
tg.estado_trabajo_grado,
est.id_estudiante,
est.id_coestudiante,
atg.area_conocimiento,
usr.docente_director,
usr.docente_codirector,
usr.evaluador,
(SELECT MAX(fecha_creacion)
FROM academica.asignatura_trabajo_grado atg
WHERE atg.trabajo_grado = tg.id
AND atg.codigo_asignatura = 2)
AS fecha_inicio,
(SELECT MAX(fecha_modificacion)
FROM academica.asignatura_trabajo_grado atg
WHERE atg.trabajo_grado = tg.id
AND atg.codigo_asignatura = 2
AND atg.calificacion > 0)
AS fecha_fin,
notas.nota1 AS calificacion_1,
notas.nota2 AS calificacion_2
FROM
academica.trabajo_grado tg
LEFT JOIN
estudiantes est ON tg.id = est.trabajo_grado
LEFT JOIN
academica.areas_trabajo_grado atg ON tg.id = atg.trabajo_grado
LEFT JOIN
academica.vinculacion_trabajo_grado vtg ON tg.id = vtg.trabajo_grado
LEFT JOIN
usuarios usr ON tg.id = usr.trabajo_grado
LEFT JOIN
notas ON tg.id = notas.trabajo_grado
GROUP BY
tg.id, tg.titulo, tg.modalidad, tg.estado_trabajo_grado, est.id_estudiante, est.id_coestudiante, atg.area_conocimiento, usr.docente_director, usr.docente_codirector, usr.evaluador, notas.nota1, notas.nota2
ORDER BY
tg.id DESC`
WITH estudiantes AS (
SELECT
trabajo_grado,
MAX(CASE WHEN row_number = 1 THEN estudiante ELSE NULL END) AS id_estudiante,
MAX(CASE WHEN row_number = 2 THEN estudiante ELSE NULL END) AS id_coestudiante
FROM (
SELECT
trabajo_grado,
estudiante,
ROW_NUMBER() OVER (PARTITION BY trabajo_grado ORDER BY estudiante) AS row_number
FROM
academica.estudiante_trabajo_grado
) sub
GROUP BY
trabajo_grado
),
usuarios AS (
SELECT
trabajo_grado,
MAX(CASE WHEN codigo_abreviacion = 'DIRECTOR_PLX' THEN usuario ELSE NULL END) AS docente_director,
MAX(CASE WHEN codigo_abreviacion = 'CODIRECTOR_PLX' THEN usuario ELSE NULL END) AS docente_codirector,
MAX(CASE WHEN codigo_abreviacion = 'EVALUADOR_PLX' THEN usuario ELSE NULL END) AS evaluador
FROM
academica.vinculacion_trabajo_grado
GROUP BY
trabajo_grado
)
SELECT
stg.id,
stg.trabajo_grado,
tg.titulo,
mts.modalidad,
tg.estado_trabajo_grado,
e.id_estudiante,
e.id_coestudiante,
u.docente_director,
u.docente_codirector,
u.evaluador,
stg.fecha AS fecha_solicitud,
rs.fecha AS fecha_revision,
mts.tipo_solicitud,
rs.justificacion,
rs.estado_solicitud
FROM
academica.solicitud_trabajo_grado stg
JOIN
academica.modalidad_tipo_solicitud mts
ON stg.modalidad_tipo_solicitud = mts.id
JOIN
academica.trabajo_grado tg
ON stg.trabajo_grado = tg.id
LEFT JOIN
academica.respuesta_solicitud rs
ON stg.id = rs.solicitud_trabajo_grado
LEFT JOIN
estudiantes e
ON stg.trabajo_grado = e.trabajo_grado
LEFT JOIN
usuarios u
ON stg.trabajo_grado = u.trabajo_grado
ORDER BY
stg.id DESC
SubTarea N°3: Comprobar funcionamiento correcto del sistema.
Los reportes se socializaron con el usuario, falta desarrollar la vista para obtenerlos, buen trabajo Cristian
Se requiere realizar un ajuste en los scripts SQL de reportes para que en estos no se "quemen" los IDS de consulta y en su lugar se usen los códigos de abreviación. Una vez se realice este ajuste, verificar la lógica en el MID y realizar ajustes en caso de ser necesario.
Sub Tareas
Criterios de aceptación
Dependencias
Está pendiente por parte de @diagutierrezro solicitar hacia los DBA un script para llenar la columna del código de abreviación teniendo en cuenta los ids actuales.
Requerimientos
No aplica
Definition of Ready - DoR
Definition of Done - DoD - Desarrollo