Buenos días!
Pretendemos mostrar un panel de advertencia, que le indique al alumno que no aprobó las dos materias del año anterior si ese es el caso. Para lograrlo decidimos seguir este tutorial:
De tal manera, adaptamos los conocimientos otorgados por el tutorial a nuestra situacion.
Basicamente modificamos el archivo:
operaciones/inicio_alumno/template.twig
Y copiamos/creamos los siguientes archivos:
modelo/datos/db/inicio_alumno.php <— (el catalogo)
modelo/transacciones/inicio_alumno.php <— (el archivo de transacciones)
operaciones/inicio_alumno/controlador.php <— (lo copiamos para personalizarlo)
Todo funciona correctamente, a excepcion de la funcion dentro del catalogo que nos indica si el alumno cumple o no con la condicion.
Para hacer la consulta nos basamos en funcion dentro de “co_alumnos” llamada “get_cant_actividades_aprobadas_anio_cursada” y la modificamos para que por si sola haga la verificacion, retornando true o false. El codigo tal cual como esta en el catalogo es el siguiente:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
namespace unvime\modelo\datos\db;
//use \kernel\kernel;
use SIU\Chulupi\kernel;
//use siu\modelo_g3\nucleo_lib\guarani_db;
use pers_gestion\php\nucleo_lib\guarani_db;
…
…
…
/**
* parametros: alumno, plan_version, anio
* cache: no
*/
function aprobo_dos_materias_del_anio_anterior($parametros)
{
$res = true;
$alumno = (int)$parametros[‘alumno’];
$plan_version = (int)$parametros[‘plan_version’];
//Tomo el anio anterior al dado
$anio = (int)$parametros[‘anio’];
$anio = $anio - 1;
$sql = "SELECT
COUNT(vw_hist_academica_basica.elemento) as cant
FROM
vw_hist_academica_basica
JOIN sga_elementos_revision ON vw_hist_academica_basica.elemento = sga_elementos_revision.elemento
JOIN sga_elementos_plan ON sga_elementos_revision.elemento_revision = sga_elementos_plan.elemento_revision
WHERE
vw_hist_academica_basica.alumno = $alumno
AND sga_elementos_plan.plan_version = $plan_version
AND sga_elementos_plan.anio_de_cursada = $anio
AND vw_hist_academica_basica.resultado = ‘A’
";
$rs = guarani_db::consultar_fila($sql);
if ($rs[‘cant’] < 2) {
$res = false;
}
return $res;
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Lo que sucede es que la clase “guarani_db” no es encontrada y la clase “guarani_db_nucleo” no se puede volver a instanciar. La funcion en “co_alumnos” utiliza la instruccion “$rs = guarani_db::consultar_fila($sql);” ya que al parecer, en su estrucuta de carpetas, SI tiene acceso a la clase instanciada de “guarani_db”.
La libreria que SI tenemos disponible en el catalogo es “SIU\Chulupi\kernel” con la cual intentamos utilizar la instruccion “kernel::db()->consultar($sql);” y tambien “rs = kernel::db()->consultar_fila($sql);” pero parece no estar funcionando como pensamos. En conclusion no entra en el segmento “if” de la funcion en el catalogo. De tal manera la funcion siempre retorna true.
Espero no haberlos mareado.
Que posible solución sugieren?
Gracias de antemano.