reposicion_autoriza.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  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. $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, r.motivo_cancelacion, ta.tipoaula_supervisor , ta.tipoaula_nombre
  29. from reposicion_solicitud r
  30. inner join horario_view h on h.horario_id = r.horario_id
  31. inner join facultad f on f.facultad_id = h.facultad_id
  32. inner join tipoaula ta on ta.tipoaula_id = r.tipoaula_id
  33. where r.reposicion_solicitud_id = :id_repo',
  34. [':id_repo' => $id_repo]
  35. );
  36. //Obtiene datos de salón asignado
  37. $salon_rs = $db->querySingle('SELECT s.salon_id, s.salon_array FROM salon_view s where s.salon_id = :id_salon',
  38. [':id_salon' => $salon]
  39. );
  40. if($salon_rs["salon_id"] == "" || $salon_rs["salon_id"] == NULL){
  41. $salon_desc = "Pendiente";
  42. }else{
  43. $salon_json = json_decode($salon_rs["salon_array"], true);
  44. if($salon_json[0]== "UNIVERSIDAD LA SALLE"){
  45. unset($salon_json[0]);
  46. }
  47. $salon_desc = join(" / ",$salon_json);
  48. }
  49. //Obtiene correos
  50. $correos_rs = $db->query('SELECT p.profesor_nombre, p.profesor_correo, u.usuario_nombre as jefe_nombre, u.usuario_correo as jefe_correo,
  51. coor.usuario_nombre as coordinador_nombre, coor.usuario_correo as coordinador_correo
  52. from reposicion_solicitud rs
  53. inner join profesor p on rs.profesor_id =p.profesor_id
  54. inner join usuario u on u.usuario_id = rs.usuario_id
  55. inner join horario_view hv on hv.horario_id = rs.horario_id
  56. inner join usuario coor on hv.facultad_id = coor.facultad_id and coor.rol_id = :rol_coord
  57. where rs.reposicion_solicitud_id = :id_repo',
  58. [':rol_coord' => COORDINADOR, ':id_repo' => $id_repo]
  59. );
  60. //print_r($correos_rs); exit();
  61. $prof_correos=array();
  62. $jefe_correos=[];
  63. $coord_correos=[];
  64. foreach($correos_rs as $correo){
  65. if( count($prof_correos)==0 && $correo["profesor_correo"]!=""){
  66. if( !isset($prof_correos["correo"]) || !in_array($correo["profesor_correo"], $prof_correos["correo"]) ){
  67. array_push($prof_correos, $correo["profesor_correo"]);
  68. }
  69. }
  70. if( count($jefe_correos)==0 && $correo["jefe_correo"]!=""){
  71. if(!isset($jefe_correos["correo"]) || !in_array($correo["jefe_correo"], $jefe_correos["correo"])){
  72. array_push($jefe_correos, $correo["jefe_correo"]);
  73. }
  74. }
  75. if( count($coord_correos)==0 && $correo["coordinador_correo"]!=""){
  76. if(!isset($coord_correos["correo"]) || !in_array($correo["coordinador_correo"], $coord_correos["correo"])){
  77. array_push($coord_correos, $correo["coordinador_correo"]);
  78. }
  79. }
  80. }
  81. $correosSup_rs = $db->querySingle("SELECT DISTINCT sup.usuario_correo as coordinador_correo
  82. FROM horario_supervisor hs
  83. inner join usuario sup on sup.usuario_id =hs.usuario_id
  84. where :facultad = ANY(hs.facultad_id_array)
  85. and hs.turno_inicio <= :hora and hs.turno_fin >= :hora",
  86. [':facultad'=>$reposicion_rs["facultad_id"], ':hora'=>$reposicion_rs["hora_nueva"]] );
  87. if($edo == 4){//cancelación
  88. $motivo = "";
  89. if(isset($_POST["motivo"]) && $_POST["motivo"] != "")
  90. $motivo = trim($_POST["motivo"]);
  91. $db->querySingle('SELECT fu_reposicion_cancela(:id, :motivo)',
  92. [':id' => $id_repo, ':motivo' => $motivo]
  93. );
  94. }else{
  95. if(!empty($salon)){
  96. $db->querySingle('SELECT fu_reposicion_solicitud(:id, NULL, NULL, NULL, :sal, :edo, NULL, NULL, NULL, NULL)',
  97. [':id' => $id_repo, ':sal' => $salon, ':edo' => $edo]
  98. );
  99. }else{
  100. $db->querySingle('SELECT fu_reposicion_solicitud(:id, NULL, NULL, NULL, NULL, :edo, NULL, NULL, NULL, NULL)',
  101. [':id' => $id_repo, ':edo' => $edo]
  102. );
  103. }
  104. }
  105. $fecha_clase = date('d/m/Y', strtotime($reposicion_rs["fecha_clase"]));
  106. $fecha_nueva = date('d/m/Y', strtotime($reposicion_rs["fecha_nueva"]));
  107. $hora_tmp = explode(":",$reposicion_rs["horario_hora"]);
  108. $hora_clase = $hora_tmp[0].":".$hora_tmp[1];
  109. $hora_tmp = explode(":",$reposicion_rs["hora_nueva"]);
  110. $hora_nueva = $hora_tmp[0].":".$hora_tmp[1];
  111. $asunto = "";
  112. $texto = "";
  113. $to = "";
  114. switch($edo){
  115. case 2://Correo a supervisor
  116. $asunto = "Reposición nueva - ".$reposicion_rs["clave_dependencia"]." ".$reposicion_rs["facultad"];
  117. //crear plantilla
  118. $texto = "<p>Se creó una reposición nueva para: <b>".$reposicion_rs["clave_dependencia"]." ".$reposicion_rs["facultad"]."</b>.</p>";
  119. $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>";
  120. if(!$reposicion_rs["tipoaula_supervisor"]){
  121. $texto .= " en el salón: <b>".$salon_desc."</b></p>";
  122. }else{
  123. $texto .= " en un salón de tipo: <b>".$reposicion_rs["tipoaula_nombre"]."</b></p>";
  124. }
  125. $texto .= "<p>Ingresa al <a href='https://paad.lci.ulsa.mx'>sistema PAAD</a> para autorizarla.</p>";
  126. $to = join(",", $correosSup_rs);
  127. $ok = 0;
  128. break;
  129. case 3://Correo a coordinador, profesor y jefe
  130. $asunto = "Reposición autorizada - ".$reposicion_rs["materia"];
  131. $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>";
  132. $to = join(",", $coord_correos).",".join(",", $prof_correos).",".join(",", $jefe_correos);
  133. $ok = 0;
  134. break;
  135. case 4://Correo a coordinador, profesor y jefe
  136. $asunto = "Reposición declinada - ".$reposicion_rs["materia"];
  137. $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>";
  138. $texto .= "<p style='font-style:italic; padding-left:25px'>".$motivo."</p>";
  139. $to = join(",", $coord_correos).",".join(",", $prof_correos).",".join(",", $jefe_correos);
  140. $ok = 1;
  141. break;
  142. }
  143. if($to!= "" && ENVIO_CORREOS){
  144. $texto = '<body >
  145. <img src="https://paad.lci.ulsa.mx/imagenes/logo_lasalle.png" alt="La Salle" style="margin-bottom:60px">
  146. '.$texto.'
  147. </body>';
  148. require_once('../include/phpmailer/PHPMailerAutoload.php');
  149. /*if($_ENV['DB_NAME'] == "paad_pruebas"){
  150. $asunto = "PRUEBAS-".$asunto;
  151. Mailer::enviarCorreo("alejandro.lara@lasalle.mx", $asunto, $texto, true);
  152. }else{
  153. Mailer::enviarCorreo($to, $asunto, $texto, true);
  154. }*/
  155. Mailer::enviarCorreo("alejandro.rosales@lasalle.mx", $asunto, $texto, true);
  156. }
  157. /*
  158. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
  159. */
  160. header("Location: ".$pag."?ok=".$ok);
  161. exit();
  162. ?>