123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- <?php
- /*
- Cambia de estado la reposición
- */
- $pag = "../reposiciones_crear.php";
- $ruta = "../";
- require_once "../class/c_login.php";
- require_once "../class/mailer.php";
- define("COORDINADOR", 9);
- define("SUPERVISOR", 7);
- define("ENVIO_CORREOS", true);
- // check if the session is started
- if (!isset($_SESSION['user']))
- die('No se ha iniciado sesión');
- $user = unserialize($_SESSION['user']);
- $pag = "../reposiciones_autorizar.php";
- if(!isset($_POST["id"]) || !isset($_POST["edo"]) ){
- header("Location: ".$pag."?error=0");
- exit();
- }
- $id_repo = filter_input(INPUT_POST, "id", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- $edo = filter_input(INPUT_POST, "edo", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- $tipo = filter_input(INPUT_POST, "tipo", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- if(isset($_POST["salon"]) && $_POST["salon"] != "")
- $salon = filter_input(INPUT_POST, "salon", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- //--------------
- //Obtiene datos de salón asignado
- $salon_desc = "Pendiente";
- if(!empty($salon)){
- $salon_rs = $db->querySingle('SELECT s.salon_id, s.salon_array FROM salon_view s where s.salon_id = :id_salon',
- [':id_salon' => $salon]
- );
- if($salon_rs["salon_id"] == "" || $salon_rs["salon_id"] == NULL){
- $salon_desc = "Pendiente";
- }else{
- $salon_json = json_decode($salon_rs["salon_array"], true);
- if($salon_json[0]== "UNIVERSIDAD LA SALLE"){
- unset($salon_json[0]);
- }
- $salon_desc = join(" / ",$salon_json);
- }
- }
- if($tipo ==1 || $tipo == 2){
- //--------------
- //Obtiene datos reposición
- $reposicion_rs = $db->querySingle('SELECT h.materia, r.fecha_nueva, r.hora_nueva, r.fecha_clase, r.descripcion, h.horario_hora, h.facultad_id, h.facultad, f.clave_dependencia, r.motivo_cancelacion, ta.tipoaula_supervisor , ta.tipoaula_nombre
- from reposicion_solicitud r
- inner join horario_view h on h.horario_id = r.horario_id
- inner join facultad f on f.facultad_id = h.facultad_id
- inner join tipoaula ta on ta.tipoaula_id = r.tipoaula_id
- where r.reposicion_solicitud_id = :id_repo',
- [':id_repo' => $id_repo]
- );
- //Obtiene correos
- $correos_rs = $db->query('SELECT p.profesor_nombre, p.profesor_correo, u.usuario_nombre as jefe_nombre, u.usuario_correo as jefe_correo,
- coor.usuario_nombre as coordinador_nombre, coor.usuario_correo as coordinador_correo
- from reposicion_solicitud rs
- inner join profesor p on rs.profesor_id =p.profesor_id
- inner join usuario u on u.usuario_id = rs.usuario_id
- inner join horario_view hv on hv.horario_id = rs.horario_id
- inner join usuario coor on hv.facultad_id = coor.facultad_id and coor.rol_id = :rol_coord
- where rs.reposicion_solicitud_id = :id_repo',
- [':rol_coord' => COORDINADOR, ':id_repo' => $id_repo]
- );
- //print_r($correos_rs); exit();
- }else{
- //Obtiene datos asignación
- $reposicion_rs = $db->querySingle('SELECT r.fecha_nueva, r.hora_nueva, r.descripcion, f.facultad_id, f.facultad_nombre as facultad, f.clave_dependencia, r.motivo_cancelacion, ta.tipoaula_supervisor , ta.tipoaula_nombre, p.profesor_nombre
- from asignacion_solicitud r
- inner join usuario u on u.usuario_id = r.usuario_id
- inner join facultad f on f.facultad_id = u.facultad_id
- inner join tipoaula ta on ta.tipoaula_id = r.tipoaula_id
- inner join profesor p on p.profesor_id = r.profesor_id
- where r.asignacion_solicitud_id = :id_repo',
- [':id_repo' => $id_repo]
- );
- //Obtiene correos
- $correos_rs = $db->query('SELECT p.profesor_nombre, p.profesor_correo, NULL as jefe_nombre, NULL as jefe_correo,
- coor.usuario_nombre as coordinador_nombre, coor.usuario_correo as coordinador_correo
- from asignacion_solicitud rs
- inner join profesor p on rs.profesor_id =p.profesor_id
- inner join usuario u on u.usuario_id = rs.usuario_id
- inner join usuario coor on u.facultad_id = coor.facultad_id and coor.rol_id = :rol_coord
- where rs.asignacion_solicitud_id = :id_repo',
- [':rol_coord' => COORDINADOR, ':id_repo' => $id_repo]
- );
- }
-
- $prof_correos=array();
- $jefe_correos=[];
- $coord_correos=[];
-
- foreach($correos_rs as $correo){
- if( count($prof_correos)==0 && $correo["profesor_correo"]!=""){
- if( !isset($prof_correos["correo"]) || !in_array($correo["profesor_correo"], $prof_correos["correo"]) ){
- array_push($prof_correos, $correo["profesor_correo"]);
- }
- }
- if( count($jefe_correos)==0 && $correo["jefe_correo"]!=""){
- if(!isset($jefe_correos["correo"]) || !in_array($correo["jefe_correo"], $jefe_correos["correo"])){
- array_push($jefe_correos, $correo["jefe_correo"]);
- }
- }
- if( count($coord_correos)==0 && $correo["coordinador_correo"]!=""){
- if(!isset($coord_correos["correo"]) || !in_array($correo["coordinador_correo"], $coord_correos["correo"])){
- array_push($coord_correos, $correo["coordinador_correo"]);
- }
- }
- }
- $correosSup_rs = $db->query("SELECT DISTINCT sup.usuario_correo as supervisor_correo
- FROM horario_supervisor hs
- inner join usuario sup on sup.usuario_id =hs.usuario_id
- where :facultad = ANY(hs.facultad_id_array)",
- [':facultad'=>$reposicion_rs["facultad_id"]] );
- $sup_correos=[];
- foreach($correosSup_rs as $correo){
- array_push($sup_correos, $correo["supervisor_correo"]);
- }
- if($tipo ==1 || $tipo == 2){
- if($edo == 4){//cancelación
- $motivo = "";
- if(isset($_POST["motivo"]) && $_POST["motivo"] != "")
- $motivo = trim($_POST["motivo"]);
- $db->querySingle('SELECT fu_reposicion_cancela(:id, :motivo)',
- [':id' => $id_repo, ':motivo' => $motivo]
- );
- }else{
- if(!empty($salon)){
- $db->querySingle('SELECT fu_reposicion_solicitud(:id, NULL, NULL, NULL, :sal, :edo, NULL, NULL, NULL, NULL)',
- [':id' => $id_repo, ':sal' => $salon, ':edo' => $edo]
- );
- }else{
- $db->querySingle('SELECT fu_reposicion_solicitud(:id, NULL, NULL, NULL, NULL, :edo, NULL, NULL, NULL, NULL)',
- [':id' => $id_repo, ':edo' => $edo]
- );
- }
- }
- $fecha_clase = date('d/m/Y', strtotime($reposicion_rs["fecha_clase"]));
- $fecha_nueva = date('d/m/Y', strtotime($reposicion_rs["fecha_nueva"]));
- $hora_tmp = explode(":",$reposicion_rs["horario_hora"]);
- $hora_clase = $hora_tmp[0].":".$hora_tmp[1];
- $hora_tmp = explode(":",$reposicion_rs["hora_nueva"]);
- $hora_nueva = $hora_tmp[0].":".$hora_tmp[1];
- $asunto = "";
- $texto = "";
- $to = "";
- switch($edo){
- case 2://Correo a supervisor
- $asunto = "Reposición nueva - ".$reposicion_rs["clave_dependencia"]." ".$reposicion_rs["facultad"];
- //crear plantilla
- $texto = "<p>Se creó una reposición nueva para: <b>".$reposicion_rs["clave_dependencia"]." ".$reposicion_rs["facultad"]."</b>.</p>";
- $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>";
- if(!$reposicion_rs["tipoaula_supervisor"]){
- $texto .= " en el salón: <b>".$salon_desc."</b></p>";
- }else{
- $texto .= " en un salón de tipo: <b>".$reposicion_rs["tipoaula_nombre"]."</b></p>";
- }
- $texto .= "<p style='font-style:italic; padding-left:25px'>".$reposicion_rs["descripcion"]."</p>";
- $texto .= "<p>Ingresa al <a href='https://paad.lci.ulsa.mx'>sistema PAAD</a> para autorizarla.</p>";
- $to = join(",", $sup_correos);
- $ok = 0;
- break;
- case 3://Correo a coordinador, profesor y jefe
- $asunto = "Reposición autorizada - ".$reposicion_rs["materia"];
- $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>";
- $to = join(",", $coord_correos).",".join(",", $prof_correos).",".join(",", $jefe_correos);
- $ok = 0;
- $db->querySingle('SELECT fu_reposicion_solicitud_supervisor(:id, :sup)',
- [':id' => $id_repo, ':sup'=>$user->user["id"]]
- );
- break;
- case 4://Correo a coordinador, profesor y jefe
- $asunto = "Reposición declinada - ".$reposicion_rs["materia"];
- $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>";
- $texto .= "<p style='font-style:italic; padding-left:25px'>".$motivo."</p>";
- $to = join(",", $coord_correos).",".join(",", $prof_correos).",".join(",", $jefe_correos);
- $ok = 1;
- $db->querySingle('SELECT fu_reposicion_solicitud_supervisor(:id, :sup)',
- [':id' => $id_repo, ':sup'=>$user->user["id"]]
- );
- break;
- }
- }else{
- if($edo == 4){//cancelación
- $motivo = "";
- if(isset($_POST["motivo"]) && $_POST["motivo"] != "")
- $motivo = trim($_POST["motivo"]);
- $db->querySingle('SELECT fu_asignacion_cancela(:id, :motivo)',
- [':id' => $id_repo, ':motivo' => $motivo]
- );
- }else{
- if(!empty($salon)){
- $db->querySingle('SELECT fu_asignacion_solicitud(:id, NULL, NULL, :sal, :edo, NULL, NULL, NULL, NULL, NULL)',
- [':id' => $id_repo, ':sal' => $salon, ':edo' => $edo]
- );
- }else{
- $db->querySingle('SELECT fu_asignacion_solicitud(:id, NULL, NULL, NULL, :edo, NULL, NULL, NULL, NULL, NULL)',
- [':id' => $id_repo, ':edo' => $edo]
- );
- }
- }
-
- $fecha_nueva = date('d/m/Y', strtotime($reposicion_rs["fecha_nueva"]));
- $hora_tmp = explode(":",$reposicion_rs["hora_nueva"]);
- $hora_nueva = $hora_tmp[0].":".$hora_tmp[1];
- $asunto = "";
- $texto = "";
- $to = "";
- switch($edo){
- case 2://Correo a supervisor
- $asunto = "Asignación nueva - ".$reposicion_rs["clave_dependencia"]." ".$reposicion_rs["facultad"];
- //crear plantilla
- $texto = "<p>Se creó una solicitud de asignación nueva para: <b>".$reposicion_rs["clave_dependencia"]." ".$reposicion_rs["facultad"]."</b>.</p>";
- $texto .= "<p>Se solicita el día <b>".$fecha_nueva." a las ".$hora_nueva." hrs.</b> para el profesor: <b>".$reposicion_rs["profesor_nombre"]."</b>.";
- if(!$reposicion_rs["tipoaula_supervisor"]){
- $texto .= " en el salón: <b>".$salon_desc."</b></p>";
- }else{
- $texto .= " en un salón de tipo: <b>".$reposicion_rs["tipoaula_nombre"]."</b></p>";
- }
- $texto .= "<p style='font-style:italic; padding-left:25px'>".$reposicion_rs["descripcion"]."</p>";
- $texto .= "<p>Ingresa al <a href='https://paad.lci.ulsa.mx'>sistema PAAD</a> para autorizarla.</p>";
- $to = join(",", $sup_correos);
- $ok = 0;
- break;
- case 3://Correo a coordinador, profesor y jefe
- $asunto = "Asignación autorizada - ".$reposicion_rs["profesor_nombre"];
- $texto = "<p>La asignación de espacio para el profesor <b>".$reposicion_rs["profesor_nombre"]."</b> está autorizada para realizarse el día <b>".$fecha_nueva." a las ".$hora_nueva." hrs. en: $salon_desc</b></p>";
- $to = join(",", $coord_correos).",".join(",", $prof_correos).",".join(",", $jefe_correos);
- $ok = 0;
- $db->querySingle('SELECT fu_asignacion_solicitud_supervisor(:id, :sup)',
- [':id' => $id_repo, ':sup'=>$user->user["id"]]
- );
- break;
- case 4://Correo a coordinador, profesor y jefe
- $asunto = "Asignación declinada - ".$reposicion_rs["profesor_nombre"];
- $texto = "<p>La asignación de espacio para el profesor <b>".$reposicion_rs["profesor_nombre"]."</b> planeada para el día ".$fecha_nueva." a las ".$hora_nueva." hrs.</b> ha sido declinada por el siguiente motivo:</p>";
- $texto .= "<p style='font-style:italic; padding-left:25px'>".$motivo."</p>";
- $to = join(",", $coord_correos).",".join(",", $prof_correos).",".join(",", $jefe_correos);
- $ok = 1;
- $db->querySingle('SELECT fu_asignacion_solicitud_supervisor(:id, :sup)',
- [':id' => $id_repo, ':sup'=>$user->user["id"]]
- );
- break;
- }
- }
- if($to!= "" && ENVIO_CORREOS){
- $texto = '<body >
- <img src="https://paad.lci.ulsa.mx/imagenes/logo_lasalle.png" alt="La Salle" style="margin-bottom:60px">
- '.$texto.'
- </body>';
-
- require_once('../include/phpmailer/PHPMailerAutoload.php');
- if($_ENV['DB_NAME'] == "paad_pruebas"){
- $asunto = "PRUEBAS-".$asunto;
- Mailer::enviarCorreo("alejandro.lara@lasalle.mx", $asunto, $texto, true);
- }else{
- Mailer::enviarCorreo($to, $asunto, $texto, true);
- }
- }
- /*
- $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
- */
- header("Location: ".$pag."?ok=".$ok);
- exit();
- ?>
|