Initial Commit

This commit is contained in:
Cloud User
2024-03-06 17:45:49 -06:00
commit 8986493161
250 changed files with 43078 additions and 0 deletions

View File

@@ -0,0 +1,195 @@
<?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
if(isset($_POST["salon"]) && $_POST["salon"] != "")
$salon = filter_input(INPUT_POST, "salon", FILTER_SANITIZE_NUMBER_INT);//limpia texto
//--------------
//--------------
//Obtiene datos reposición
$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
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 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);
}
}
//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();
$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($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>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;
}
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();
?>