Tener el n% de avance en la propuesta para poder anotarse a final

Hola
Estamos haciendo pruebas de migración a G.3.20.0
Tenemos llamados especiales en donde alumnos de ciertos planes les debe controlar que tengan el 80% de avance en la propuesta para poder anotarse al final de ciertas materias.
Veo que el sistema cuenta con la regla: 108 - Tener el n% de actividades aprobadas, que es de tipo “Cumplimiento de Módulos”.
Necesitaríamos poder aplicarla como una regla de tipo proceso también, para que se aplique como control al momento de la inscripción a un examen, para alumnos de ciertos planes y en ciertas actividades.
Es esto posible? Podrían orientarme?
Muchas gracias!!
Iris

Lo podes aplicar sobre el módulo raiz.
Tenes que tener en cuenta que esas reglas que aplican sobre modulos no estan asociadas a ningun requisito por lo cual no podes configurarla en ninguna operación.
Ademas consideran cada componente directa del modulo (actividad, generica, submodulo) como una “actividad”, y no se mete en profundidad en cada submodulo.

Ejemplo:
Modulo A: (Tener el 80% de actividades aprobadas)

  • Actividad 1
  • Actividad 2
  • Actividad 3
  • Actividad 4
  • Submodulo 1
    - Actividad 5
    - Actividad 6
    - Actividad 7
    + Sumbodulo 11
    - Actividad 8
    - Actividad 9
    - Actividad 10
  • Submodulo 2
    - Actividad 11
    - Actividad 12
  • Generica 1er año
    - Optativa 1
    - …
    - Optativa 20

En este caso, para la regla de cumplimiento “Tener el 80% de actividades aprobadas” del modulo A, se considera que tiene 7 actividades (o componentes) que son las componentes directas:

  • Actividad 1
  • Actividad 2
  • Actividad 3
  • Actividad 4
  • Submodulo 1
  • Submodulo 2
  • Generica 1er año

Para cumplir con el modulo raiz, deberia tener 5,6 actividades aprobadas (80% de 7), es decir 6 de las 7 componentes. Por ejemplo aprobadas las Actividad 1 a 4 y cumplidos los submodulos 1 y 2.

Estamos desarrollando estas mismas reglas de cumplimiento de modulos para que considere todas las actividades del modulo, es decir no solo las relacionadas directamente a el (Actividades 1 a 4, Generica 1er año) sino tambien todas las que esten en los submodulos como ser Actividades 5 a 12).


Volviendo al caso planteado, tenes que crear un requisito y asociarlo al punto de control nro 9 (Mesa de Examen), ya que es en este punto de control donde se recibe el dato de la mesa de examen, a partir de la cual podes obtener el dato del turno de examen y llamado y saber si es ese llamado especial sobre el cual deben controlar este requisito.

Para realizar este nuevo requisito pueden tomar como base el requisito nro 5 (Tener n% materias aprobadas de m año), donde no deberían considerar el parámetro de año y contar todas las actividades del plan de estudio. Aca deberan tener en cuenta las genericas, orientaciones,…
De esta forma este requisito pueden configurarlo en la accion “Examenes” y en particular en la operacion Inscribir a Examen.

2

Muchas gracias Alejandro!!!
Estaba desarrollando una nueva regla, y había pensado asociarla al punto de control 17 (Alumno Actividad - Examenes).
Pero creo es mejor lo que indicas, asociarlo a la mesa. Punto de control 9. Voy a hacer eso.

Por otro lado, en la regla estaba considerando:

toba::consulta_php('co_alumnos')->get_porcentaje_avance_propuesta($alumno);

De acuerdo a si ese valor supera o no al % definido como parámetro (dentro de sga_reglas_parametros) es lo que retorna.

Ahora, otra inquietud…

  • sólo aplica en mesas de llamados especiales → lo puedo controlar como decís, recibiendo el dato de la mesa de examen, puedo obtener el dato del turno de examen y llamado y saber si es ese llamado especial sobre el cual se debe controlar este requisito.
  • sólo aplica a ciertos planes. → En los requisitos por acción lo defino sólo para dichos planes.
  • sólo aplica a ciertas materias… Acá mi duda de cómo controlarlo… Alguna sugerencia?
    Desde ya, muchas gracias!!

