123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- /* AJAX
- * Selecciona los datos del alumno
- * Recibe:
- * id - ID de la carrera
- * Return:
- * resultado o cadena de error
- */
- require_once("../../include/constantes.php");
- require_once("../../include/nocache.php");
- require_once("../../include/util.php");
- require_once("../../include/bd_pdo.php");
- require_once("../../classes/ValidaSesion.php");
- //quita la llave del arreglo
- function removeKey($arr){
- $res = array();
- foreach($arr as $old){
- $res[] = $old;
- }
- return $res;
- }
- //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
- $objSesion = new ValidaSesion($pdo, array(123), GEMA);
- if(!$objSesion->tieneAcceso()){
- $return["error"] = "Error! No tienes permisos para realizar esta acción.";
- }else if(!isset($_POST["plan"], $_POST["sem"])){
- $return["error"] = "Error! No se recibió la información para el reporte.";
- }else{
- $plan = filter_input(INPUT_POST, "plan", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- $sem = filter_input(INPUT_POST, "sem", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- $error = false;
- $labelsArr =array();
-
- //materias por asignar
- $stmt = $pdo->prepare('Select * from fs_materiagrupo(:plan, :sem, NULL) WHERE "Area_hasAlerta" = true');
- $stmt->bindParam(":plan", $plan);
- $stmt->bindParam(":sem", $sem);
- if(!$stmt->execute()){
- $return["error"] = "Ocurrió un error al leer las materias del semestre.";
- $error = true;
- }else{
- $mat_rs = $stmt->fetchAll();
- foreach($mat_rs as $mat){
- $labelsArr[$mat["Materia_id"]] = $mat["Materia_desc"];
- }
- $labelsArr = removeKey($labelsArr);
- }
-
- if(!$error){
- //reporte por grupos
- $stmt = $pdo->prepare('Select * from fs_reprobadas_grupo(:periodo, :plan, :sem)');//sólo no revalidadas
- $stmt->bindParam(":periodo", $_SESSION["periodo_id"]);
- $stmt->bindParam(":plan", $plan);
- $stmt->bindParam(":sem", $sem);
- if(!$stmt->execute()){
- $return["error"] = "Ocurrió un error al cargar las materias reprobadas por grupo";
- $error = true;
- //print_r($stmt->errorInfo());
- }else{
- $return["query"] = 'Select * from fs_reprobadas_grupo('.$_SESSION["periodo_id"].', '.$plan.', '.$sem.')';
- $rs = $stmt->fetchAll();
- $return["query_total"] = count($rs);
- $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("total"=>0, "reprobados"=>0, "materia"=>$mat["Materia_desc"]);
- }
- }
- $gpoArr[$g] = array("id" => $grupo["Grupo_id"], "desc" =>$grupo["Grupo_desc"]." ".$grupo["Carrera_prefijo"], "califArr"=>array());
- $califArr[$grupo["Materia_id"]] = array("total"=>$grupo["Calificacion_total"], "reprobadas"=>$grupo["Calificacion_reprobadas"],
- "data"=>($grupo["Calificacion_total"]==0)?0:round($grupo["Calificacion_reprobadas"]*100/$grupo["Calificacion_total"]), "materia"=>$grupo["Materia_desc"]);
- }
- if($grupo_last != -1){
- $gpoArr[$g]["califArr"]=removeKey($califArr);
- }
- unset($g);
- }
- $stmt->closeCursor();
- $return["grupoArr"] = $gpoArr;
- $return["labelArr"] = $labelsArr;
- }
- }
- $return["json"] = json_encode($return);
- echo json_encode($return);
- ?>
|