Hola que tal, estamos desarrollando un control en la inscripción a cursadas para Guaraní 3.13.1 , actualmente está funcionando en la interfaz de Gestión pero no está funcionando en la interfaz de Autogestión, necesitamos saber que nos faltaría hacer para que funcione.
Actualmente el requisito lo tenemos asociado a la accion de cursadas, y habilitado para ambas interfaces en la operación “800SIUCUR001 - Inscribir a Cursadas” , como mencionamos arriba, el control funciona perfectamente para la interfaz de gestión pero en autogestion no funciona.
- Se creo un archivo nuevo para la regla en :
/usr/local/proyectos/gestion/personalizacion/php/nucleo/_lib/reglas/regla_algunos_datos_censales_completos.php
<?php
class regla_algunos_datos_censales_completos extends regla
{
function validar() {
//$datos = guarani::co('co_personas')->algunos_datos_completos($persona);
$persona = $this->get_parametro('persona');
$datos_compeltos = true;
$nombre_persona = toba::consulta_php('co_personas')->get_nombre_persona($persona);
$id_datos = guarani::co('co_datos_censales')->get_id_dato_censal($persona);
$id_datos = $id_datos['dato_censal'];
//---
//--- Datos personales
//---
$campos_obligatorios = array ('estado_civil','unido_hecho', 'cantidad_hijos' , 'cantidad_familia', 'situacion_padre', 'situacion_madre', 'turno_preferido', 'cobertura_salud');
$datos_personales = guarani::co('co_datos_censales')->get_datos_personales($id_datos);
$datos_personales = $datos_personales[0];
// ei_arbol($datos_personales);
foreach ($campos_obligatorios as $campo) {
if ($datos_personales[$campo] === null OR $datos_personales[$campo] === '') {
echo $campo;
$datos_compeltos = false;
}
}
if (!$datos_compeltos) {
$this->set_parametros_mensaje_validacion(array($nombre_persona, 'DATOS PERSONALES'), true);
return false;
}
//---
//--- Domicilio
//---
$campos_obligatorios = array('periodo_lectivo_calle', 'periodo_lectivo_localidad', 'tipo_vivienda', 'vive_con', 'procedencia_calle', 'procedencia_localidad');
foreach ($campos_obligatorios as $campo) {
if ($datos_personales[$campo] === null OR $datos_personales[$campo] === '') {
$datos_compeltos = false;
}
}
if (!$datos_compeltos) {
$this->set_parametros_mensaje_validacion(array($nombre_persona, 'DOMICILIO'), true);
return false;
}
//---
//--- Datos economicos: financiamiento y datos laborales
//---
$datos_economicos = guarani::co('co_datos_censales')->get_datos_economicos($id_datos);
$datos_economicos = $datos_economicos[0];
// en este caso al menos uno tiene que estar en "S"
$seleccion_obligatoria = array ('costeo_estudios_familiar','costeo_estudios_plan_social', 'costeo_estudios_trabajo', 'costeo_estudios_beca', 'costeo_estudios_otro');
$eligio_uno = false;
foreach ($seleccion_obligatoria as $campo) {
if ($datos_economicos[$campo] === 'S') {
$eligio_uno = true;
}
}
if (!$eligio_uno) {
$this->set_parametros_mensaje_validacion(array($nombre_persona, 'FINANCIAMIENTO'), true);
return false;
}
if ($datos_economicos['trabajo_existe'] === null OR $datos_economicos['trabajo_existe'] === ''){
$this->set_parametros_mensaje_validacion(array($nombre_persona, 'DATOS LABORALES'), true);
return false;
}
//---
//--- Tecnologia
//---
$datos_actividades = guarani::co('co_datos_censales')->get_datos_actividades($id_datos);
$datos_actividades = $datos_actividades[0];
$seleccion_obligatoria = array ('tecnologia_pc_casa', 'tecnologia_pc_trabajo', 'tecnologia_pc_universidad', 'tecnologia_pc_otro_lugar');
$eligio_uno = false;
foreach ($seleccion_obligatoria as $campo) {
if ($datos_actividades[$campo] === 'S') {
$eligio_uno = true;
}
}
if (!$eligio_uno OR $datos_actividades['tecnologia_int_regularidad'] === null OR $datos_actividades['tecnologia_int_regularidad'] === '') {
$this->set_parametros_mensaje_validacion(array($nombre_persona, 'TECNOLOGIA'), true);
return false;
}
//---
//--- Antecedentes profesionales
//---
$antecedente_profesional = guarani::co('co_preinscripciones')->existe_registro_antecedente_profesional($persona, array());
if (!$antecedente_profesional ) {
$this->set_parametros_mensaje_validacion(array($nombre_persona, 'ACTUACION PROFESIONAL'), true);
return false;
}
return true;
}
}
?>
Y luego insertamos en la base de negocio lo siguiente…
INSERT INTO negocio.sga_reglas(
regla,
nombre,
descripcion ,
regla_tipo ,
mensaje_usuario ,
mensaje_validacion ,
mensaje_validacion_negado ,
php_clase)
VALUES (
81901,
'Algunos datos censales completos',
'Que el alumno tenga los datos censales completos (los que figuran en Tramites --> Mis datos personales), pueden no tener completo: Discapacidad, idioma, Deportes, Allegados, Actuación docente. El resto de las pestañas debe tener los datos completos.',
3,
'Que el alumno tenga los datos censales completos (los que figuran en Tramites --> Mis datos personales), pueden no tener completo: Discapacidad, idioma, Deportes, Allegados, Actuación docente. El resto de las pestañas debe tener los datos completos.',
'Debe completar los datos censales',
'',
'regla_algunos_datos_censales_completos'
);
INSERT INTO negocio.sga_reglas_param_contexto (regla, parametro) VALUES (81901, 'persona');
INSERT INTO negocio.sga_reglas_param_contexto (regla, parametro) VALUES (81901, 'fecha');
-- Mensajes
-- DELETE FROM negocio.sga_reglas_mensajes WHERE regla = '81901'
INSERT INTO negocio.sga_reglas_mensajes (regla, interfaz, mensaje_validacion, mensaje_validacion_not)
VALUES (81901, 1, 'El alumno $1$ debe completar los datos censales, faltan datos en la solapa: $2$', 'El alumno $1$ completó sus datos censales');
INSERT INTO negocio.sga_reglas_mensajes (regla, interfaz, mensaje_validacion, mensaje_validacion_not)
VALUES (81901, 2, 'Debes completar tus datos censales', 'Completaste tus datos censales');
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++,
-- Tabla: sga_requisitos, sga_requisitos_validos
-- Versión: 3.13.1
-- Control: Completar datos censales --
-- Usa la regla nro 81901 - Que el alumno tenga los datos censales completos
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
INSERT INTO negocio.sga_requisitos (requisito, requisito_tipo, nombre, requisito_subordinado_de, descripcion, regla)
VALUES (81901, 5, '"Completar datos censales"', NULL, '"Que el alumno tenga los datos censales completos (los que figuran en Tramites --> Mis datos personales), pueden no tener completo: Discapacidad, idioma, Deportes, Allegados, Actuación docente. El resto de las pestañas debe tener los datos completos."', 81901);
-- En el caso que el requisito sea usado como un control configurable, se debe definir para que acciones se usa el requisito:
INSERT INTO negocio.sga_requisitos_validos (accion, requisito) VALUES (1, 81901); -- Inscripción a Cursadas
-- En el caso que el requisito sea usado como un control configurable, se debe definir en qué puntos de control se puede vincular el requisito:
INSERT INTO negocio.sga_requisitos_x_punto_control (pto_control, requisito, orden) VALUES (1, 81901, 1); -- Persona - Operación
Luego desde la interfaz de gestion lo asignamos a la accion y operaciones correspondientes como mencionamos mas arriba.