solicitud_insert.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  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_new = DateTime::createFromFormat('d/m/Y', $fecha)->format('Y-m-d')." ".$hora;
  57. $fecha_fin_new = date("Y-m-d", strtotime($fecha_new))." ".$duracion_tiempo;
  58. $dia_new = date('w', strtotime($fecha_new));
  59. $fecha_falta = DateTime::createFromFormat('d/m/Y', $fecha_falta)->format('Y-m-d');
  60. $dia_falta = date('w', strtotime($fecha_falta));
  61. //Valida que tenga clase en la fecha de falta
  62. if(intval($dia) != intval($dia_falta)){
  63. header("Location:".$pag."?error=11");
  64. /*print_r($_POST);
  65. echo 'SELECT * from horario_view where horario_id = '.$horario;
  66. echo intval($dia)." != ".intval($dia_falta);*/
  67. exit();
  68. }
  69. $fecha_nueva = date('d/m/Y', strtotime($fecha_new));
  70. $fecha_clase = date('d/m/Y', strtotime($fecha_falta));
  71. break;
  72. case 2://Cambio
  73. $fecha_cambio = DateTime::createFromFormat('d/m/Y', $fecha_cambio)->format('Y-m-d');
  74. $dia_falta = date('w', strtotime($fecha_cambio));
  75. $fecha_nueva = date('d/m/Y', strtotime($fecha_cambio));
  76. break;
  77. case 3://Solicitud de espacio
  78. $fecha_new = DateTime::createFromFormat('d/m/Y', $fecha)->format('Y-m-d')." ".$hora;
  79. $fecha_fin_new = date("Y-m-d", strtotime($fecha_new))." ".$duracion_tiempo;
  80. $dia_new = date('w', strtotime($fecha_new));
  81. $fecha_nueva = date('d/m/Y', strtotime($fecha_new));
  82. break;
  83. case 4://Cambio permanente
  84. $fecha_new = DateTime::createFromFormat('d/m/Y', $fecha)->format('Y-m-d')." ".$hora;
  85. $fecha_fin_new = date("Y-m-d", strtotime($fecha_new))." ".$duracion_tiempo;
  86. $dia_new = date('w', strtotime($fecha_new));
  87. $fecha_cambio = DateTime::createFromFormat('d/m/Y', $fecha_cambio)->format('Y-m-d');
  88. $dia_falta = date('w', strtotime($fecha_cambio));
  89. $fecha_nueva = date('d/m/Y', strtotime($fecha_new));
  90. $fecha_clase = date('d/m/Y', strtotime($fecha_cambio));
  91. break;
  92. }
  93. if(isset($materia) && $materia!= null && $tipo !=3){
  94. //Obtiene materia
  95. $materia_rs = $db->querySingle('SELECT materia_nombre from materia where materia_id = :mat',[':mat' => $materia]);
  96. }
  97. $query = ":f_falta, :f_nueva, :hora_nueva, :prof, :desc, :edo, :alumnos, :aula, :solicitudtipo, :usr, :duracion, :hor, :bloque, :ciclo";
  98. switch($tipo){
  99. case 1://Reposición
  100. $traslape = $db->querySingle('SELECT * from traslape_profesor_reposicion(:prof, :fecha, :hora, :dur)',
  101. [':prof' => $prof, ':fecha'=>DateTime::createFromFormat('d/m/Y', $fecha)->format('Y-m-d'), ':hora'=>$hora, ':dur'=>$duracion_tiempo]
  102. )["traslape_profesor_reposicion"];
  103. if($traslape){
  104. //print_r($_POST);
  105. //echo "SELECT * from traslape_profesor_reposicion($prof,'".DateTime::createFromFormat('d/m/Y', $fecha)->format('Y-m-d')."' , '$hora', $duracion)";
  106. header("Location:".$pag."?error=9");
  107. exit();
  108. }
  109. $db_params=[
  110. ":f_falta"=>$fecha_falta, ":f_nueva"=>$fecha_new, ":hora_nueva"=>$hora, ":prof"=>$prof, ":desc"=>$comentario,
  111. ":edo"=>1, ":alumnos"=>$alumnos, ":aula"=>$aula, ":solicitudtipo"=>$tipo, ":usr"=>$user->user["id"],
  112. ":duracion"=>$duracion_tiempo, ":hor"=>$horario, ":bloque"=>$bloque, ":ciclo"=>$ciclo
  113. ];
  114. $asunto = "Solicitud - Reposición nueva";
  115. $texto = "<p>Se creó una nueva solicitud de reposición.</p>";
  116. $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>";
  117. /*
  118. $log = new LogActividad();
  119. $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."]";
  120. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);*/
  121. break;
  122. case 2:
  123. $db_params=[
  124. ":f_falta"=>$fecha_cambio, ":f_nueva"=>$fecha_cambio, ":hora_nueva"=>$hora, ":prof"=>$prof, ":desc"=>$comentario,
  125. ":edo"=>1, ":alumnos"=>$alumnos, ":aula"=>$aula, ":solicitudtipo"=>$tipo, ":usr"=>$user->user["id"],
  126. ":duracion"=>$duracion_tiempo, ":hor"=>$horario, ":bloque"=>$bloque, ":ciclo"=>$ciclo
  127. ];
  128. $asunto = "Solicitud - Cambio de salón";
  129. $texto = "<p>Se creó una nueva solicitud de cambio de salón.</p>";
  130. $texto .= "<p>El día <b>".$fecha_nueva." a las ".$hora." hrs. </b>";
  131. /*
  132. $log = new LogActividad();
  133. $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."]";
  134. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
  135. */
  136. break;
  137. case 3:
  138. $db_params=[
  139. ":f_falta"=>null, ":f_nueva"=>$fecha_new, ":hora_nueva"=>$hora, ":prof"=>$prof, ":desc"=>$comentario,
  140. ":edo"=>1, ":alumnos"=>$alumnos, ":aula"=>$aula, ":solicitudtipo"=>$tipo, ":usr"=>$user->user["id"],
  141. ":duracion"=>$duracion_tiempo
  142. ];
  143. $query = ":f_falta, :f_nueva, :hora_nueva, :prof, :desc, :edo, :alumnos, :aula, :solicitudtipo, :usr, :duracion";
  144. $asunto = "Solicitud - Asignación de espacio";
  145. $texto = "<p>Se creó una nueva solicitud de asignación de salón.</p>";
  146. $texto .= "<p>El día <b>".$fecha_nueva." a las ".$hora." hrs. </b>";
  147. break;
  148. case 4:
  149. $db_params=[
  150. ":f_falta"=>$fecha_cambio, ":f_nueva"=>$fecha_new, ":hora_nueva"=>$hora, ":prof"=>$prof, ":desc"=>$comentario,
  151. ":edo"=>1, ":alumnos"=>$alumnos, ":aula"=>$aula, ":solicitudtipo"=>$tipo, ":usr"=>$user->user["id"],
  152. ":duracion"=>$duracion_tiempo, ":hor"=>$horario, ":bloque"=>$bloque, ":ciclo"=>$ciclo
  153. ];
  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> 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. //header("Location: ".$pag."?error=1");
  164. exit();
  165. }
  166. MandaCorreos::enviarCorreo($db, $asunto, $texto, $user->facultad["facultad_id"], MandaCorreos::COORDINADOR);
  167. /*if($to!= "" && ENVIO_CORREOS){
  168. $texto .= "<p>Ingresa al <a href='https://paad.lci.ulsa.mx'>sistema PAAD</a> para autorizarlo.</p>";
  169. $asunto = "Reposición nueva - solicitud";
  170. //crear plantilla
  171. $texto = '<body >
  172. <img src="https://paad.lci.ulsa.mx/imagenes/logo_lasalle.png" alt="La Salle" style="margin-bottom:60px">
  173. '.$texto.'
  174. </body>';
  175. require_once('../include/phpmailer/PHPMailerAutoload.php');
  176. if($_ENV['DB_NAME'] == "paad_pruebas"){
  177. $asunto = "PRUEBAS-".$asunto;
  178. Mailer::enviarCorreo("alejandro.lara@lasalle.mx", $asunto, $texto, true);
  179. }else{
  180. Mailer::enviarCorreo($to, $asunto, $texto, true);
  181. }
  182. }*/
  183. header("Location: ".$pag."?ok=0");
  184. exit();
  185. ?>