Skip to content

Commit e7987fe

Browse files
committed
fix fn5E0 eliminar existData y fix fn8F2 casos sin retorno
1 parent 84da868 commit e7987fe

2 files changed

Lines changed: 44 additions & 108 deletions

File tree

  • ede/ede/validation_functions
    • fn5_registro_control_asignaturas
    • fn8_registro_anotaciones_convivencia_escolar_por_estudiante

ede/ede/validation_functions/fn5_registro_control_asignaturas/fn5E0.py

Lines changed: 32 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -35,81 +35,8 @@ def fn5E0(conn, return_dict):
3535
]
3636
"""
3737
_r = False
38-
_ExistData = []
39-
try:
40-
_ExistData = ejecutar_sql(conn, """--sql
41-
SELECT DISTINCT
42-
rae.Date, -- fecha completa de la clase
43-
strftime('%Y-%m-%d', rae.Date) as 'fecha', -- rescata solo la fecha desde rae.Date
44-
strftime('%H:%M', rae.Date, substr(rae.Date,length(rae.Date)-5,6)) as 'hora', -- rescata solo la hora desde rae.Date
45-
CASE
46-
WHEN strftime('%w', rae.Date) = '0' THEN 'Domingo'
47-
WHEN strftime('%w', rae.Date) = '1' THEN 'Lunes'
48-
WHEN strftime('%w', rae.Date) = '2' THEN 'Martes'
49-
WHEN strftime('%w', rae.Date) = '3' THEN 'Miércoles'
50-
WHEN strftime('%w', rae.Date) = '4' THEN 'Jueves'
51-
WHEN strftime('%w', rae.Date) = '5' THEN 'Viernes'
52-
WHEN strftime('%w', rae.Date) = '6' THEN 'Sabado'
53-
END as 'diaSemana', -- rescata solo el dpia de la semana desde rae.Date
54-
count(refattendancestatusid) as 'totalEstudiantes', -- Cantidad total de estudiantes
55-
sum(CASE WHEN refattendancestatusid IN (1) THEN 1 ELSE 0 END) as 'estudiantesPresentes',
56-
group_concat(CASE WHEN refattendancestatusid IN (1) THEN Identifier END) as 'estudiantesPresentesNumLista',
57-
sum(CASE WHEN refattendancestatusid IN (2,3) THEN 1 ELSE 0 END) as 'estudiantesAusentes',
58-
group_concat(CASE WHEN refattendancestatusid IN (2,3) THEN Identifier END) as 'estudiantesAusentesNumLista',
59-
sum(CASE WHEN refattendancestatusid IN (4) THEN 1 ELSE 0 END) as 'estudiantesRetrasados',
60-
group_concat(CASE WHEN refattendancestatusid IN (4) THEN Identifier END) as 'estudiantesRetrasadosNumLista',
61-
count(rae.digitalRandomKey) as 'firmadoEnClases'
62-
FROM Organization O
63-
OUTER LEFT JOIN RefOrganizationType rot
64-
ON O.RefOrganizationTypeId = rot.RefOrganizationTypeId
65-
AND O.RefOrganizationTypeId IN (
66-
SELECT RefOrganizationTypeId
67-
FROM RefOrganizationType
68-
WHERE Description IN ('Course Section')
69-
)
70-
OUTER LEFT JOIN OrganizationPersonRole opr
71-
ON O.OrganizationId = opr.OrganizationId
72-
AND opr.RecordEndDateTime IS NULL
73-
OUTER LEFT JOIN RoleAttendanceEvent rae
74-
ON opr.OrganizationPersonRoleId = rae.OrganizationPersonRoleId
75-
AND rae.RecordEndDateTime IS NULL
76-
OUTER LEFT JOIN PersonIdentifier pid
77-
ON opr.personId = pid.personId
78-
AND pid.refPersonIdentificationSystemId IN (
79-
SELECT refPersonIdentificationSystemId
80-
FROM refPersonIdentificationSystem
81-
WHERE Code IN ('listNumber')
82-
)
83-
AND pid.RecordEndDateTime IS NULL
84-
OUTER LEFT JOIN Role rol
85-
ON opr.RoleId = rol.RoleId
86-
AND opr.RoleId IN (
87-
SELECT RoleId
88-
FROM Role
89-
WHERE Name IN ('Estudiante')
90-
)
91-
OUTER LEFT JOIN OrganizationCalendar oc
92-
ON O.OrganizationId = oc.OrganizationId
93-
AND oc.RecordEndDateTime IS NULL
94-
OUTER LEFT JOIN OrganizationCalendarSession ocs
95-
ON oc.OrganizationCalendarId = ocs.OrganizationCalendarId
96-
AND ocs.RecordEndDateTime IS NULL
97-
OUTER LEFT JOIN CourseSectionSchedule css
98-
ON O.OrganizationId = css.OrganizationId
99-
AND css.RecordEndDateTime IS NULL
100-
WHERE
101-
Date is not NULL
102-
GROUP BY rae.Date
103-
""")
104-
if(not _ExistData or len(_ExistData) == 0):
105-
raise Exception("No hay registros de información")
106-
except Exception as e:
107-
logger.info(f"S/Datos")
108-
_r = True
109-
logger.info(f'Sin asistencia por bloque: {e}')
110-
return_dict[getframeinfo(currentframe()).function] = True
111-
return True
11238
try:
39+
logger.info(f"A ejecutar asistencia")
11340
asistencia = ejecutar_sql(conn, """--sql
11441
/*
11542
6.2 Contenido mínimo, letra b.2 -> validar el registro de asistencia bloque a bloque
@@ -127,9 +54,9 @@ def fn5E0(conn, return_dict):
12754
*/
12855
SELECT DISTINCT
12956
--group_concat(rae.Date),
130-
rae.Date, -- fecha completa de la clase
131-
strftime('%Y-%m-%d', rae.Date) as 'fecha', -- rescata solo la fecha desde rae.Date
132-
strftime('%H:%M', rae.Date, substr(rae.Date,length(rae.Date)-5,6)) as 'hora', -- rescata solo la hora desde rae.Date
57+
rae.Date, -- 00 fecha completa de la clase
58+
DATE(rae.Date) as 'fecha', -- 01 rescata solo la fecha desde rae.Date
59+
strftime('%H:%M', rae.Date, substr(rae.Date,length(rae.Date)-5,6)) as 'hora', -- 02 rescata solo la hora desde rae.Date
13360
CASE
13461
WHEN strftime('%w', rae.Date) = '0' THEN 'Domingo'
13562
WHEN strftime('%w', rae.Date) = '1' THEN 'Lunes'
@@ -138,44 +65,43 @@ def fn5E0(conn, return_dict):
13865
WHEN strftime('%w', rae.Date) = '4' THEN 'Jueves'
13966
WHEN strftime('%w', rae.Date) = '5' THEN 'Viernes'
14067
WHEN strftime('%w', rae.Date) = '6' THEN 'Sabado'
141-
END as 'diaSemana', -- rescata solo el dia de la semana desde rae.Date
142-
count(refattendancestatusid) as 'totalEstudiantes', -- Cantidad total de estudiantes
143-
sum(CASE WHEN refattendancestatusid IN (1) THEN 1 ELSE 0 END) as 'estudiantesPresentes',
144-
group_concat(CASE WHEN refattendancestatusid IN (1) THEN Identifier END) as 'estudiantesPresentesNumLista',
145-
sum(CASE WHEN refattendancestatusid IN (2,3) THEN 1 ELSE 0 END) as 'estudiantesAusentes',
146-
group_concat(CASE WHEN refattendancestatusid IN (2,3) THEN Identifier END) as 'estudiantesAusentesNumLista',
147-
sum(CASE WHEN refattendancestatusid IN (4) THEN 1 ELSE 0 END) as 'estudiantesRetrasados',
148-
group_concat(CASE WHEN refattendancestatusid IN (4) THEN Identifier END) as 'estudiantesRetrasadosNumLista',
149-
count(rae.digitalRandomKey) as 'firmadoEnClases'
68+
END as 'diaSemana', -- 03 rescata solo el dia de la semana desde rae.Date
69+
count(refattendancestatusid) as 'totalEstudiantes', -- 04 Cantidad total de estudiantes
70+
sum(CASE WHEN refattendancestatusid IN (1) THEN 1 ELSE 0 END) as 'estudiantesPresentes', -- 05
71+
--group_concat(CASE WHEN refattendancestatusid IN (1) THEN Identifier END) as 'estudiantesPresentesNumLista',
72+
sum(CASE WHEN refattendancestatusid IN (2,3) THEN 1 ELSE 0 END) as 'estudiantesAusentes', -- 06
73+
--group_concat(CASE WHEN refattendancestatusid IN (2,3) THEN Identifier END) as 'estudiantesAusentesNumLista',
74+
sum(CASE WHEN refattendancestatusid IN (4) THEN 1 ELSE 0 END) as 'estudiantesRetrasados', -- 07
75+
--group_concat(CASE WHEN refattendancestatusid IN (4) THEN Identifier END) as 'estudiantesRetrasadosNumLista',
76+
count(rae.digitalRandomKey) as 'firmadoEnClases' -- 08
15077
FROM Organization O
15178
JOIN RefOrganizationType rot
15279
ON O.RefOrganizationTypeId = rot.RefOrganizationTypeId
153-
AND O.RefOrganizationTypeId IN (
80+
AND O.RefOrganizationTypeId = (
15481
SELECT RefOrganizationTypeId
15582
FROM RefOrganizationType
156-
WHERE Description IN ('Course Section')
83+
WHERE Description = 'Course Section'
15784
)
85+
AND O.RecordEndDateTime IS NULL
15886
JOIN OrganizationPersonRole opr
15987
ON O.OrganizationId = opr.OrganizationId
88+
AND opr.RoleId = (
89+
SELECT RoleId
90+
FROM Role
91+
WHERE Name = 'Estudiante'
92+
)
16093
AND opr.RecordEndDateTime IS NULL
16194
JOIN RoleAttendanceEvent rae
16295
ON opr.OrganizationPersonRoleId = rae.OrganizationPersonRoleId
16396
AND rae.RecordEndDateTime IS NULL
16497
JOIN PersonIdentifier pid
16598
ON opr.personId = pid.personId
166-
AND pid.refPersonIdentificationSystemId IN (
99+
AND pid.refPersonIdentificationSystemId = (
167100
SELECT refPersonIdentificationSystemId
168101
FROM refPersonIdentificationSystem
169-
WHERE Code IN ('listNumber')
102+
WHERE Code = 'listNumber'
170103
)
171104
AND pid.RecordEndDateTime IS NULL
172-
JOIN Role rol
173-
ON opr.RoleId = rol.RoleId
174-
AND opr.RoleId IN (
175-
SELECT RoleId
176-
FROM Role
177-
WHERE Name IN ('Estudiante')
178-
)
179105
JOIN OrganizationCalendar oc
180106
ON O.OrganizationId = oc.OrganizationId
181107
AND oc.RecordEndDateTime IS NULL
@@ -197,7 +123,7 @@ def fn5E0(conn, return_dict):
197123
ocs.Description NOT NULL
198124
AND
199125
-- Verifica que el indicador sea True, ya que en estos casos corresponde la relación
200-
ocs.AttendanceTermIndicator IN (1)
126+
ocs.AttendanceTermIndicator = 1
201127
AND
202128
-- Verifica que la firma se encuentre cargada en el sistema
203129
rae.digitalRandomKey NOT NULL
@@ -221,6 +147,7 @@ def fn5E0(conn, return_dict):
221147
222148
GROUP BY rae.Date
223149
""")
150+
logger.info(f"Cantidad asistencia: {len(asistencia)}")
224151
except Exception as e:
225152
logger.error(f'Rechazado')
226153
_r = False
@@ -230,12 +157,14 @@ def fn5E0(conn, return_dict):
230157
return False
231158
try:
232159
if(len(asistencia)>0):
160+
logger.info("Entro al if asistencia>0")
233161
totalEstudiantes = list([m[4] for m in asistencia if m[4] is not None])
234162
estudiantesPresentes = list([m[5] for m in asistencia if m[5] is not None])
235-
estudiantesAusentes = list([m[7] for m in asistencia if m[7] is not None])
236-
estudiantesRetrasados = list([m[9] for m in asistencia if m[9] is not None])
237-
firmadoEnClases = list([m[11] for m in asistencia if m[11] is not None])
238-
163+
estudiantesAusentes = list([m[6] for m in asistencia if m[6] is not None])
164+
estudiantesRetrasados = list([m[7] for m in asistencia if m[7] is not None])
165+
firmadoEnClases = list([m[8] for m in asistencia if m[8] is not None])
166+
logger.info(f"Total estudiantes: {len(totalEstudiantes)}")
167+
239168
for idx_,el_ in enumerate(totalEstudiantes):
240169
if(el_ != (estudiantesPresentes[idx_]+estudiantesAusentes[idx_]+estudiantesRetrasados[idx_])):
241170
logger.error(f'Rechazado')
@@ -259,7 +188,7 @@ def fn5E0(conn, return_dict):
259188
return _r
260189
else:
261190
logger.error(f'S/Datos')
262-
_r = False
191+
_r = True
263192
logger.error(f'No hay datos de asignatura')
264193
return_dict[getframeinfo(currentframe()).function] = _r
265194
logger.info(f"{current_process().name} finalizando...")

ede/ede/validation_functions/fn8_registro_anotaciones_convivencia_escolar_por_estudiante/fn8F2.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,11 @@ def fn8F2(conn, return_dict):
112112
ORDER BY I.incidentId
113113
""")
114114
except Exception as e:
115-
logger.info(f"Resultado: {_queryIncident} -> {str(e)}")
116-
logger.error(f"No se pudo ejecutar la consulta: {str(e)}")
117115
logger.error(f"Rechazado")
118116
_r = False
117+
return_dict[getframeinfo(currentframe()).function] = _r
118+
logger.info(f"{current_process().name} finalizando...")
119+
logger.info(f"Resultado: {_queryIncident} -> {str(e)}")
119120
return _r
120121

121122
if(len(_queryIncident) <= 0):
@@ -223,15 +224,21 @@ def _err(msg): return {
223224

224225
if(len(_e) == 0):
225226
_r = True
227+
logger.info(f'Aprobado')
228+
return_dict[getframeinfo(currentframe()).function] = _r
229+
logger.info(f"{current_process().name} finalizando...")
230+
return _r
226231
else:
227232
_r = False
233+
logger.error(f'Rechazado')
228234
logger.error(_e)
235+
return_dict[getframeinfo(currentframe()).function] = _r
236+
logger.info(f"{current_process().name} finalizando...")
237+
return _r
229238
except Exception as e:
230-
logger.error(f"No se pudo ejecutar la consulta: {str(e)}")
231239
logger.error(f"Rechazado")
232240
_r = False
233-
finally:
234-
logger.info(f'Aprobado') if _r else logger.error(f'Rechazado')
241+
logger.error(f"No se pudo ejecutar la consulta: {str(e)}")
235242
return_dict[getframeinfo(currentframe()).function] = _r
236243
logger.info(f"{current_process().name} finalizando...")
237244
return _r

0 commit comments

Comments
 (0)