Iris

- sólo aplica a ciertos planes. --> En los requisitos por acción lo defino sólo para dichos planes.
Es una opcion. Otra opcion es que en el codigo de la regla, como recibis el alumno y tambien se recibe el dato de la version del plan del alumno, con este dato recuperes el plan y si se encuentra en ese conjunto de planes sobre los que hay quecontolar entonces contincuas con el control o sino salis del validar() sin error, lo mismo que haces si no se corresponde con esos llamados especiales
- sólo aplica a ciertas materias... Acá mi duda de cómo controlarlo... Alguna sugerencia?
Hay diferentes maneras de implementarlo. 1- En el codigo de la regla tener alli los ids de las actividades que se deben controlar (idem punto anterior respecto a que planes se debe controlar) La contra de esto es que si se agrega una actividad, debes modificar la regla y agregar esa actividad.
        $actividad = $this->get_parametro('elemento');
       // Verifico si es la actividad que debo controlar
	switch ($actividad) {
			case 562:
				$controlar = true;
				break;
			case 563:
				controlar = true;
				break;
			default:
				$controlar = false;
		}

2- Tener una tabla donde registres las actividades sobre las que vas a controlar.
Entonces en la regla como recibis el dato “elemento” podes consultar esta tabla y si existe la actividad entonces continuas con el control.
Lo mismo podrias hacer con los planes sobre los cuales controlar.
La ventaja de esto es que en un futuro si se agregan actividades o planes sobre los que se debe controlar lo resolves agregando un registro en esas tablas y el codigo de la regla no lo debes modificar.

$actividad = $this->get_parametro('elemento');
 // Verifico si es la actividad que debo controlar
$sql = "SELECT COUNT(1) as cantidad FROM actividades_a_controlar WHERE elemento = $actividad";
$rs = guarani_db::consultar_fila($sql);
if ($rs['cantidad'] > 0) {
  $controlar = true;
} else {
  $controlar = false;
}

Hola Alejandro
Bien!! Muchísimas gracias por toda la orientación!
Había pensado lo de la tabla en el esquema negocio_pers para registrarlas, así que iré por la segunda opción. Tenía dudas si podía haber alguna alternativa mejor.
Saludos.

Iris

Hola
Una consulta más, y si esta regla se quisiera que aplicara para ciertos turnos de examen especiales y no todos? (ya que otros turnos especiales tienen otros requerimientos, como por ejemplo tener N materias aprobadas, y no un porcentaje de avance)
Es posible que al momento de definir el turno o el llamado se asocien qué reglas deben aplicarse?
Y es posible especificar que actúe como estricto para Autogestión, pero como advertencia para Gestión?
Gracias

Iris

Es posible que al momento de definir el turno o el llamado se asocien qué reglas deben aplicarse?
No existe relacion entre turnos y requisitos/reglas a aplicar. Por eso esto debe evaluarse dentro del requisito y saber si debe aplicar o no para el turno de examen segun la mesa en la que el alumno se inscribe. Lo que pueden hacer es crear diferentes tipos de turnos y en base a este dato saber si el requisito debe controlarse o no. Supongamos que tienen 3 requisitos diferentes que se aplica cada uno a un turno especial diferente. Entonces pueden crear 3 tipos de turnos especiales y configurar estos 3 requisitos. Pero al momento de evaluarse cada uno solo se evaluará el requisito que este relacionado con el tipo de turno especial.
Y es posible especificar que actúe como estricto para Autogestión, pero como advertencia para Gestión?
Si, esto lo configuran por la operación [b]» REQUISITOS »CONFIGURAR REQUISITOS POR OPERACIÓN[/b]

Muchas gracias Alejandro por todas la orientaciones!
Pude desarrollar el nuevo requisito.
Saludos.

Iris

Perfecto Iris.
Saludos!