Commit 98aba5fd by Denys Tito

feat(estudiantes): sincronizar turno y documentos firmados de la matrícula

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
parent 379d6018
...@@ -16,6 +16,7 @@ type Student struct { ...@@ -16,6 +16,7 @@ type Student struct {
Branch *string `bson:"student_branch"` Branch *string `bson:"student_branch"`
Level *string `bson:"student_level"` Level *string `bson:"student_level"`
Grade *string `bson:"student_grade"` Grade *string `bson:"student_grade"`
Shift *string `bson:"student_shift"`
ClassroomAttendanceID *int `bson:"student_classroom_attendance_id"` ClassroomAttendanceID *int `bson:"student_classroom_attendance_id"`
PeriodID int `bson:"student_period_id"` PeriodID int `bson:"student_period_id"`
CicleID int `bson:"student_cicle_id"` CicleID int `bson:"student_cicle_id"`
...@@ -23,6 +24,12 @@ type Student struct { ...@@ -23,6 +24,12 @@ type Student struct {
EnrollmentPhotoURL *string `bson:"student_enrollment_photo_url"` EnrollmentPhotoURL *string `bson:"student_enrollment_photo_url"`
EnrollmentDate *time.Time `bson:"student_enrollment_date"` EnrollmentDate *time.Time `bson:"student_enrollment_date"`
ClassroomBranchID *int `bson:"student_classroom_branch_id"` ClassroomBranchID *int `bson:"student_classroom_branch_id"`
SignedInsuranceWaiver bool `bson:"firmo_exoneracion_de_seguro"`
SignedEducationalServiceTerms bool `bson:"firmo_reglamento_de_pensiones"`
SignedEnrollmentHealthForm bool `bson:"firmo_ficha_matricula_salud"`
SignedCSEComplementaryInfo bool `bson:"firmo_cse"`
SignedDataProtection bool `bson:"firmo_proteccion_datos"`
SignedInternalRegulations bool `bson:"firmo_reglamento"`
CreatedAt time.Time `bson:"created_at"` CreatedAt time.Time `bson:"created_at"`
UpdatedAt time.Time `bson:"updated_at"` UpdatedAt time.Time `bson:"updated_at"`
RowHash string `bson:"row_hash,omitempty" json:"-"` RowHash string `bson:"row_hash,omitempty" json:"-"`
......
...@@ -17,13 +17,20 @@ SELECT e.estudiante_id as student_id, ...@@ -17,13 +17,20 @@ SELECT e.estudiante_id as student_id,
public.to_camel_case(se.sede_nombre) as student_branch, public.to_camel_case(se.sede_nombre) as student_branch,
public.to_camel_case(nivel.catalogo_siiaa_nombre) as student_level, public.to_camel_case(nivel.catalogo_siiaa_nombre) as student_level,
public.to_camel_case(grado.grado_sigla) as student_grade, public.to_camel_case(grado.grado_sigla) as student_grade,
turno.catalogo_siiaa_nombre as student_shift,
ma.aula_id_asiste as student_classroom_attendance_id, ma.aula_id_asiste as student_classroom_attendance_id,
14 as student_period_id, 14 as student_period_id,
28 as student_cicle_id, 28 as student_cicle_id,
ma.matricula_id as enrollment_id, ma.matricula_id as enrollment_id,
foto.requisito_url as student_enrollment_photo_url, foto.requisito_url as student_enrollment_photo_url,
ma.matricula_fecha as student_enrollment_date, ma.matricula_fecha as student_enrollment_date,
aula_sede.sede_id as student_classroom_branch_id aula_sede.sede_id as student_classroom_branch_id,
COALESCE(ma.firmo_exoneracion_de_seguro,false) as firmo_exoneracion_de_seguro,
COALESCE(ma.firmo_reglamento_de_pensiones,false) as firmo_reglamento_de_pensiones,
COALESCE(ma.firmo_ficha_matricula_salud,false) as firmo_ficha_matricula_salud,
COALESCE(ma.firmo_cse,false) as firmo_cse,
COALESCE(ma.firmo_proteccion_datos,false) as firmo_proteccion_datos,
COALESCE(ma.firmo_reglamento,false) as firmo_reglamento
FROM matricula.ma_estudiante e FROM matricula.ma_estudiante e
INNER JOIN persona.pe_persona pp ON e.persona_id = pp.persona_id INNER JOIN persona.pe_persona pp ON e.persona_id = pp.persona_id
INNER JOIN general.gn_catalogo_siiaa sexo on pp.sexo_id = sexo.catalogo_siiaa_id INNER JOIN general.gn_catalogo_siiaa sexo on pp.sexo_id = sexo.catalogo_siiaa_id
...@@ -32,6 +39,7 @@ FROM matricula.ma_estudiante e ...@@ -32,6 +39,7 @@ FROM matricula.ma_estudiante e
INNER JOIN administracion.ad_sede se on ac.sede_id = se.sede_id INNER JOIN administracion.ad_sede se on ac.sede_id = se.sede_id
INNER JOIN general.gn_catalogo_siiaa nivel on ac.nivel_id = nivel.catalogo_siiaa_id INNER JOIN general.gn_catalogo_siiaa nivel on ac.nivel_id = nivel.catalogo_siiaa_id
INNER JOIN academico.ac_grado grado on ac.grado_id = grado.grado_id INNER JOIN academico.ac_grado grado on ac.grado_id = grado.grado_id
LEFT JOIN general.gn_catalogo_siiaa turno on ac.turno_id = turno.catalogo_siiaa_id
LEFT JOIN academico.ac_aula aula_asiste on aula_asiste.aula_id = ma.aula_id_asiste LEFT JOIN academico.ac_aula aula_asiste on aula_asiste.aula_id = ma.aula_id_asiste
LEFT JOIN administracion.ad_sede aula_sede on aula_sede.sede_id = aula_asiste.sede_id LEFT JOIN administracion.ad_sede aula_sede on aula_sede.sede_id = aula_asiste.sede_id
LEFT JOIN LATERAL (SELECT fr.requisito_url LEFT JOIN LATERAL (SELECT fr.requisito_url
......
...@@ -55,6 +55,7 @@ func FetchStudentBasics(ctx context.Context, pool *Pool, query string) (map[int] ...@@ -55,6 +55,7 @@ func FetchStudentBasics(ctx context.Context, pool *Pool, query string) (map[int]
branch *string branch *string
level *string level *string
grade *string grade *string
shift *string
classroomAttendanceID *int classroomAttendanceID *int
periodID int periodID int
cicleID int cicleID int
...@@ -62,11 +63,18 @@ func FetchStudentBasics(ctx context.Context, pool *Pool, query string) (map[int] ...@@ -62,11 +63,18 @@ func FetchStudentBasics(ctx context.Context, pool *Pool, query string) (map[int]
enrollmentPhotoURL *string enrollmentPhotoURL *string
enrollmentDate *time.Time enrollmentDate *time.Time
classroomBranchID *int classroomBranchID *int
signedInsuranceWaiver bool
signedEducationalServiceTerms bool
signedEnrollmentHealthForm bool
signedCSEComplementaryInfo bool
signedDataProtection bool
signedInternalRegulations bool
) )
if err := rows.Scan(&studentID, &studentCode, &studentInternalCode, &paternalLastName, &maternalLastName, if err := rows.Scan(&studentID, &studentCode, &studentInternalCode, &paternalLastName, &maternalLastName,
&name, &dni, &birthday, &email, &genre, &branch, &level, &name, &dni, &birthday, &email, &genre, &branch, &level,
&grade, &classroomAttendanceID, &periodID, &cicleID, &enrollmentID, &enrollmentPhotoURL, &grade, &shift, &classroomAttendanceID, &periodID, &cicleID, &enrollmentID, &enrollmentPhotoURL,
&enrollmentDate, &classroomBranchID); err != nil { &enrollmentDate, &classroomBranchID,
&signedInsuranceWaiver, &signedEducationalServiceTerms, &signedEnrollmentHealthForm, &signedCSEComplementaryInfo, &signedDataProtection, &signedInternalRegulations); err != nil {
return nil, nil, fmt.Errorf("scan student row: %w", err) return nil, nil, fmt.Errorf("scan student row: %w", err)
} }
...@@ -84,6 +92,7 @@ func FetchStudentBasics(ctx context.Context, pool *Pool, query string) (map[int] ...@@ -84,6 +92,7 @@ func FetchStudentBasics(ctx context.Context, pool *Pool, query string) (map[int]
Branch: branch, Branch: branch,
Level: level, Level: level,
Grade: grade, Grade: grade,
Shift: shift,
ClassroomAttendanceID: classroomAttendanceID, ClassroomAttendanceID: classroomAttendanceID,
PeriodID: periodID, PeriodID: periodID,
CicleID: cicleID, CicleID: cicleID,
...@@ -91,6 +100,12 @@ func FetchStudentBasics(ctx context.Context, pool *Pool, query string) (map[int] ...@@ -91,6 +100,12 @@ func FetchStudentBasics(ctx context.Context, pool *Pool, query string) (map[int]
EnrollmentPhotoURL: enrollmentPhotoURL, EnrollmentPhotoURL: enrollmentPhotoURL,
EnrollmentDate: enrollmentDate, EnrollmentDate: enrollmentDate,
ClassroomBranchID: classroomBranchID, ClassroomBranchID: classroomBranchID,
SignedInsuranceWaiver: signedInsuranceWaiver,
SignedEducationalServiceTerms: signedEducationalServiceTerms,
SignedEnrollmentHealthForm: signedEnrollmentHealthForm,
SignedCSEComplementaryInfo: signedCSEComplementaryInfo,
SignedDataProtection: signedDataProtection,
SignedInternalRegulations: signedInternalRegulations,
} }
order = append(order, studentID) order = append(order, studentID)
} }
......
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