Gente buenas tardes, tenemos el siguiente inconveniente, un ingresante solicita mediante 3w la constancia de alumno regular, como es ingresante No debería otorgársela, pero el sistema le devuelve la misma.
Cuando ingresamos desde Gestión, solicitamos la constancia y nos devuelve el error de que el alumno no es alumno regular.
Nosotros tenemos personalizado el CI ci_constancia_alumno_regular.php, la consulta sería porque para gestión funciona de manera correcta y para 3W NO?
Autogestión no consume los componentes de toba ci, por lo tanto esa personalización no la va a ejecutar. Para que ambas interfeces vean esa personalización, deberían personalizar en el método es_alumno_regular del co_alumnos, ese método si se comparte.
Miren el método validar_constancia de src/siu/modelo/transacciones/solicitud_constancias.php de Autogestión
Hola Sergio, gracias por la respuesta, te comento, el co_alumnos ya lo tenemos extendido por lo que agregamos el método es_alumno_regular
function es_alumno_regular($alumno)
{
$alumno = toba::db()->quote($alumno);
$fecha = '\''.date("Y-m-d").'\'';
$sql = "SELECT * FROM negocio_unt.unt_f_validacion_alumno_regular($alumno, $fecha);";
$rs = toba::db()->consultar_fila($sql);
if ($rs['unt_f_validacion_alumno_regular']==0){
throw guarani::error(guarani_mensajes::get('800MAT_alumno_no_activo_regular'));
}
return true;
}
Pero al realizar la verificación desde Autogestión sigue sin funcionar.
En cambio si cambiamos el archivo …/transacciones/solicitud_constancias.php de Autogestión cambiando
if (! (\toba::consulta_php('co_alumnos')->es_alumno_activo($alumno) && \toba::consulta_php('co_alumnos')->es_alumno_regular($alumno)))
POR
if (! (\toba::consulta_php('co_alumnos')->es_alumno_activo($alumno) && \toba::consulta_php('[b]co_alumnos_unt[/b]')->es_alumno_regular($alumno)))
Pasa lo siguiente, cuando solicitamos la constancia el sistema devuelve que se generó correctamente (Aviso de color verde) pero no le agrega a la lista. Se nota que está ejecutando la función el cual el devuelve el mensaje de error peor no lo interpreta en Autogestión.
Qué estamos haciendo mal para que no lo tome de manera correcta a co_alumnos_unt?
Para personalizar una clase de consulta, deben seguir la siguiente documentación, sección Modificar la clase de consulta, Luego también tienen que tener en cuenta la sección siguiente Regenerar el autoload, que genera las modificaciones necesarias, para que autogestion pueda consumir esos cambios, luego deben hacer un SVN UP en autogestion para obtener esos cambios.
Para darles más información, también pueden leer esta documentación.
Sergio, gracias por la respuesta y por refrescar los conceptos con el pers_autoload el cual no lo había realizado. Ahora con la solicitud sigue mostrando el cartel que se generó de manera correcta, pero llega un mensaje que lo debe buscar de sección alumnos. La idea es que indique que no se generó porque no cumple con los requisitos. Me parece que G3w3 no está interpretado la negativa que enviamos con
Hola
tal vez la forma que se usa en el archivo de 3w src/siu/modelo/transacciones/solicitud_constancias.php la funcion function validar_constancia($constancia) te ayude un poco para ver como muestra los mensajes 3w
muestra el mensaje
throw new error_guarani(kernel::traductor()->trans('constancias_certificados.no_sos_activo_regular'));
estos mensajes están dentro del archivo src/siu/mensajes/mensajes.es.php
para cambiar el comportamiento deberías realizar con el esquema de personalizaciones
Hola Jesica, perdón por la demora, retomando este tema… hicimos lo siguiente, personalizamos en G3W la solicitud de constancias
<?php
namespace unt\modelo\transacciones;
use SIU\Chulupi\ErrorKernelDb;
use \SIU\Chulupi\kernel;
use siu\errores\error_guarani;
use siu\errores\error_guarani_usuario;
use \siu\modelo\datos\catalogo;
class solicitud_constancias extends \siu\modelo\transacciones\solicitud_constancias
{
function validar_constancia($constancia)
{
if ($constancia == \constancias::constancia_de_alumno_regular) {
$alumno = $this->alumno;
if (1==1) {
throw new error_guarani(kernel::traductor()->trans('constancias_certificados.no_sos_activo_regular'));
}
/*
if (! (\toba::consulta_php('co_alumnos')->es_alumno_activo($alumno) && \toba::consulta_php('co_alumnos')->es_alumno_regular($alumno))) {
throw new error_guarani(kernel::traductor()->trans('constancias_certificados.no_sos_activo_regular'));
}
*/
}
}
}
Como pueden ver obligamos a que entre en el if y nos tire el mensaje de error. al realizar un debug podemos ver que carga el mensaje “Debes ser alumno regular en la propuesta” pero cuando sigue ejecutando el código, en algún momento sobre escribe el mensaje y nos termina mostrando el mensaje "La solicitud se generó correctamente ", sin generar el registro correspondiente en la grilla.
O sea está bien que NO nos el nuevo registro en la grilla, pero no entiendo el porque del mensaje correcto.