Hola! Buenas tardes.
Necesito modificar el código de las reglas de correlatividades para agregar una nueva lógica de levantamiento de correlatividades.
Los archivos que tengo que modificar son “regla_correlativas_de_cursada” y “regla_correlativas_de_aprobacion”. Pude hacer funcionar el levantamiento modificando los archivos originales, pero no pude personalizarlos.
El código del archivo personalizado es el siguiente:
<?php
class regla_correlativas_de_cursada_U840 extends regla_correlativas_de_cursada
{
function validar()
{
$alumno = $this->get_parametro('alumno');
$elemento = $this->get_parametro('elemento');
$fecha = $this->get_parametro('fecha');
$persona = toba::consulta_php('co_alumnos')->get_persona_alumno($alumno);
$plan_version = toba::consulta_php('co_alumnos')->get_plan_version($alumno, $fecha);
$grupos = toba::consulta_php('co_condiciones')->get_opciones_elemento_plan_version_tipo($elemento, $plan_version, condicion::tipo_cursar);
$grupo_cumplido = true;
$cant_requisitos_no_cumplidos = 0;
$txt_requisitos_no_cumplidos = '';
foreach ($grupos as $grupo) {
$requisitos = toba::consulta_php('co_condiciones')->get_requisitos_opcion($grupo['grupo_condicion']);
$grupo_cumplido = true;
foreach ($requisitos as $requisito) {
$regla = guarani::regla($requisito['regla']);
$regla->set_parametros($requisito['parametros']);
$regla->set_operador_not($requisito['operador_not']);
$regla->set_parametros_contexto(array( 'alumno' => $alumno,
'persona' => $persona,
'plan_version' => $plan_version,
'elemento' => $requisito['elemento'],
'fecha' => $fecha));
if (! $regla->validar()) {
$grupo_cumplido = false;
$cant_requisitos_no_cumplidos++;
// Se detallan hasta 3 requisitos no cumplidos...
if ($cant_requisitos_no_cumplidos < 4) {
$txt_requisitos_no_cumplidos .= ($cant_requisitos_no_cumplidos == 1) ? $requisito['requisito_nombre'] : ", {$requisito['requisito_nombre']}";
} else {
$txt_requisitos_no_cumplidos .= ' y otras...';
continue 2;
}
}
}
if ($grupo_cumplido) {
break;
}
}
$resultado = $this->resultado_final($grupo_cumplido);
if (!$resultado) {
$esta_levantada = toba::consulta_php('co_levantamiento_correlativas_U840')->es_correlativa_levantada($plan_version,$elemento);
if ($esta_levantada) {
$resultado = $this->resultado_final(true);
} else {
$nombre_alumno = toba::consulta_php('co_alumnos')->get_alumno_nombre($alumno);
$this->set_parametros_mensaje_validacion(array($nombre_alumno, $txt_requisitos_no_cumplidos), true);
}
}
return $resultado;
}
}
?>
Y el nombre del archivo es “regla_correlativas_de_cursada_U840.php”.
Intenté con el nombre original en el archivo y en la clase, extendiendo de regla y no funciono, y tambien con el nombre de archivo orginal pero el nombre de la clase con “_U840” y tampoco.
Alguna idea de como se haría?
Vi que la referencia a estos archivos php están en la base, pero no veo como modificarlos.
Desde ya, Gracias!
Felipe