Alumnos que no cumplen correlativas de examen

Gente,
una pregunta:

  • Alguno tiene un script que verifique si alumnos han rendido una materia, sin cumplir las correlativas para rendir?
    El problema es que en enero 2008 realizamos una migración a versión 2.5.2 y algunos controles fueron desactivados, y se activaron un tiempo despues, por lo que algunos alumnos se inscribieron y rindieron materias sin tener las correlativas.
    Tengo que detectar todos estos casos, para generar una convalidacion en la facultad.

Marcela Vera

Marcela, quizas puedas armar un script que:

  • Recorra las actas de examen en ese rango de fechas que detectaste que el control estuvo desactivado
  • Por cada acta de examen recuperar los alumnos.
  • Por cada alumno correr el control de correlativas con los datos del alumno y la materia del acta de examen. Aca veras si solo lo corres para los alumnos que aprobaron el examen o los que desaprobaron tambien.
    El control de correlativas es el ctr_corre_iex_fech , ya que este te permite ingresar la fecha que en este caso tendras qu eponer la fecha del examen o que figura como aprobada/desaprobada la materia.
    Si el resultado te da -1 entonces ahi debieras registrar ese alumno , acta , materia como para luego poder listar y controlar caso por caso.

Ejemplo:


CREATE TABLE t_alumnos (.....);

CREATE PROCEDURE verificar_correlativas()
BEGIN

DEFINE a integer,
DEFINE b varchar(255);

FOREACH SELECT  unidad_academica, .., acta, .. FROM sga_actas, sga_llamados_mesa, sga_actas_examen....
   FOREACH SELECT .... INTO ...  FROM sga_det_acta WHERE ....   and resultado = 'A'
     LET a = NULL;
     LET b = NULL;   
     EXECUTE PROCEDURE ctr_corre_iex_fech(ua, carrera, legajo, materia, fecha) INTO a, b;
     IF a = -1 THEN
         -- A la fecha del examen el alumno no cumplia con las corraltivas para aprobar la materia
         INSERT INTO t_alumnos (unidad_academica, carrera, legajo, materia, tipo_acta, acta, fecha, nota) VALUES ....;
     END IF; 

   END FOREACH;
END FOREACH;
.....
END PROCEDURE;

-- verificar las correlativas
EXECUTE PROCEDURE verificar_correlativas();

-- consultar alumnos
SELECT * FROM t_alumnos;