A las reglas no nos hizo falta agragarlas al core. Las pusimos dentro de personalizaciones/php/nucleo/_lib/reglas, pero tuvimos que agregar las referencias a las clases en personalizacones/php/guarani_autoload_clases_nuevas.php
La forma menos conflictiva con las actualizaciones que se me ocurre es en donde necesites que se realice un control, podrías personalizar la función y forzar el control, es decir, por ejemplo si supieramos que el momento en que una inscripción se acepta es en la función guardar() de la clase ci_inscripcion.php, y al requisito lo pegamos en el punto de control alumno_operacion, podríamos hacer lo siguiente:
class ci_inscripciones_pers extends ci_inscripciones {
function guardar() {
//Ejecutamos guardar de la clase padre
parent::guardar();
$ptos_control_a_validar = array(guarani_punto_de_control::alumno_operacion);
$params = array('alumno' => $datos_alumno['alumno'],
'persona' => $datos_alumno['persona'],
'plan_version' => $datos_alumno['plan_version'],
'fecha' => guarani_fecha::get_hoy(),
'propuesta' => $datos_alumno['propuesta']);
$retorno = guarani::validador_puntos_de_control($pto_control_a_validar, $params)->controlar();
}
}
Esto valdría la pena sólo si el requisito se implementa en varios lugares… si sólo se hace en ese punto, no se si sería mejos directamente hacer una llamada a una api y listo.
Saludos.