horariogrupo_alumnos_select.php 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <?php
  2. /* AJAX
  3. * Selecciona los datos de la carrera
  4. * Recibe:
  5. * id - ID de grupo,
  6. * json
  7. * Return:
  8. * resultado o cadena de error
  9. */
  10. require_once("../../include/constantes.php");
  11. require_once("../../include/nocache.php");
  12. require_once("../../include/util.php");
  13. require_once("../../include/bd_pdo.php");
  14. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  15. $grupo = filter_input(INPUT_POST, "id", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  16. $editable = false;
  17. $error = false;
  18. $stmt = $pdo->prepare('Select * from fs_horariogrupo(:gpo, NULL, false)');//obtiene lo que no está en el área del puesto
  19. $stmt->bindParam(":gpo", $grupo);
  20. if(!$stmt->execute()){
  21. $t = $stmt->errorInfo();
  22. $return["error"] = "Ocurrió un error al obtener los horarios del grupo ".$t[2];
  23. $error = true;
  24. }
  25. $horario_rs = $stmt->fetchAll();
  26. $stmt->closeCursor();
  27. $json = array();
  28. if(isset($horario_rs) && is_array($horario_rs) && count($horario_rs)){
  29. //Obtiene fechas de periodo
  30. $stmt = $pdo->prepare('Select * from fs_periodogrupo(:gpo)');
  31. $stmt->bindParam(":gpo", $grupo);
  32. if(!$stmt->execute()){
  33. $return["error"] = "Ocurrió un error al obtener los datos del periodo ".$t[2];
  34. $error = true;
  35. }
  36. $periodo_rs = $stmt->fetch();
  37. $stmt->closeCursor();
  38. $periodo_inicial = (fechaGuion($periodo_rs["Periodo_fecha_inicial"]));
  39. $periodo_final = (fechaGuion($periodo_rs["Periodo_fecha_final"]));
  40. foreach($horario_rs as $horario){//crea objeto json
  41. $error = false;
  42. $clase_tmp =array();
  43. $clase_tmp["id"] = $horario["HorarioGrupo_id"];
  44. $clase_tmp["dia"] = $horario["Dia_id"];
  45. $clase_tmp["hora"] = substr($horario["Horario_hora"], 0, 5);//hh:mm
  46. $clase_tmp["duracion"] = $horario["Horario_duracion"];
  47. $clase_tmp["materia"] = $horario["Materia_id"];
  48. $clase_tmp["materia_nombre"] = $horario["Materia_desc"];
  49. if($horario["Salon_id"] == ""){
  50. $clase_tmp["salon"] = "";
  51. $clase_tmp["salon_nombre"] = "";
  52. $clase_tmp["salon_nombre_completo"] = "";
  53. }else{
  54. $clase_tmp["salon"] = $horario["Salon_id"];
  55. $clase_tmp["salon_nombre"] = $horario["Salon_desc"];
  56. if( strlen($horario["Salon_desc_larga"]) > 0){
  57. $clase_tmp["salon_nombre_completo"] = $horario["Salon_desc"]." [".$horario["Salon_desc_larga"]."]";
  58. }else
  59. $clase_tmp["salon_nombre_completo"] = $horario["Salon_desc"];
  60. }
  61. $clase_tmp["fecha_inicial"] = fechaSlash($horario["fecha_inicial"]);
  62. $clase_tmp["fecha_final"] = fechaSlash($horario["fecha_final"]);
  63. $clase_tmp["color"] = $horario["Area_color"];
  64. $clase_tmp["alerta"] = $horario["Area_hasAlerta"];
  65. if(isset($horario["TipoSubmateria_id"]) && $horario["TipoSubmateria_id"] != "")
  66. $clase_tmp["tipo"] = $horario["TipoSubmateria_id"];
  67. else
  68. $clase_tmp["tipo"] = 0;
  69. $completo = 0;
  70. $fecha_ini = (fechaGuion($horario["fecha_inicial"]));
  71. $fecha_fin = (fechaGuion($horario["fecha_final"]));
  72. //$return["comparacion"] = "[".$periodo_inicial."] == [".$fecha_ini."] && [".$periodo_final."] == [".$fecha_fin."]";//debug
  73. if( $periodo_inicial == $fecha_ini && $periodo_final == $fecha_fin){
  74. $completo = 1;
  75. }
  76. $clase_tmp["periodo_completo"] = $completo;
  77. $clase_tmp["periodo_debug"] = $periodo_inicial." == ".$fecha_ini." && ".$periodo_final." == ".$fecha_fin;
  78. $clase_tmp["profesores"] = array();
  79. //----- Carga profesores ----
  80. if($clase_tmp["tipo"] == 0){
  81. $stmt = $pdo->prepare('Select * from fs_profesorhorariogrupo(:id)');
  82. }else{
  83. $stmt = $pdo->prepare('Select * from fs_submateriahorariogrupoprofesor(:id, NULL)');
  84. }
  85. $stmt->bindParam(":id", $horario["HorarioGrupo_id"]);
  86. if(!$stmt->execute()){
  87. $t = $stmt->errorInfo();
  88. $return["error"] = "Ocurrió un error al obtener los datos de los profesores ".$t[2];
  89. $error = true;
  90. break;
  91. }
  92. $profesores_rs = $stmt->fetchAll();
  93. $stmt->closeCursor();
  94. if(count($profesores_rs) > 0){
  95. foreach($profesores_rs as $profesor){
  96. $profesor_tmp = array();
  97. $profesor_tmp["profesor"] = $profesor["Usuario_id"];
  98. $profesor_tmp["profesor_nombre"] = $profesor["Usuario_apellidos"]." ".$profesor["Usuario_nombre"];
  99. if($clase_tmp["tipo"] != 0){
  100. $profesor_tmp["submateria"] = $profesor["Submateria_id"];
  101. if($profesor["Salon_desc"] == ""){
  102. $profesor_tmp["salon"] = "";
  103. $profesor_tmp["salon_nombre"] = "";
  104. $profesor_tmp["salon_nombre_completo"] = "";
  105. }else{
  106. $profesor_tmp["salon"] = $profesor["Salon_id"];
  107. $profesor_tmp["salon_nombre"] = $profesor["Salon_desc"];
  108. if( strlen($profesor["Salon_desc_larga"]) > 0){
  109. $profesor_tmp["salon_nombre_completo"] = $profesor["Salon_desc"]." [".$profesor["Salon_desc_larga"]."]";
  110. }else
  111. $profesor_tmp["salon_nombre_completo"] = $profesor["Salon_desc"];
  112. }
  113. }
  114. if($profesor_tmp["profesor"] != "" && $profesor_tmp["profesor"] != 0)
  115. $clase_tmp["profesores"][] = $profesor_tmp;//agrega profesor
  116. }
  117. }
  118. //----- Carga submaterias ----
  119. $stmt = $pdo->prepare('Select * from fs_submateriahorariogrupo(:id)');
  120. $stmt->bindParam(":id", $horario["HorarioGrupo_id"]);
  121. if(!$stmt->execute()){
  122. $t = $stmt->errorInfo();
  123. $return["error"] = "Ocurrió un error al obtener los datos de los profesores ".$t[2];
  124. $error = true;
  125. break;
  126. }
  127. $clase_tmp["submaterias"] = array();
  128. $submaterias_rs = $stmt->fetchAll();
  129. $stmt->closeCursor();
  130. if(count($submaterias_rs) > 0){
  131. foreach($submaterias_rs as $submateria){
  132. if(isset($submateria["Submateria_id"]) && $submateria["Submateria_id"] != "" && $submateria["Submateria_id"] != 0){
  133. $sub_tmp = array();
  134. $sub_tmp["submateria"] = $submateria["Submateria_id"];
  135. $sub_tmp["submateria_nombre"] = $submateria["Submateria_desc"];
  136. $sub_tmp["fecha_inicial"] = fechaSlash($submateria["fecha_inicial"]);
  137. $sub_tmp["fecha_final"] = fechaSlash($submateria["fecha_final"]);
  138. $sub_tmp["activa"] = $submateria["Submateria_activa"];
  139. /*if($submateria["Salon_desc"] == ""){
  140. $sub_tmp["salon"] = "";
  141. $sub_tmp["salon_nombre"] = "";
  142. $sub_tmp["salon_nombre_completo"] = "";
  143. }else{
  144. $sub_tmp["salon"] = $submateria["Salon_id"];
  145. $sub_tmp["salon_nombre"] = $submateria["Salon_desc"];
  146. if( strlen($submateria["Salon_desc_larga"]) > 0){
  147. $sub_tmp["salon_nombre_completo"] = $submateria["Salon_desc"]." [".$submateria["Salon_desc_larga"]."]";
  148. }else
  149. $sub_tmp["salon_nombre_completo"] = $submateria["Salon_desc"];
  150. }*/
  151. $clase_tmp["submaterias"][] = $sub_tmp;//agrega submateria
  152. }
  153. }
  154. }
  155. // ----- Carga vinculadas ---
  156. $stmt = $pdo->prepare('Select * from fs_horariogrupovinculado_all(:id)');//incluye id actual para validaciones
  157. $stmt->bindParam(":id", $horario["HorarioGrupo_id"]);
  158. if(!$stmt->execute()){
  159. $t = $stmt->errorInfo();
  160. $return["error"] = "Ocurrió un error al obtener los datos de las materias vinculadas ".$t[2];
  161. $error = true;
  162. break;
  163. }
  164. $vinculadas_rs = $stmt->fetchAll();
  165. $stmt->closeCursor();
  166. $stmt = null; // cierra conexion
  167. $clase_tmp["vinculada"] = array();
  168. foreach($vinculadas_rs as $vinculada){
  169. $vinculada_tmp = array();
  170. $vinculada_tmp["id_db"] = $vinculada["HorarioGrupo_id"];
  171. $vinculada_tmp["id_mat"] = $vinculada["Materia_id"];
  172. $vinculada_tmp["id_gpo"] = $vinculada["Grupo_id"];
  173. //if($_SESSION["nivel_id"] == 1)
  174. $vinculada_tmp["nombre"] = $vinculada["Grupo_desc"]." ".$vinculada["Carrera_prefijo"]." (".$vinculada["Materia_desc"].")";
  175. //else
  176. //$vinculada_tmp["nombre"] = $vinculada["Grupo_desc"]." (".$vinculada["Materia_desc"].")";
  177. $clase_tmp["vinculada"][] = $vinculada_tmp;//agrega profesor
  178. }
  179. if(!$error){
  180. $json[] = $clase_tmp;
  181. }
  182. }//fin foreach
  183. }//fin tiene datos
  184. $return["horario"] = $json;
  185. $return["ok"] = "El horario se cargó correctamente";
  186. $return["json"] = json_encode($return);
  187. echo json_encode($return);
  188. ?>