tieneAcceso()){
$objSesion->terminaSesion();
}
$objSesion->validaPeriodoUsuario();//si no tiene periodo manda a main
//Obtiene plan de estudios
$stmt = $pdo->prepare('Select * from fs_planestudio(:nivel, NULL, NULL, true, NULL, NULL) WHERE "Carrera_esComun" IS NOT true');
$stmt->bindParam(":nivel", $_SESSION["nivel_id"]);
if(!$stmt->execute()){
print_r($stmt->errorInfo());
$errorDesc = "Ocurrió un error al cargar los planes de estudios";
}else
$plan_rs = $stmt->fetchAll();
$stmt->closeCursor();
$stmt = null;
if(count($plan_rs) == 0){
header("Location: planestudios.php?error=4");
exit();
}
function recorta($texto, $tam){
$cortado = substr($texto, 0, $tam);
$pos = strrpos($cortado, " ");
return substr($cortado, 0, $pos);
}
?>
APSA - Facultad de Ingeniería
printMenu();
//Obtiene materias y sus planes
if(isset($_POST["plan"]) && is_numeric($_POST["plan"])){
$filter_plan = filter_input(INPUT_POST, "plan", FILTER_SANITIZE_NUMBER_INT);//limpia texto
//Obtiene atributo
$stmt = $pdo->prepare('Select * from fs_atributoegreso(:plan, NULL)');
$stmt->bindParam(":plan", $filter_plan);
if(!$stmt->execute()){
$errorDesc = "Ocurrió un error al cargar los atributos";
}else{
$atributo_rs = $stmt->fetchAll();
}
$stmt->closeCursor();
//Obtiene niveles de atributos de egreso
$stmt = $pdo->prepare('Select * from fs_atributoegreso_nivel(NULL)');
if(!$stmt->execute()){
//print_r($stmt->errorInfo());
$errorDesc = "Ocurrió un error al cargar los atribuos de egreso";
}else{
$nivel_rs = $stmt->fetchAll();
}
$stmt->closeCursor();
$stmt = null;
//Obtiene mapa
$stmt = $pdo->prepare('Select * from fs_planestudio_atributoegreso(:plan, :usr)');
$stmt->bindParam(":plan", $filter_plan);
$stmt->bindParam(":usr", $_SESSION["usuario_id"]);
if(!$stmt->execute()){
$errorDesc = "Ocurrió un error al cargar los grupos";
}else{
$materiasplan_rs = $stmt->fetchAll();
$materiasArray = array();//Gruarda el RS formateado
$id_old=0;
$sem_old=0;
/*
{
{sem1
{nombre, clave, area, atributos=>{atributo1, atributo2} },
{nombre, clave, area},
},
{sem2
{nombre, clave, area},
{nombre, clave, area},
},
}
*/
$i=0;
$semestreArr[] = array();
foreach($materiasplan_rs as $row){
if($id_old != $row["Materia_id"]){
if($id_old != 0){
$semestreArr[$i]["atributos"] = $atributoArr;
$i++;
}
$id_old = $row["Materia_id"];
$atributoArr = array();
}
if($sem_old != $row["Materia_semestre"]){//cambio de semestre
if($sem_old != 0){
$materiasArray[] = array("semestre"=> $sem_old, "materias"=>$semestreArr);
}
$sem_old = $row["Materia_semestre"];
$semestreArr = array();//reiniciar para unevo semestre
}
//Si tiene atributo lo guarda
$semestreArr[$i] = array("id"=>$row["Materia_id"], "nombre" => $row["Materia_desc"], "clave" => $row["Materia_clave"], "area"=>$row["Area_desc"], "editable"=>$row["Editable"], "atributos"=>array());
if(!empty($row["AtributoEgreso_id"])){
$atributoArr[] = array("num"=>$row["AtributoEgreso_id"], "desc"=>$row["AtributoEgreso_desc"],
"nivel"=>$row["AtributoNivel_id"], "nivel_desc"=>$row["AtributoNivel_desc"], "color"=>getRGBA_color($row["AtributoEgresoGeneral_color"], $row["AtributoNivel_id"]));
}
}
if($id_old != 0){
$semestreArr[$i]["atributos"] = $atributoArr;
}
if($sem_old != 0){
$materiasArray[] = array("semestre"=> $sem_old, "materias"=>$semestreArr);
}
}
$stmt->closeCursor();
}
//--Manejo de errores y mensajes de exito
if(isset($_GET["error"]) && is_numeric($_GET["error"])){
switch ($_GET["error"]){
case 0: $errorDesc = "No se reciberon los datos del grupo."; break;
case 1: $errorDesc = "Ocurrió un error al insertar los datos del grupo."; break;
case 2: $errorDesc = "Ocurrió un error al actualizar los datos del grupo."; break;
case 3: $errorDesc = "No tienes permisos para realizar esa acción."; break;
case 4: $errorDesc = "Ocurrió un error al cargar los datos grupos."; break;
case 5: $errorDesc = "No existen grupos para el periodo. Primero debes crear grupos en esta sección."; break;
case 6: $errorDesc = "El grupo que buscas no existe. Consulta la lista de grupos disponibles en esta sección."; break;
}
}
if(isset($_GET["ok"]) && is_numeric($_GET["ok"])){
switch ($_GET["ok"]){
case 0: $successDesc = "Los atributos se guardaron correctamente."; break;
case 1: $successDesc = "Los atributo se actualizaron correctamente."; break;
}
}
?>