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{ $idArr = $_POST["idArr"]; $plan = filter_input(INPUT_POST, "plan", FILTER_SANITIZE_NUMBER_INT);//limpia texto $tipo = filter_input(INPUT_POST, "tipo_calif", FILTER_SANITIZE_NUMBER_INT);//limpia texto $error = true; $return["error"] = ""; try { $pdo->beginTransaction(); $error = false; $alumnosRes = array(); //---- Selecciona datos de alumnos ---- $stmt = $pdo->prepare('Select * from fs_alumnobusca(NULL, :id, NULL, :plan, NULL, 1, 0, NULL)'); $stmt->bindParam(":plan", $plan); foreach($idArr as $id){ $id_num = intval($id); $stmt->bindParam(":id", $id_num);//busca claves que contengan $id if(!$stmt->execute()){ $t = $stmt->errorInfo(); $return["error"] .= "Ocurrió un error al seleccionar el alumno '".$id."'. ".$t[2]; $error = true; }else{ foreach($stmt->fetchAll() as $al){ if($al["Usuario_claveULSA"] == $id){//valida que sea clave completa $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++){ if($tipo == 2){ $stmt = $pdo->prepare('Select * from fs_alumnomaterias_ordinario(:id, :periodo)'); }else{ $stmt = $pdo->prepare('Select * from fs_alumnomaterias_extraordinario(:id, :periodo, :tipo)'); $stmt->bindParam(":tipo", $tipo); } $stmt->bindParam(":id", $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 '".$id."'. ".$t[2]; $error = true; }else{ $matRes = array(); foreach($stmt->fetchAll() as $mat){ $matRes[] = 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" => trim($mat["Grupo_desc"]." ".$mat["Carrera_prefijo"]), "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"]); } $alumnosRes[$i]["matArr"] = $matRes; } //Otras dependencias if($tipo == 2){ $stmt = $pdo->prepare('Select * from fs_alumnomaterias_ordinariootras(:id, :periodo, :plan)'); }/*else{ $stmt = $pdo->prepare('Select * from fs_alumnomaterias_extraordinariootras(:id, :periodo, :tipo)'); $stmt->bindParam(":tipo", $tipo); }*/ $stmt->bindParam(":id", $alumnosRes[$i]["id"]); $stmt->bindParam(":periodo", $_SESSION["periodo_id"]); $stmt->bindParam(":plan", $plan); if(!$stmt->execute()){ $t = $stmt->errorInfo(); $return["error"] .= "Ocurrió un error al seleccionar las materias de área común del alumno '".$id."'. ".$t[2]; $error = true; }else{ $matRes = array(); foreach($stmt->fetchAll() as $mat){ $matRes[] = array("id" => $mat["Materia_id"], "desc" => $mat["Materia_desc"], "clave"=>$mat["Materia_clave"], "plan"=>$mat["Carrera_desc"]." ". $mat["PlanEstudio_desc"], "sem"=> $mat["Materia_semestre"], "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"]); } $alumnosRes[$i]["otrasArr"] = $matRes; } } $stmt->closeCursor(); } if(!$error){ $pdo->commit(); unset($return["error"]); $return["ok"] = "Las materias se cargaron correctamente"; $return["alumnos"] = $alumnosRes; }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); ?>