Estado de inscripto a Examen Final

Buen dia:

Estamos en versión 2.9.1 y hemos tenido el mismo problema con alumnos que quedaron registrados (tanto en la inscripción como en el detalle de actas) como tipo de inscripción “A”.

Analizando hemos detectado que se produce en dos casos, uno es el ya tratado en este hilo, cuando se trata de materias de plan anterior (que no están en el actual) y el otro se produce cuando el alumno tiene regularizada la materia, pero la misma se vence en forma posterior a la inscripción pero antes de la fecha de exámen.

Sin embargo, revisando el script en cuestión (sp_mesasmatinscex) no logro detectar el error, Un ejemplo de estos casos, sería: Una mesa definida para el 04/08/17, el alumno se inscribe el 25/07/17 y la regularidad de la materia se le vence el 01/08/17, la mesa está definida para regulares y libres (‘A’). Pego parte del script con comentarios de mi análisis.



-- Si debe filtrar las mesas según su tipo de inscripción, saltea la línea en las siguientes condiciones:
          IF pCtrTipoInsc = 'S' THEN
             IF vTieneRegularidad = 1  THEN
               -- tiene la regularidad (vigente o no a la fecha del examen)
 --- *****Ingresa por acá ya que el parámetro vTieneRegularidad tiene valor 1 si el alumno tiene la regularidad AL MOMENTO DE LA INSCRIPCION             
               IF dFecPrest <= vFecha_Fin_Regul OR vFecha_Fin_Regul IS NULL THEN	
                  -- Puede inscribirse como regular. Esta vigente a la fecha del examen
 --- *****NO Ingresa por acá ya que la fecha de fin de vigencia es anterior a la fecha de exámen
                  IF vcTipoInscMesa = 'L' THEN
                    -- Si el alumno tiene la regularidad y la mesa admite solo alumnos libres no muestro la mesa 
                    -- ¿Muestro o no la mesa si el alumno es regular y la mesa solo de libres?
                    CONTINUE FOREACH;
                  ELIF vcTipoInscMesa = 'A' THEN
                     -- La mesa es para libres y regulares. Seteo por default que la inscripcion sea como Regular
                     LET vcTipoInscMesa = 'R';
                  ELSE
                     -- Es otro tipo de inscripcion (Regular, Tesis....)   
                  END IF;
               END IF; 
               
             ELIF (vTieneRegularidad <> 1 OR (vTieneRegularidad = 1 AND dFecPrest > vFecha_Fin_Regul AND vFecha_Fin_Regul IS NOT NULL)) THEN
 --- *****Ingresa por acá ya que el parámetro vTieneRegularidad tiene valor 1 y la fecha de fin de vigencia es anterior a la fecha de exámen
               -- No tiene la regularidad o tiene la regularidad pero esta vencida a la fecha del examen
               IF vcTipoInscMesa = 'R' THEN
                  -- Si el alumno no tiene la regularidad y la mesa admite solo alumnos regulares entonces no muestro la mesa
                  CONTINUE FOREACH;
               ELIF vcTipoInscMesa = 'A' THEN
 --- *****Ingresa por acá ya que la mesa está definida como tipo 'A' (sin embargo cuando registra la inscripción, lo hace como 'A' en vez de 'L')
                  -- La mesa es para libres y regulares. Seteo por default que la inscripcion sea como LIBRE
                  LET vcTipoInscMesa = 'L';
               ELSE
                  -- Es otro tipo de inscripcion (Regular, Tesis....)   
               END IF;
             END IF; 
         END IF; -- pCtrTipoInsc = 'S'


Es correcto mi análisis para ese ejemplo? Si es así, porque otro motivo puede estar registrando a estos alumnos como tipo “A”?

Ezequiel Molina
Fac. de Cs. Agrarias - UNJu