Tenemos un inconveniente al querer inscribir a cursada masivamente > filtramos para que nos traiga los alumnos de la división A (con 50 alumnos): el problema surge acá, ya que entre los alumnos de la división A nos trae algunos alumnos que, en verdad, corresponden a división B.
Revisamos la asignación de alumnos en ambas divisiones y están correctamente asignados. Desde “asignar alumnos a divisiones” no nos aparecen los alumnos de la división B en la A como para eliminarlos. Y figuraban correctamente en la B.
Nos dimos cuenta de esto cuando quisimos inscribir masivamente a cursada a la división B, al final, nos tiraba un reporte de alumnos no inscriptos . Nos informaba que esto se debía a que ya estaban inscriptos a la cursada de la actividad con la división A.
¿Cómo podríamos solucionar este tema?
Version Guarani: 3.16.2
Si se fijan en el log de la aplicación, al momento de filtrar por división a los alumnos disponibles (antes de agregarlos) en la operación “Inscribir a Cursadas Masivamente”? El log debería tener una query similar a esta:
[NOTICE][guarani] SELECT
sga_alumnos.alumno,
sga_alumnos.legajo,
sga_alumnos.persona,
sga_alumnos.propuesta,
vw_personas.apellido,
vw_personas.nombres,
vw_personas.apellido_nombres AS apellido_y_nombre,
vw_personas.tipo_nro_documento AS documento_principal,
vw_personas.documento,
vw_personas.nro_documento,
vw_personas.tipo_documento,
vw_personas.desc_tipo_documento,
sga_propuestas_aspira.anio_academico
FROM
sga_alumnos
JOIN vw_personas ON sga_alumnos.persona = vw_personas.persona
JOIN sga_propuestas_aspira ON (sga_propuestas_aspira.persona = sga_alumnos.persona AND
sga_propuestas_aspira.propuesta = sga_alumnos.propuesta)
JOIN sga_situacion_aspirante ON (sga_situacion_aspirante.situacion_asp = sga_propuestas_aspira.situacion_asp AND
sga_situacion_aspirante.resultado_asp IN ('A', 'P'))
WHERE sga_alumnos.plan_version = 97
AND sga_alumnos.calidad = 'A'
-- Se excluyen alumnos que han aprobado la actividad
AND NOT EXISTS ( SELECT 1
FROM vw_hist_academica_basica
WHERE alumno = sga_alumnos.alumno
AND elemento = 460
AND resultado = 'A'
)
-- Si corresponde, se excluyen ingresantes
-- Se excluyen alumnos ya inscriptos a la comisión
AND sga_alumnos.alumno NOT IN (SELECT alumno FROM sga_insc_cursada WHERE comision = 13226)
-- Si corresponde, se filtra por apellido dentro del rango de letras de la comisión
-- Si corresponde, se excluyen alumnos que ya regularizaron la actividad
-- Si corresponde, se filtra por ubicación.
-- Otros filtros de usuario
AND sga_alumnos.division = '1'
ORDER BY vw_personas.apellido, vw_personas.nombres
En esa query pueden ver la división en cuestión y revisar en la vista de alumnos vw_alumnos los alumnos relacionados a la misma
SELECT *
FROM vw_alumnos
WHERE vw_alumnos.division = 1
Con esto seguramente vamos a tener más información que nos ayude a aclarar la situación