123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- <?php
- /* AJAX
- * Selecciona los datos de la carrera
- * Recibe:
- * json de la clase
- * Return:
- * resultado o cadena de error
- */
- require_once("../../include/constantes.php");
- require_once("../../include/nocache.php");
- require_once("../../include/bd_pdo.php");
- require_once("../../classes/ValidaSesion.php");
- //require_once("../classes/LogActividad.php");//die on error
- //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
- $objSesion = new ValidaSesion($pdo, 102, GEMA);
- if(!$objSesion->tieneAcceso() || !$objSesion->puedeEditar()){
- $return["error"] = "Error! No tienes permisos para realizar esta acción.";
- }else if(!isset($_POST["idArr"]) || !isset($_POST["plan"])){
- $return["error"] = "Error! No se recibió la información de los alumnos.";
- }else{
- $claveArr = $_POST["idArr"];
- $plan = filter_input(INPUT_POST, "plan", FILTER_SANITIZE_NUMBER_INT);//limpia texto
-
- $error = true;
- $return["error"] = "";
-
- try {
- $pdo->beginTransaction();
- $error = false;
- $alumnosRes = array();
- $remove = array();//claves de alumnos que no existen
-
- //---- Selecciona datos de alumnos ----
- /*$stmt = $pdo->prepare('Select * from fs_alumnobusca(NULL, :id, NULL, :plan, NULL, 1, 0, NULL)');*/
- $stmt = $pdo->prepare('Select * from fs_alumno(NULL, :clave) WHERE "PlanEstudio_id" = :plan');
- $stmt->bindParam(":plan", $plan);
-
- foreach($claveArr as $clave){
- $clave_num = intval($clave);
- $stmt->bindParam(":clave", $clave_num);//busca claves que contengan $clave
-
- if(!$stmt->execute()){
- $t = $stmt->errorInfo();
- $return["error"] .= "Ocurrió un error al seleccionar el alumno '".$clave."'. ".$t[2];
- $error = true;
- }else{
- $al = $stmt->fetch();
- if(empty($al["Usuario_claveULSA"]) || intval($al["Usuario_claveULSA"]) != $clave_num){
- $remove[] = $clave;
- }else{
- $alumnosRes[] = array("id" => $al["Usuario_claveULSA"], "nombre" => $al["Usuario_apellidos"]." ".$al["Usuario_nombre"],
- "plan"=>$al["Carrera_desc"]." ". $al["PlanEstudio_desc"], "matArr"=>array());
- }
- }
- }
- $stmt->closeCursor();
-
- if(!$error){
- for($i=0; $i < count($alumnosRes); $i++){
- $stmt = $pdo->prepare('Select * from fs_alumnomaterias_asignadas(:clave, :periodo, NULL)');
- $stmt->bindParam(":clave", $alumnosRes[$i]["id"]);
- $stmt->bindParam(":periodo", $_SESSION["periodo_id"]);
- if(!$stmt->execute()){
- $t = $stmt->errorInfo();
- $return["error"] .= "Ocurrió un error al seleccionar las materias del alumno '".$alumnosRes[$i]["id"]."'. ".$t[2];
- $error = true;
- }else{
- $matRes = array();
- $mat_last = -1;
- $m = 0;
- foreach($stmt->fetchAll() as $mat){
- if($mat_last != $mat["Materia_id"]){
- if($mat_last != -1){
- $matRes[$m]["califArr"]=$califArr;
- $m++;
- }
- $mat_last = $mat["Materia_id"];
- $califArr = array();
- }
- $matRes[$m] = array("id" => $mat["Materia_id"], "desc" => $mat["Materia_desc"], "clave"=>$mat["Materia_clave"], "plan"=>$mat["Carrera_desc"]." ". $mat["PlanEstudio_desc"],
- "sem"=> $mat["Materia_semestre"], "grupo_id"=>$mat["Grupo_id"], "grupo" => $mat["Grupo_desc"]." ".$mat["Carrera_prefijo"], "califArr"=>array());
- //if($mat["Calificacion_calif"] != null && $mat["Calificacion_calif"] != ""){
- $califArr[] = array("calif"=>$mat["Calificacion_calif"], "fecha"=>$mat["Calificacion_fecha"], "calif_tipo"=>$mat["TipoCalificacion_id"], "calif_tipo_desc"=>$mat["TipoCalificacion_desc"], "calif_tipo_corta"=>$mat["TipoCalificacion_desc_corta"], "revalidada"=>$mat["TipoCalificacion_esEquivalencia"]);
- //}
- }
- if($mat_last != -1){
- $matRes[$m]["califArr"]=$califArr;
- }
-
- $alumnosRes[$i]["matArr"] = $matRes;
- }
- }
- $stmt->closeCursor();
- }
-
-
- if(!$error){
- $pdo->commit();
- unset($return["error"]);
- $return["ok"] = "Las materias se cargaron correctamente";
- $return["alumnos"] = $alumnosRes;
- $return["remove"] = $remove;
- }else
- $pdo->rollBack();
- $stmt = null; // cierra conexion
- } catch(PDOException $e) {
- $pdo->rollBack();
- $return["error"] = "Ocurrió un error al obtener las materias de los alumnos.";
- }
- }
- $return["json"] = json_encode($return);
- echo json_encode($return);
- ?>
|