solicitud_insert.php 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <?php
  2. /*
  3. * Inserta reposición
  4. */
  5. $pag = "../solicitud_crear.php";
  6. $ruta = "../";
  7. require_once "../class/c_login.php";
  8. require_once "../class/manda_correo.php";
  9. define("COORDINADOR", 9);
  10. define("ENVIO_CORREOS", true);
  11. // check if the session is started
  12. if (!isset($_SESSION['user']))
  13. die('No se ha iniciado sesión');
  14. $user = unserialize($_SESSION['user']);
  15. //$user->access();
  16. $estado = filter_input(INPUT_POST, "estado", FILTER_SANITIZE_NUMBER_INT);//
  17. $tipo = filter_input(INPUT_POST, "tipo", FILTER_SANITIZE_NUMBER_INT);//
  18. $duracion_id = filter_input(INPUT_POST, "duracion", FILTER_SANITIZE_NUMBER_INT);//Id reposicion
  19. $bloque = filter_input(INPUT_POST, "bloque", FILTER_SANITIZE_NUMBER_INT);//
  20. $ciclo = filter_input(INPUT_POST, "ciclo", FILTER_SANITIZE_NUMBER_INT);//
  21. $fecha_falta = trim(htmlspecialchars($_POST["fecha_falta"], ENT_QUOTES, "UTF-8"));//Reposicion
  22. $fecha = trim(htmlspecialchars($_POST["fecha_nueva"], ENT_QUOTES, "UTF-8"));//Reposicion
  23. $fecha_cambio = trim(htmlspecialchars($_POST["fecha_cambio"], ENT_QUOTES, "UTF-8"));//Cambio salón
  24. $hora_ini = filter_input(INPUT_POST, "hora_ini", FILTER_SANITIZE_NUMBER_INT);//limpia texto hora reposicion
  25. $min_ini = filter_input(INPUT_POST, "min_ini", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  26. $horario = filter_input(INPUT_POST, "horario", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  27. $alumnos = filter_input(INPUT_POST, "alumnos", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  28. $aula = filter_input(INPUT_POST, "aula", FILTER_SANITIZE_NUMBER_INT);//1 regular , 2 sala computo, 3 otro facultad
  29. $salon = NULL;
  30. /*if(!$user->jefe_carrera){//coordinador
  31. if(isset($_POST["salon"]) && $_POST["salon"] != "")
  32. $salon = filter_input(INPUT_POST, "dlSalon", FILTER_SANITIZE_NUMBER_INT);//1 regular , 2 sala computo, 3 otro facultad
  33. }*/
  34. if(empty($_POST["prof"]))
  35. $prof = $user->user["id"];
  36. else
  37. $prof = filter_input(INPUT_POST, "prof", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  38. $comentario = trim(htmlspecialchars($_POST["comentario"], ENT_QUOTES, "UTF-8"));//limpia texto
  39. $duracion_rs = $db->querySingle("select * from duracion where duracion_id = :id", [":id"=>$duracion_id]);
  40. $duracion_tiempo = $duracion_rs["duracion_interval"];
  41. //-- Obtiene datos de horario regular de clase
  42. if($horario!= null && $tipo !=3)
  43. {
  44. $horario_rs = $db->querySingle('SELECT * from horario_view where horario_id = :hor',
  45. [':hor' => $horario]
  46. );
  47. $materia = $horario_rs["materia_id"];
  48. $dia = $horario_rs["horario_dia"];
  49. $hora_orig = $horario_rs["horario_hora"];
  50. }else{
  51. $dia = date('w', strtotime($fecha));
  52. }
  53. $hora = $hora_ini.":".$min_ini.":00";
  54. switch($tipo){
  55. case 1://Reposición
  56. $fecha_nueva = $fecha;
  57. $fecha_clase = $fecha_falta;
  58. $fecha_new = DateTime::createFromFormat('d/m/Y', $fecha)->format('Y-m-d')." ".$hora;
  59. $fecha_fin_new = date("Y-m-d", strtotime($fecha_new))." ".$duracion_tiempo;
  60. $dia_new = date('w', strtotime($fecha_new));
  61. $fecha_falta = DateTime::createFromFormat('d/m/Y', $fecha_falta)->format('Y-m-d');
  62. $dia_falta = date('w', strtotime($fecha_falta));
  63. //Valida que tenga clase en la fecha de falta
  64. if(intval($dia) != intval($dia_falta)){
  65. header("Location:".$pag."?error=11");
  66. /*print_r($_POST);
  67. echo 'SELECT * from horario_view where horario_id = '.$horario;
  68. echo intval($dia)." != ".intval($dia_falta);*/
  69. exit();
  70. }
  71. break;
  72. case 2://Cambio
  73. $fecha_nueva = $fecha_cambio;
  74. $fecha_cambio = DateTime::createFromFormat('d/m/Y', $fecha_cambio)->format('Y-m-d');
  75. $dia_falta = date('w', strtotime($fecha_cambio));
  76. break;
  77. case 3://Solicitud de espacio
  78. $fecha_nueva = $fecha;
  79. $fecha_new = DateTime::createFromFormat('d/m/Y', $fecha)->format('Y-m-d')." ".$hora;
  80. $fecha_fin_new = date("Y-m-d", strtotime($fecha_new))." ".$duracion_tiempo;
  81. $dia_new = date('w', strtotime($fecha_new));
  82. break;
  83. case 4://Cambio permanente
  84. $fecha_nueva = $fecha;
  85. $fecha_clase = $fecha_cambio;
  86. $fecha_new = DateTime::createFromFormat('d/m/Y', $fecha)->format('Y-m-d')." ".$hora;
  87. $fecha_cambio = DateTime::createFromFormat('d/m/Y', $fecha_cambio)->format('Y-m-d')." ".$hora;
  88. $fecha_fin_new = date("Y-m-d", strtotime($fecha_new))." ".$duracion_tiempo;
  89. $dia_new = date('w', strtotime($fecha_new));
  90. break;
  91. }
  92. if(isset($materia) && $materia!= null && $tipo !=3){
  93. //Obtiene materia
  94. $materia_rs = $db->querySingle('SELECT materia_nombre from materia where materia_id = :mat',[':mat' => $materia]);
  95. }
  96. $query = ":f_falta, :f_nueva, :hora_nueva, :prof, :desc, :edo, :alumnos, :aula, :solicitudtipo, :usr, :duracion, :hor, :bloque, :ciclo";
  97. switch($tipo){
  98. case 1://Reposición
  99. $traslape = $db->querySingle('SELECT * from traslape_profesor_reposicion(:prof, :fecha, :hora, :dur)',
  100. [':prof' => $prof, ':fecha'=>DateTime::createFromFormat('d/m/Y', $fecha)->format('Y-m-d'), ':hora'=>$hora, ':dur'=>$duracion_tiempo]
  101. )["traslape_profesor_reposicion"];
  102. if($traslape){
  103. //print_r($_POST);
  104. //echo "SELECT * from traslape_profesor_reposicion($prof,'".DateTime::createFromFormat('d/m/Y', $fecha)->format('Y-m-d')."' , '$hora', $duracion)";
  105. header("Location:".$pag."?error=9");
  106. exit();
  107. }
  108. $db_params=[
  109. ":f_falta"=>$fecha_falta, ":f_nueva"=>$fecha_new, ":hora_nueva"=>$hora, ":prof"=>$prof, ":desc"=>$comentario,
  110. ":edo"=>1, ":alumnos"=>$alumnos, ":aula"=>$aula, ":solicitudtipo"=>$tipo, ":usr"=>$user->user["id"],
  111. ":duracion"=>$duracion_tiempo, ":hor"=>$horario, ":bloque"=>$bloque, ":ciclo"=>$ciclo
  112. ];
  113. $asunto = "Solicitud - Reposición nueva";
  114. $texto = "<p>Se creó una nueva solicitud de reposición.</p>";
  115. $texto .= "<p><b>".mb_strtoupper($materia_rs["materia_nombre"])."</b> del día <b>".$fecha_falta." a las ".$hora_orig." hrs. </b> se propone reponer el <b>".$fecha_nueva." a las ".$hora." hrs.</b>";
  116. /*
  117. $log = new LogActividad();
  118. $desc_log = "Inserta reposición nueva ID[".$rs["fi_reposicion"]."] Fechas[".$fecha_falta.">".$fecha_new."] Periodo[".$_SESSION["periodo_id"]."] Materia[".$materia."] Profesor[".$prof."] Salon[".$salon."] Horario[".$horario."] Alumnos[".$alumnos."]";
  119. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);*/
  120. break;
  121. case 2:
  122. $db_params=[
  123. ":f_falta"=>$fecha_cambio, ":f_nueva"=>$fecha_cambio, ":hora_nueva"=>$hora, ":prof"=>$prof, ":desc"=>$comentario,
  124. ":edo"=>1, ":alumnos"=>$alumnos, ":aula"=>$aula, ":solicitudtipo"=>$tipo, ":usr"=>$user->user["id"],
  125. ":duracion"=>$duracion_tiempo, ":hor"=>$horario, ":bloque"=>$bloque, ":ciclo"=>$ciclo
  126. ];
  127. $asunto = "Solicitud - Cambio de salón";
  128. $texto = "<p>Se creó una nueva solicitud de cambio de salón.</p>";
  129. $texto .= "<p>El día <b>".$fecha_nueva." a las ".$hora." hrs. </b>";
  130. /*
  131. $log = new LogActividad();
  132. $desc_log = "Inserta reposición nueva ID[".$rs["fi_reposicion"]."] Fechas[".$fecha_cambio.">".$fecha_cambio_nueva."] Periodo[".$_SESSION["periodo_id"]."] Materia[".$materia."] Profesor[".$prof."] Salon[".$salon."] Horario[".$horario."] Alumnos[".$alumnos."]";
  133. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
  134. */
  135. break;
  136. case 3:
  137. $db_params=[
  138. ":f_nueva"=>$fecha_new, ":hora_nueva"=>$hora, ":prof"=>$prof, ":desc"=>$comentario,
  139. ":edo"=>1, ":alumnos"=>$alumnos, ":aula"=>$aula, ":solicitudtipo"=>$tipo, ":usr"=>$user->user["id"],
  140. ":duracion"=>$duracion_tiempo
  141. ];
  142. $query = "null, :f_nueva, :hora_nueva, :prof, :desc, :edo, :alumnos, :aula, :solicitudtipo, :usr, :duracion";
  143. $asunto = "Solicitud - Asignación de espacio";
  144. $texto = "<p>Se creó una nueva solicitud de asignación de salón.</p>";
  145. $texto .= "<p>El día <b>".$fecha_nueva." a las ".$hora." hrs. </b>";
  146. break;
  147. case 4:
  148. $db_params=[
  149. ":f_nueva"=>$fecha_new, ":hora_nueva"=>$hora, ":prof"=>$prof, ":desc"=>$comentario,
  150. ":edo"=>1, ":alumnos"=>$alumnos, ":aula"=>$aula, ":solicitudtipo"=>$tipo, ":usr"=>$user->user["id"],
  151. ":duracion"=>$duracion_tiempo, ":hor"=>$horario, ":bloque"=>$bloque, ":ciclo"=>$ciclo
  152. ];
  153. $query = "NULL, :f_nueva, :hora_nueva, :prof, :desc, :edo, :alumnos, :aula, :solicitudtipo, :usr, :duracion, :hor, :bloque, :ciclo";
  154. $asunto = "Solicitud - Cambio permanente";
  155. $texto = "<p>Se creó una nueva solicitud de asignación de salón permanente.</p>";
  156. $texto .= "<p><b>".mb_strtoupper($materia_rs["materia_nombre"])."</b> a partir del día <b>".$fecha_clase." a las ".$hora_orig." hrs. </b> se propone cambiar para el <b>".$fecha_nueva." a las ".$hora." hrs.</b>";
  157. break;
  158. }
  159. try{
  160. $db->query("SELECT * from fi_solicitud($query)", $db_params);
  161. }catch(Exception $e){
  162. echo "ERROR Cambio<br>".$e->getMessage();
  163. echo $query;
  164. print_r($db_params);
  165. //header("Location: ".$pag."?error=1");
  166. exit();
  167. }
  168. if(!MandaCorreos::enviarCorreo($db, $asunto, $texto, $user->facultad["facultad_id"], MandaCorreos::COORDINADOR)){
  169. echo "ERROR Correo<br>";
  170. //header("Location: ".$pag."?error=2");
  171. exit();
  172. }
  173. header("Location: ".$pag."?ok=0");
  174. exit();
  175. ?>