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

- 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;
}