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 {
Branch *string `bson:"student_branch"`
Level *string `bson:"student_level"`
Grade *string `bson:"student_grade"`
Shift *string `bson:"student_shift"`
ClassroomAttendanceID *int `bson:"student_classroom_attendance_id"`
PeriodID int `bson:"student_period_id"`
CicleID int `bson:"student_cicle_id"`
......@@ -23,6 +24,12 @@ type Student struct {
EnrollmentPhotoURL *string `bson:"student_enrollment_photo_url"`
EnrollmentDate *time.Time `bson:"student_enrollment_date"`
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"`
UpdatedAt time.Time `bson:"updated_at"`
RowHash string `bson:"row_hash,omitempty" json:"-"`
......
......@@ -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(nivel.catalogo_siiaa_nombre) as student_level,
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,
14 as student_period_id,
28 as student_cicle_id,
ma.matricula_id as enrollment_id,
foto.requisito_url as student_enrollment_photo_url,
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
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
......@@ -32,6 +39,7 @@ FROM matricula.ma_estudiante e
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 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 administracion.ad_sede aula_sede on aula_sede.sede_id = aula_asiste.sede_id
LEFT JOIN LATERAL (SELECT fr.requisito_url
......
......@@ -55,6 +55,7 @@ func FetchStudentBasics(ctx context.Context, pool *Pool, query string) (map[int]
branch *string
level *string
grade *string
shift *string
classroomAttendanceID *int
periodID int
cicleID int
......@@ -62,11 +63,18 @@ func FetchStudentBasics(ctx context.Context, pool *Pool, query string) (map[int]
enrollmentPhotoURL *string
enrollmentDate *time.Time
classroomBranchID *int
signedInsuranceWaiver bool
signedEducationalServiceTerms bool
signedEnrollmentHealthForm bool
signedCSEComplementaryInfo bool
signedDataProtection bool
signedInternalRegulations bool
)
if err := rows.Scan(&studentID, &studentCode, &studentInternalCode, &paternalLastName, &maternalLastName,
&name, &dni, &birthday, &email, &genre, &branch, &level,
&grade, &classroomAttendanceID, &periodID, &cicleID, &enrollmentID, &enrollmentPhotoURL,
&enrollmentDate, &classroomBranchID); err != nil {
&grade, &shift, &classroomAttendanceID, &periodID, &cicleID, &enrollmentID, &enrollmentPhotoURL,
&enrollmentDate, &classroomBranchID,
&signedInsuranceWaiver, &signedEducationalServiceTerms, &signedEnrollmentHealthForm, &signedCSEComplementaryInfo, &signedDataProtection, &signedInternalRegulations); err != nil {
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]
Branch: branch,
Level: level,
Grade: grade,
Shift: shift,
ClassroomAttendanceID: classroomAttendanceID,
PeriodID: periodID,
CicleID: cicleID,
......@@ -91,6 +100,12 @@ func FetchStudentBasics(ctx context.Context, pool *Pool, query string) (map[int]
EnrollmentPhotoURL: enrollmentPhotoURL,
EnrollmentDate: enrollmentDate,
ClassroomBranchID: classroomBranchID,
SignedInsuranceWaiver: signedInsuranceWaiver,
SignedEducationalServiceTerms: signedEducationalServiceTerms,
SignedEnrollmentHealthForm: signedEnrollmentHealthForm,
SignedCSEComplementaryInfo: signedCSEComplementaryInfo,
SignedDataProtection: signedDataProtection,
SignedInternalRegulations: signedInternalRegulations,
}
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