Buenas!
Tenemos un requerimiento que consiste en controlar a los alumnos que se inscriben a examen en instancia de libre, de forma que si el alumno no es regular en la actividad, entonces verifico que nunca la haya cursado y que no haya rendido mal X veces. Si cumple esas condiciones se puede inscribir.
Como este requerimiento solo aplica a algunas activades del plan, pensamos en modelarlo como un requisito que se configure en Asignar Correlativas para cada actividad que lo requiera.
El problema que tenemos es que no logramos obtener el parámetro instancia de la mesa a la que se está inscribiendo el alumno. El único punto de control que retorna ese parámetro es el 16 (Cerrar Acta de Examen) pero no parece estar pensado para ser usado en la inscripción.
Es viable la solución que planteamos? alguna pista?
“…de forma que si el alumno no es regular en la actividad, entonces verifico que nunca la haya cursado y que no haya rendido mal X veces…” → solamente los alumnos podran inscribirse a esta actividad aquellos que nunca hayan cursado y que nunca hayan rendido? …si es asi: 1 - ¿que sucede con los alumnos que perdieron la regularidad? Es decir alumnos que cursaron regulizaron pero perdieron la regularidad por X motivo? estos tambien NO podrian inscrirse a examen? 2 - los alumnos que no regularizaron no pueden rendir libres?
1- Los alumnos que perdieron la regularidad no pueden rendirla nunca más en instancia de Libres.
2- Los alumnos que NO son regulares PERO NUNCA LA CURSARON (o existen en acta de regulares pero con resultado = U) pueden rendirla X veces. Luego los tendría que rechazar el control.
Toda esa logica yo la pensaba desarrollar en una regla y su requisito asociado. El problema es que no se como capturar la instancia de la mesa de examen en el momento de la inscripción.
Por lo que nos comentas , una opcion seria , que creen un requisito y lo configuren como correlativa en esas materias que precisan, es decir, en el requisito creado tienen que usar el punto de control 11: Alumno - Examen Libre. Crear una regla que realice y controle esto que precisan, y aplicarla a un nuevo requisito que tenga ese punto de control, y configurar ese requisito como correlativa en las materias que lo exijan. Se entiende? podrian probarlo , cualquier cosa nos avisan si?
Eso fue exactamente lo que intenté hacer pero me encontré conque el punto de control 11:Alumno-Examen Libre, solo te da los parámetros: alumno, llamado_mesa, fecha y elemento. Y yo lo que necesito es la instancia de la mesa en la que se está inscribiendo el alumno.
Estamos en la versión 3.20.1 y al menos esos son los parámetros que nos devuelve:
SELECT * FROM negocio.par_parametros_x_punto_control where pto_control = 11
El que sí tiene dicho parámetro es el 16:Cerrar Acta de Examen pero explotaba cuando lo queríamos usar en la inscripción.
Estuvimos viendo una opcion, seria bueno que la analicen y prueben:
Lo que podria hacerse es definir un nuevo requisito y que lo asocien al punto de control relacionado con la instancia libre(punto de control nro 11), y de esta forma que solo se evalue el requisito si es para las actividades que ustedes deciden que deba controlarse, para el resto de las actividades el requisito salga sin controlar nada.
Es decir, al configurar el requisito en la accion cursadas, operacion de inscripcion a cursadas, se ejecutara siempre, pero solo se evaluara para las actividades que ustedes decidan (logica dentro de la regla del requisito), se entiende?
Con esto alcanza, porque los requisitos asociados al punto de control nro 11, son los que se ejecutan cuando el alumno se inscribe como “Libre”.
Al tener alumno y elemento, te alcanza para realizar el control sobre el alumno y las actividades sobre las que se quiere realizar este control.
El requisito no se puede definir como correlativa porque las correlativas se controlan cuando el alumno selecciona la actividad para inscribirse, y en ese momento aun no seleccionò la mesa de examen, en consecuencia no se sabe si se inscribirá como libre o regular.
Hay diferentes formas de implementarlo. Depende de si estos controles cambian periodicamente respecto de las actividades a las que hay que controlar.
Si cambian cada tanto, entonces quizas es mejor implementarlo mediante una tabla donde registren que actividades se deben controlar; pero si es un conjunto de actividades que no van a cambiar con el tiempo o tendran poco cambio entonces podes implementarlo directamente en el codigo php de la regla.