tieneAcceso()){
$objSesion->terminaSesion();
}
$objSesion->validaPeriodoUsuario();//si no tiene periodo manda a main
?>
printMenu();
$filter_periodo = $_SESSION["periodo_id"];
if(isset($_POST["plan"]) && is_numeric($_POST["plan"]) && trim($_POST["plan"]) != ""){
$filter_plan = filter_input(INPUT_POST, "plan", FILTER_SANITIZE_NUMBER_INT);//limpia texto
}
if(isset($_POST["sem"]) && is_numeric($_POST["sem"]) && trim($_POST["sem"]) != ""){
$filter_sem = filter_input(INPUT_POST, "sem", FILTER_SANITIZE_NUMBER_INT);//limpia texto
}
if(isset($_SESSION["nivel_id"], $_SESSION["periodo_id"]) && $_SESSION["nivel_id"] != "" && $_SESSION["periodo_id"] != ""){
//Plan de estudios
$stmt = $pdo->prepare('Select * from fs_planestudio(:nivel, NULL, NULL, true, 0, NULL)');
$stmt->bindPAram(":nivel", $_SESSION["nivel_id"]);
if(!$stmt->execute()){
$errorDesc = "Ocurrió un error al cargar los planes de estudio";
}else{
$plan_rs = $stmt->fetchAll();
}
$stmt->closeCursor();
}
if(isset($filter_plan, $filter_sem)){
$error = false;
$prefijo = "";
foreach($plan_rs as $plan){
if($plan["PlanEstudio_id"] == $filter_plan)
$prefijo = $plan["Carrera_prefijo"];
break;
}
//Obtiene tipos de calificaciones
$stmt = $pdo->prepare('Select * from fs_tipocalificacion(NULL) WHERE "TipoCalificacion_esEquivalencia" = false ');//no revalidadas
if(!$stmt->execute()){
$errorDesc = "Ocurrió un error al cargar los tipos de calificaciones";
//print_r($stmt->errorInfo()); exit();
$error = true;
}else{
$tipocalif_rs = $stmt->fetchAll();
}
$stmt->closeCursor();
//materias por asignar
$labelMateriasArr =array();
$stmt = $pdo->prepare('Select * from fs_materiagrupo(:plan, :sem, NULL) WHERE "Area_hasAlerta" = true');
$stmt->bindParam(":plan", $filter_plan);
$stmt->bindParam(":sem", $filter_sem);
if(!$stmt->execute()){
$errorDesc = "Ocurrió un error al leer las materias del semestre.";
print_r($stmt->errorInfo()); exit();
$error = true;
}else{
$mat_rs = $stmt->fetchAll();
foreach($mat_rs as $mat){
$labelMateriasArr[$mat["Materia_id"]] = $mat["Materia_desc"];
}
$labelMateriasArr = removeKey($labelMateriasArr);
}
//------------
//reporte por plan
if(!$error){
$stmt = $pdo->prepare('Select * from fs_promedio_plan(:periodo, NULL, false)');//sólo no revalidadas
$stmt->bindParam(":periodo", $_SESSION["periodo_id"]);
if(!$stmt->execute()){
$error = true;
$errorDesc = "Ocurrió un error al cargar los promedios por plan";
//print_r($stmt->errorInfo()); exit();
}else{
$rs = $stmt->fetchAll();
$planArr = array();
$plan_last = -1;
$califArr = array();
$p = 0;
foreach($rs as $plan){
if($plan_last != $plan["PlanEstudio_id"]){
if($plan_last != -1){
$planArr[$p]["califArr"]=$califArr;
$p++;
}
$plan_last = $plan["PlanEstudio_id"];
$califArr = array();
foreach($tipocalif_rs as $tipo){
$califArr[$tipo["TipoCalificacion_id"]] = array("data"=>0, "existe"=>0);
}
}
$planArr[$p] = array("id" => $plan["PlanEstudio_id"], "desc" =>$plan["Carrera_desc"]." ".$plan["PlanEstudio_desc"], "califArr"=>array());
$califArr[$plan["TipoCalificacion_id"]] = array("data"=>$plan["Calificacion_promedio"]/10, "existe"=>1);
}
if($plan_last != -1){
$planArr[$p]["califArr"]=$califArr;
}
unset($p);
}
$stmt->closeCursor();
}
//reporte por grupos
if(!$error){
$stmt = $pdo->prepare('Select * from fs_promedio_grupo(:periodo, :plan, :sem)');//sólo ord
$stmt->bindParam(":periodo", $_SESSION["periodo_id"]);
$stmt->bindParam(":plan", $filter_plan);
$stmt->bindParam(":sem", $filter_sem);
if(!$stmt->execute()){
$errorDesc = "Ocurrió un error al cargar los promedios por grupo";
$error = true;
//print_r($stmt->errorInfo()); exit();
}else{
$rs = $stmt->fetchAll();
$gpoArr = array();
$grupo_last = -1;
$califArr = array();
$g = 0;
foreach($rs as $grupo){
if($grupo_last != $grupo["Grupo_id"]){
if($grupo_last != -1){
$gpoArr[$g]["califArr"]=removeKey($califArr);
$g++;
}
$grupo_last = $grupo["Grupo_id"];
$califArr = array();
foreach($mat_rs as $mat){
$califArr[$mat["Materia_id"]] = array("data"=>0, "materia"=>$mat["Materia_desc"], "existe"=>0);
}
}
$gpoArr[$g] = array("id" => $grupo["Grupo_id"], "desc" =>$grupo["Grupo_desc"]." ".$grupo["Carrera_prefijo"], "califArr"=>array());
$califArr[$grupo["Materia_id"]] = array("data"=>$grupo["Calificacion_promedio"]/10, "materia"=>$grupo["Materia_desc"], "existe"=>1);
}
if($grupo_last != -1){
$gpoArr[$g]["califArr"]=removeKey($califArr);
}
unset($g);
}
$stmt->closeCursor();
}
//reporte por materias
if(!$error){
$stmt = $pdo->prepare('Select * from fs_promedio_materia(:periodo, :plan, :sem, false)');//sólo no revalidadas
$stmt->bindParam(":periodo", $_SESSION["periodo_id"]);
$stmt->bindParam(":plan", $filter_plan);
$stmt->bindParam(":sem", $filter_sem);
if(!$stmt->execute()){
$errorDesc = "Ocurrió un error al cargar las materias reprobadas por grupo";
$error = true;
//print_r($stmt->errorInfo()); exit();
}else{
$rs = $stmt->fetchAll();
$matArr = array();
$tipo_last = -1;
$califArr = array();
$m = 0;
foreach($rs as $grupo){
if($tipo_last != $grupo["TipoCalificacion_id"]){
if($tipo_last != -1){
$matArr[$m]["califArr"]=removeKey($califArr);
$m++;
}
$tipo_last = $grupo["TipoCalificacion_id"];
$califArr = array();
foreach($mat_rs as $mat){
$califArr[$mat["Materia_id"]] = array("data"=>0, "materia"=>$mat["Materia_desc"], "existe"=>0);
}
}
$matArr[$m] = array("id" => $grupo["TipoCalificacion_id"], "desc" =>$grupo["TipoCalificacion_desc"], "califArr"=>array());
$califArr[$grupo["Materia_id"]] = array("data"=>$grupo["Calificacion_promedio"]/10, "materia"=>$grupo["Materia_desc"], "existe"=>1);
}
if($tipo_last != -1){
$matArr[$m]["califArr"]=removeKey($califArr);
}
unset($m);
}
$stmt->closeCursor();
}
}
?>