reposicion_autoriza.php 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <?php
  2. /*
  3. Cambia de estado la reposición
  4. */
  5. $pag = "../reposiciones_crear.php";
  6. $ruta = "../";
  7. require_once "../class/c_login.php";
  8. require_once "../class/mailer.php";
  9. define("COORDINADOR", 9);
  10. define("SUPERVISOR", 7);
  11. define("ENVIO_CORREOS", true);
  12. // check if the session is started
  13. if (!isset($_SESSION['user']))
  14. die('No se ha iniciado sesión');
  15. $user = unserialize($_SESSION['user']);
  16. $pag = "../reposiciones_autorizar.php";
  17. if(!isset($_POST["id"]) || !isset($_POST["edo"]) ){
  18. header("Location: ".$pag."?error=0");
  19. exit();
  20. }
  21. $id_repo = filter_input(INPUT_POST, "id", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  22. $edo = filter_input(INPUT_POST, "edo", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  23. if(isset($_POST["salon"]) && $_POST["salon"] != "")
  24. $salon = filter_input(INPUT_POST, "salon", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  25. //--------------
  26. //--------------
  27. //Obtiene datos reposición
  28. //TODO , SALÓN SALIÓ PENDIENTE Y FALTA REVISAR LISTA DE CORREOS TO
  29. $reposicion_rs = $db->querySingle('SELECT h.materia, r.fecha_nueva, r.hora_nueva, r.fecha_clase, h.horario_hora, h.facultad_id, h.facultad, f.clave_dependencia, s.salon_id, s.salon_array, r.motivo_cancelacion, ta.tipoaula_supervisor , ta.tipoaula_nombre
  30. from reposicion_solicitud r
  31. inner join horario_view h on h.horario_id = r.horario_id
  32. inner join facultad f on f.facultad_id = h.facultad_id
  33. inner join tipoaula ta on ta.tipoaula_id = r.tipoaula_id
  34. left join salon_view s on r.salon_id = s.salon_id
  35. where r.reposicion_solicitud_id = :id_repo',
  36. [':id_repo' => $id_repo]
  37. );
  38. if($reposicion_rs["salon_id"] == "" || $reposicion_rs["salon_id"] == NULL){
  39. $salon_desc = "Pendiente";
  40. }else{
  41. $salon_json = json_decode($reposicion_rs["salon_array"], true);
  42. if($salon_json[0]== "UNIVERSIDAD LA SALLE"){
  43. unset($salon_json[0]);
  44. }
  45. $salon_desc = join(" / ",$salon_json);
  46. }
  47. //Obtiene correos
  48. $correos_rs = $db->query('SELECT p.profesor_nombre, p.profesor_correo, u.usuario_nombre as jefe_nombre, u.usuario_correo as jefe_correo,
  49. coor.usuario_nombre as coordinador_nombre, coor.usuario_correo as coordinador_correo
  50. from reposicion_solicitud rs
  51. inner join profesor p on rs.profesor_id =p.profesor_id
  52. inner join usuario u on u.usuario_id = rs.usuario_id
  53. inner join horario_view hv on hv.horario_id = rs.horario_id
  54. inner join usuario coor on hv.facultad_id = coor.facultad_id and coor.rol_id = :rol_coord
  55. where rs.reposicion_solicitud_id = :id_repo',
  56. [':rol_coord' => COORDINADOR, ':id_repo' => $id_repo]
  57. );
  58. //print_r($correos_rs); exit();
  59. $prof_correos=array();
  60. $jefe_correos=[];
  61. $coord_correos=[];
  62. foreach($correos_rs as $correo){
  63. if( count($prof_correos)==0 && $correo["profesor_correo"]!=""){
  64. if( !isset($prof_correos["correo"]) || !in_array($correo["profesor_correo"], $prof_correos["correo"]) ){
  65. array_push($prof_correos, $correo["profesor_correo"]);
  66. }
  67. }
  68. if( count($jefe_correos)==0 && $correo["jefe_correo"]!=""){
  69. if(!isset($jefe_correos["correo"]) || !in_array($correo["jefe_correo"], $jefe_correos["correo"])){
  70. array_push($jefe_correos, $correo["jefe_correo"]);
  71. }
  72. }
  73. if( count($coord_correos)==0 && $correo["coordinador_correo"]!=""){
  74. if(!isset($coord_correos["correo"]) || !in_array($correo["coordinador_correo"], $coord_correos["correo"])){
  75. array_push($coord_correos, $correo["coordinador_correo"]);
  76. }
  77. }
  78. }
  79. $correosSup_rs = $db->querySingle("SELECT DISTINCT sup.usuario_correo as coordinador_correo
  80. FROM horario_supervisor hs
  81. inner join usuario sup on sup.usuario_id =hs.usuario_id
  82. where :facultad = ANY(hs.facultad_id_array)
  83. and hs.turno_inicio <= :hora and hs.turno_fin >= :hora",
  84. [':facultad'=>$reposicion_rs["facultad_id"], ':hora'=>$reposicion_rs["hora_nueva"]] );
  85. if($edo == 4){//cancelación
  86. $motivo = "";
  87. if(isset($_POST["motivo"]) && $_POST["motivo"] != "")
  88. $motivo = trim($_POST["motivo"]);
  89. $db->querySingle('SELECT fu_reposicion_cancela(:id, :motivo)',
  90. [':id' => $id_repo, ':motivo' => $motivo]
  91. );
  92. }else{
  93. if(!empty($salon)){
  94. $db->querySingle('SELECT fu_reposicion_solicitud(:id, NULL, NULL, NULL, :sal, :edo, NULL, NULL, NULL, NULL)',
  95. [':id' => $id_repo, ':sal' => $salon, ':edo' => $edo]
  96. );
  97. }else{
  98. $db->querySingle('SELECT fu_reposicion_solicitud(:id, NULL, NULL, NULL, NULL, :edo, NULL, NULL, NULL, NULL)',
  99. [':id' => $id_repo, ':edo' => $edo]
  100. );
  101. }
  102. }
  103. $fecha_clase = date('d/m/Y', strtotime($reposicion_rs["fecha_clase"]));
  104. $fecha_nueva = date('d/m/Y', strtotime($reposicion_rs["fecha_nueva"]));
  105. $hora_tmp = explode(":",$reposicion_rs["horario_hora"]);
  106. $hora_clase = $hora_tmp[0].":".$hora_tmp[1];
  107. $hora_tmp = explode(":",$reposicion_rs["hora_nueva"]);
  108. $hora_nueva = $hora_tmp[0].":".$hora_tmp[1];
  109. $asunto = "";
  110. $texto = "";
  111. $to = "";
  112. switch($edo){
  113. case 2://Correo a supervisor
  114. $asunto = "Reposición nueva - ".$reposicion_rs["clave_dependencia"]." ".$reposicion_rs["facultad"];
  115. //crear plantilla
  116. $texto = "<p>Se creó una reposición nueva para: <b>".$reposicion_rs["clave_dependencia"]." ".$reposicion_rs["facultad"]."</b>.</p>";
  117. $texto .= "<p><b>".mb_strtoupper($reposicion_rs["materia"])."</b> del día <b>".$fecha_clase." a las ".$hora_clase." hrs. </b> se propone reponer el <b>".$fecha_nueva." a las ".$hora_nueva." hrs.</b>";
  118. if(!$reposicion_rs["tipoaula_supervisor"]){
  119. $texto .= " en el salón: <b>".$salon_desc."</b></p>";
  120. }else{
  121. $texto .= " en un salón de tipo: <b>".$reposicion_rs["tipoaula_nombre"]."</b></p>";
  122. }
  123. $texto .= "<p>Ingresa al <a href='https://paad.lci.ulsa.mx'>sistema PAAD</a> para autorizarla.</p>";
  124. $to = join(",", $correosSup_rs);
  125. $ok = 0;
  126. break;
  127. case 3://Correo a coordinador, profesor y jefe
  128. $asunto = "Reposición autorizada - ".$reposicion_rs["materia"];
  129. $texto = "<p>La resposición de la clase de <b>".$reposicion_rs["materia"]."</b> del día <b>".$fecha_clase." a las ".$hora_clase." hrs. </b> está autorizada para realizarse el día <b>".$fecha_nueva." a las ".$hora_nueva." hrs. en: $salon_desc</b></p>";
  130. $to = join(",", $coord_correos).",".join(",", $prof_correos).",".join(",", $jefe_correos);
  131. $ok = 0;
  132. break;
  133. case 4://Correo a coordinador, profesor y jefe
  134. $asunto = "Reposición declinada - ".$reposicion_rs["materia"];
  135. $texto = "<p>La resposición de la clase de <b>".$reposicion_rs["materia"]." planeada para el día ".$fecha_nueva." a las ".$hora_nueva." hrs.</b> ha sido declinada por el siguiente motivo:</p>";
  136. $texto .= "<p style='font-style:italic; padding-left:25px'>".$reposicion_rs["motivo_cancelacion"]."</p>";
  137. $to = join(",", $coord_correos).",".join(",", $prof_correos).",".join(",", $jefe_correos);
  138. $ok = 1;
  139. break;
  140. }
  141. if($to!= "" && ENVIO_CORREOS){
  142. $texto = '<body >
  143. <img src="https://paad.lci.ulsa.mx/imagenes/logo_lasalle.png" alt="La Salle" style="margin-bottom:60px">
  144. '.$texto.'
  145. </body>';
  146. require_once('../include/phpmailer/PHPMailerAutoload.php');
  147. /*if(DB_NAME == "poad_pruebas"){
  148. $asunto = "PRUEBAS-".$asunto;
  149. Mailer::enviarCorreo("alejandro.lara@lasalle.mx", $asunto, $texto, true);
  150. }else{*/
  151. Mailer::enviarCorreo($to, $asunto, $texto, true);
  152. //}
  153. }
  154. /*
  155. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
  156. */
  157. header("Location: ".$pag."?ok=".$ok);
  158. exit();
  159. ?>