Commit 92a5e16f by Denys Tito

feat(horario): agregar sede y tipo de grado del aula al documento c_horario

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
parent 91502cf8
...@@ -31,6 +31,8 @@ type HorarioAula struct { ...@@ -31,6 +31,8 @@ type HorarioAula struct {
TurnoNombre string `bson:"turno_nombre" json:"turno_nombre"` TurnoNombre string `bson:"turno_nombre" json:"turno_nombre"`
SeccionID int `bson:"seccion_id" json:"seccion_id"` SeccionID int `bson:"seccion_id" json:"seccion_id"`
SeccionNombre string `bson:"seccion_nombre" json:"seccion_nombre"` SeccionNombre string `bson:"seccion_nombre" json:"seccion_nombre"`
SedeNombre string `bson:"sede_nombre" json:"sede_nombre"`
TipoGradoNombre string `bson:"tipo_grado_nombre" json:"tipo_grado_nombre"`
} }
type Horario struct { type Horario struct {
......
...@@ -12,7 +12,8 @@ WITH alumnos AS ( ...@@ -12,7 +12,8 @@ WITH alumnos AS (
SELECT m.matricula_id, m.estudiante_id, SELECT m.matricula_id, m.estudiante_id,
au.aula_id, au.aula_nombre, au.aula_id, au.aula_nombre,
au.periodo_academico_id, au.ciclo_id, au.periodo_academico_id, au.ciclo_id,
au.nivel_id, au.grado_id, au.turno_id, au.seccion_id au.nivel_id, au.grado_id, au.turno_id, au.seccion_id,
au.sede_id, au.tipo_grado_id
FROM matricula.ma_matricula m FROM matricula.ma_matricula m
JOIN academico.ac_aula au ON au.aula_id = m.aula_id_asiste JOIN academico.ac_aula au ON au.aula_id = m.aula_id_asiste
WHERE NOT m.matricula_retirado WHERE NOT m.matricula_retirado
...@@ -64,6 +65,8 @@ SELECT a.matricula_id, ...@@ -64,6 +65,8 @@ SELECT a.matricula_id,
tur.catalogo_siiaa_nombre AS turno_nombre, tur.catalogo_siiaa_nombre AS turno_nombre,
a.seccion_id, a.seccion_id,
sec.catalogo_siiaa_nombre AS seccion_nombre, sec.catalogo_siiaa_nombre AS seccion_nombre,
se.sede_nombre,
tg.catalogo_siiaa_nombre AS tipo_grado_nombre,
COALESCE(b.bloques, '[]'::jsonb) AS bloques COALESCE(b.bloques, '[]'::jsonb) AS bloques
FROM alumnos a FROM alumnos a
LEFT JOIN general.gn_periodo_academico per ON per.periodo_academico_id = a.periodo_academico_id LEFT JOIN general.gn_periodo_academico per ON per.periodo_academico_id = a.periodo_academico_id
...@@ -72,6 +75,8 @@ FROM alumnos a ...@@ -72,6 +75,8 @@ FROM alumnos a
LEFT JOIN academico.ac_grado g ON g.grado_id = a.grado_id LEFT JOIN academico.ac_grado g ON g.grado_id = a.grado_id
LEFT JOIN general.gn_catalogo_siiaa tur ON tur.catalogo_siiaa_id = a.turno_id LEFT JOIN general.gn_catalogo_siiaa tur ON tur.catalogo_siiaa_id = a.turno_id
LEFT JOIN general.gn_catalogo_siiaa sec ON sec.catalogo_siiaa_id = a.seccion_id LEFT JOIN general.gn_catalogo_siiaa sec ON sec.catalogo_siiaa_id = a.seccion_id
LEFT JOIN administracion.ad_sede se ON se.sede_id = a.sede_id
LEFT JOIN general.gn_catalogo_siiaa tg ON tg.catalogo_siiaa_id = a.tipo_grado_id
LEFT JOIN bloques b ON b.aula_id = a.aula_id LEFT JOIN bloques b ON b.aula_id = a.aula_id
ORDER BY a.matricula_id ORDER BY a.matricula_id
` `
...@@ -83,7 +88,8 @@ WITH alumnos AS ( ...@@ -83,7 +88,8 @@ WITH alumnos AS (
SELECT m.matricula_id, m.estudiante_id, SELECT m.matricula_id, m.estudiante_id,
au.aula_id, au.aula_nombre, au.aula_id, au.aula_nombre,
au.periodo_academico_id, au.ciclo_id, au.periodo_academico_id, au.ciclo_id,
au.nivel_id, au.grado_id, au.turno_id, au.seccion_id au.nivel_id, au.grado_id, au.turno_id, au.seccion_id,
au.sede_id, au.tipo_grado_id
FROM matricula.ma_matricula m FROM matricula.ma_matricula m
JOIN academico.ac_aula au ON au.aula_id = m.aula_id_asiste JOIN academico.ac_aula au ON au.aula_id = m.aula_id_asiste
WHERE NOT m.matricula_retirado WHERE NOT m.matricula_retirado
...@@ -136,6 +142,8 @@ SELECT a.matricula_id, ...@@ -136,6 +142,8 @@ SELECT a.matricula_id,
tur.catalogo_siiaa_nombre AS turno_nombre, tur.catalogo_siiaa_nombre AS turno_nombre,
a.seccion_id, a.seccion_id,
sec.catalogo_siiaa_nombre AS seccion_nombre, sec.catalogo_siiaa_nombre AS seccion_nombre,
se.sede_nombre,
tg.catalogo_siiaa_nombre AS tipo_grado_nombre,
COALESCE(b.bloques, '[]'::jsonb) AS bloques COALESCE(b.bloques, '[]'::jsonb) AS bloques
FROM alumnos a FROM alumnos a
LEFT JOIN general.gn_periodo_academico per ON per.periodo_academico_id = a.periodo_academico_id LEFT JOIN general.gn_periodo_academico per ON per.periodo_academico_id = a.periodo_academico_id
...@@ -144,5 +152,7 @@ FROM alumnos a ...@@ -144,5 +152,7 @@ FROM alumnos a
LEFT JOIN academico.ac_grado g ON g.grado_id = a.grado_id LEFT JOIN academico.ac_grado g ON g.grado_id = a.grado_id
LEFT JOIN general.gn_catalogo_siiaa tur ON tur.catalogo_siiaa_id = a.turno_id LEFT JOIN general.gn_catalogo_siiaa tur ON tur.catalogo_siiaa_id = a.turno_id
LEFT JOIN general.gn_catalogo_siiaa sec ON sec.catalogo_siiaa_id = a.seccion_id LEFT JOIN general.gn_catalogo_siiaa sec ON sec.catalogo_siiaa_id = a.seccion_id
LEFT JOIN administracion.ad_sede se ON se.sede_id = a.sede_id
LEFT JOIN general.gn_catalogo_siiaa tg ON tg.catalogo_siiaa_id = a.tipo_grado_id
LEFT JOIN bloques b ON b.aula_id = a.aula_id LEFT JOIN bloques b ON b.aula_id = a.aula_id
` `
...@@ -44,12 +44,14 @@ func scanHorarioRow(row pgx.CollectableRow) (entities.SyncRow, error) { ...@@ -44,12 +44,14 @@ func scanHorarioRow(row pgx.CollectableRow) (entities.SyncRow, error) {
turnoNombre *string turnoNombre *string
seccionID int seccionID int
seccionNombre *string seccionNombre *string
sedeNombre *string
tipoGradoNombre *string
bloquesRaw []byte bloquesRaw []byte
) )
if err := row.Scan(&matriculaID, &estudianteID, &aulaID, &aulaNombre, if err := row.Scan(&matriculaID, &estudianteID, &aulaID, &aulaNombre,
&periodoAcademicoID, &periodoAcademicoNombre, &cicloID, &cicloNombre, &periodoAcademicoID, &periodoAcademicoNombre, &cicloID, &cicloNombre,
&nivelID, &nivelNombre, &gradoID, &gradoSigla, &nivelID, &nivelNombre, &gradoID, &gradoSigla,
&turnoID, &turnoNombre, &seccionID, &seccionNombre, &bloquesRaw); err != nil { &turnoID, &turnoNombre, &seccionID, &seccionNombre, &sedeNombre, &tipoGradoNombre, &bloquesRaw); err != nil {
return entities.SyncRow{}, fmt.Errorf("scan horario row: %w", err) return entities.SyncRow{}, fmt.Errorf("scan horario row: %w", err)
} }
...@@ -77,6 +79,8 @@ func scanHorarioRow(row pgx.CollectableRow) (entities.SyncRow, error) { ...@@ -77,6 +79,8 @@ func scanHorarioRow(row pgx.CollectableRow) (entities.SyncRow, error) {
TurnoNombre: derefString(turnoNombre), TurnoNombre: derefString(turnoNombre),
SeccionID: seccionID, SeccionID: seccionID,
SeccionNombre: derefString(seccionNombre), SeccionNombre: derefString(seccionNombre),
SedeNombre: derefString(sedeNombre),
TipoGradoNombre: derefString(tipoGradoNombre),
}, },
Bloques: bloques, Bloques: bloques,
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment