Hola a todos!
En la generación de legajos se ejecuta el sp_verificarmatdup, que hace lo siguiente, entre otra cosas:
Verifica que el alumno no tenga la materia regularizada en más de una carrera.
El problema es que cuando recupera las regularidades no tiene en cuenta el fin de vigencia de regularidad, query:
INSERT INTO tmp_cursadas_per (carrera, materia, origen, resultado)
SELECT carrera, materia, origen, resultado
FROM sga_cursadas
WHERE unidad_academica = pUnidadAcademica
AND carrera = ls_Carrera
AND legajo = ls_Legajo
AND resultado = ‘A’
AND origen IN (‘P’,‘C’,‘E’)
por lo que si el alumno perdió la regularidad de una materia con cursada aprobada y volvió a cursar la materia y regularizarla, le dá materia duplicada.
Yo agregaría a este último query la condición:
AND fin_vigencia_regul > TODAY
Si no utilizas recursar_regularizadas puede servirte. En que versión estás?
El sistema permite tener dos regularidades vigentes y cuando pasan a otra carrera deberían pasar las dos.
De hecho, si no lo frenase este sp, el procedure se pasar materias comunes las pasaría sin inconvenientes.
Me parece que la lógica que quedó en la verificación de duplicidad no es la correcta.
Emilio:
Estoy en la versión 2.6.3. El parámetro recursar_regularizadas = ‘N’. Y el tema no es dos regularidades vigentes en mi caso, sino una vigente y una no.
Agregué el control de la vigencia, sino no podía gnerarles legajo.
Pero concuerdo con vos en que hay que revisar este sp, sobre todo para los que utilizan el concepto de materias comunes.