calificamaterias_select.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. /* AJAX
  3. * Selecciona los datos de la carrera
  4. * Recibe:
  5. * json de la clase
  6. * Return:
  7. * resultado o cadena de error
  8. */
  9. require_once("../../include/constantes.php");
  10. require_once("../../include/nocache.php");
  11. require_once("../../include/bd_pdo.php");
  12. require_once("../../classes/ValidaSesion.php");
  13. //require_once("../classes/LogActividad.php");//die on error
  14. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  15. $objSesion = new ValidaSesion($pdo, 102, GEMA);
  16. if(!$objSesion->tieneAcceso() || !$objSesion->puedeEditar()){
  17. $return["error"] = "Error! No tienes permisos para realizar esta acción.";
  18. }else if(!isset($_POST["idArr"]) || !isset($_POST["plan"]) ){
  19. $return["error"] = "Error! No se recibió la información de los alumnos.";
  20. }else{
  21. $idArr = $_POST["idArr"];
  22. $plan = filter_input(INPUT_POST, "plan", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  23. $tipo = filter_input(INPUT_POST, "tipo_calif", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  24. $error = true;
  25. $return["error"] = "";
  26. try {
  27. $pdo->beginTransaction();
  28. $error = false;
  29. $alumnosRes = array();
  30. //---- Selecciona datos de alumnos ----
  31. $stmt = $pdo->prepare('Select * from fs_alumnobusca(NULL, :id, NULL, :plan, NULL, 1, 0, NULL)');
  32. $stmt->bindParam(":plan", $plan);
  33. foreach($idArr as $id){
  34. $id_num = intval($id);
  35. $stmt->bindParam(":id", $id_num);//busca claves que contengan $id
  36. if(!$stmt->execute()){
  37. $t = $stmt->errorInfo();
  38. $return["error"] .= "Ocurrió un error al seleccionar el alumno '".$id."'. ".$t[2];
  39. $error = true;
  40. }else{
  41. foreach($stmt->fetchAll() as $al){
  42. if($al["Usuario_claveULSA"] == $id){//valida que sea clave completa
  43. $alumnosRes[] = array("id" => $al["Usuario_claveULSA"], "nombre" => $al["Usuario_apellidos"]." ".$al["Usuario_nombre"], "plan"=>$al["Carrera_desc"]." ". $al["PlanEstudio_desc"], "matArr"=>array());
  44. }
  45. }
  46. }
  47. }
  48. $stmt->closeCursor();
  49. if(!$error){
  50. for($i=0; $i < count($alumnosRes); $i++){
  51. if($tipo == 2){
  52. $stmt = $pdo->prepare('Select * from fs_alumnomaterias_ordinario(:id, :periodo)');
  53. }else{
  54. $stmt = $pdo->prepare('Select * from fs_alumnomaterias_extraordinario(:id, :periodo, :tipo)');
  55. $stmt->bindParam(":tipo", $tipo);
  56. }
  57. $stmt->bindParam(":id", $alumnosRes[$i]["id"]);
  58. $stmt->bindParam(":periodo", $_SESSION["periodo_id"]);
  59. if(!$stmt->execute()){
  60. $t = $stmt->errorInfo();
  61. $return["error"] .= "Ocurrió un error al seleccionar las materias del alumno '".$id."'. ".$t[2];
  62. $error = true;
  63. }else{
  64. $matRes = array();
  65. foreach($stmt->fetchAll() as $mat){
  66. $matRes[] = array("id" => $mat["Materia_id"], "desc" => $mat["Materia_desc"], "clave"=>$mat["Materia_clave"], "plan"=>$mat["Carrera_desc"]." ". $mat["PlanEstudio_desc"],
  67. "sem"=> $mat["Materia_semestre"], "grupo_id"=>$mat["Grupo_id"], "grupo" => trim($mat["Grupo_desc"]." ".$mat["Carrera_prefijo"]),
  68. "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"]);
  69. }
  70. $alumnosRes[$i]["matArr"] = $matRes;
  71. }
  72. //Otras dependencias
  73. if($tipo == 2){
  74. $stmt = $pdo->prepare('Select * from fs_alumnomaterias_ordinariootras(:id, :periodo, :plan)');
  75. }/*else{
  76. $stmt = $pdo->prepare('Select * from fs_alumnomaterias_extraordinariootras(:id, :periodo, :tipo)');
  77. $stmt->bindParam(":tipo", $tipo);
  78. }*/
  79. $stmt->bindParam(":id", $alumnosRes[$i]["id"]);
  80. $stmt->bindParam(":periodo", $_SESSION["periodo_id"]);
  81. $stmt->bindParam(":plan", $plan);
  82. if(!$stmt->execute()){
  83. $t = $stmt->errorInfo();
  84. $return["error"] .= "Ocurrió un error al seleccionar las materias de área común del alumno '".$id."'. ".$t[2];
  85. $error = true;
  86. }else{
  87. $matRes = array();
  88. foreach($stmt->fetchAll() as $mat){
  89. $matRes[] = array("id" => $mat["Materia_id"], "desc" => $mat["Materia_desc"], "clave"=>$mat["Materia_clave"], "plan"=>$mat["Carrera_desc"]." ". $mat["PlanEstudio_desc"],
  90. "sem"=> $mat["Materia_semestre"],
  91. "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"]);
  92. }
  93. $alumnosRes[$i]["otrasArr"] = $matRes;
  94. }
  95. }
  96. $stmt->closeCursor();
  97. }
  98. if(!$error){
  99. $pdo->commit();
  100. unset($return["error"]);
  101. $return["ok"] = "Las materias se cargaron correctamente";
  102. $return["alumnos"] = $alumnosRes;
  103. }else
  104. $pdo->rollBack();
  105. $stmt = null; // cierra conexion
  106. } catch(PDOException $e) {
  107. $pdo->rollBack();
  108. $return["error"] = "Ocurrió un error al obtener las materias de los alumnos.";
  109. }
  110. }
  111. $return["json"] = json_encode($return);
  112. echo json_encode($return);
  113. ?>