123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- /* AJAX
- * Selecciona los datos de la carrera
- * Recibe:
- * id - ID de grupo,
- * Return:
- * resultado o cadena de error
- */
- require_once("../../include/constantes.php");
- require_once("../../include/nocache.php");
- require_once("../../include/bd_pdo.php");
- require_once("../../include/util.php");
- require_once("../../classes/ValidaSesion.php");
- require_once("../classes/LogActividad.php");//die on error
- //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
- $objSesion = new ValidaSesion($pdo, NULL, APSA);
- if(!$objSesion->tieneAcceso()){
- $return["error"] = "Error! No tienes permisos para realizar esta acción.";
- }else if(!isset($_POST["usr"]) || !isset($_POST["dest"])){
- $return["error"] = "Error! No se recibió la información del usuario.";
- }else{
- $usr = filter_input(INPUT_POST, "usr", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- $dest = filter_input(INPUT_POST, "dest", FILTER_SANITIZE_NUMBER_INT);//limpia texto
-
- $return["error"] = "";
-
- try {
- $pdo->beginTransaction();
- $error = false;
- //--- Valida que sea subordinado ---
- $stmt = $pdo->prepare('Select * from fs_subordinadoHorario(:usr) WHERE "Usuario_id" = :usr_sub');//con horarios en autorizacion
- $stmt->bindParam(":usr", $_SESSION["usuario_id"]);
- $stmt->bindParam(":usr_sub", $usr);
- if(!$stmt->execute()){
- //$t = $stmt->errorInfo();
- $return["error"] .= "Ocurrió un error al leer tus subordinados.";
- $error = true;
- }
- $rs = $stmt->fetch();
- $stmt->closeCursor();
-
- if(!$error && (count($rs) == 0 || $rs["Usuario_id"] != $usr || !$rs["Tiene_HorarioAprobar"])){
- $return["error"] .= "No puedes actualizar el estado del horario para ese usuario.";
- $error = true;
- }
-
- if(!$error){
- //---- Actualiza ----------
- $stmt = $pdo->prepare('Select * from fu_mihorarioautorizacion(:usr, 2, :dest)');
- $stmt->bindParam(":usr", $usr);
- $stmt->bindParam(":dest", $dest);
- if(!$stmt->execute()){
- //$t = $stmt->errorInfo();
- $return["error"] .= "Ocurrió un error al actualizar el estado de aprobación de horario.";
- $error = true;
- }
- }
-
- if(!$error){
- //---- Inserta Log de autorizacion ----------
- if($dest == 1)
- $stmt = $pdo->prepare('Select * from fi_logautorizacionhorario(:usr, false)');
- else
- $stmt = $pdo->prepare('Select * from fi_logautorizacionhorario(:usr, true)');
- $stmt->bindParam(":usr", $usr);
- if(!$stmt->execute()){
- $t = $stmt->errorInfo();
- $return["error"] .= "Ocurrió un error al insertar el log de aprobación de horario.".$t[2];
- $error = true;
- }
- }
-
- if(!$error){
- $pdo->commit();
- unset($return["error"]);
- switch($dest){
- case 1: $return["ok"] = "Se canceló el envío de aprobación."; $return["ok_id"] = 0; break;
- case 3: $return["ok"] = "El horario se aprobó correctamente."; $return["ok_id"] = 1;break;
- }
-
- //Inserta Log
- $log = new LogActividad();
- $desc_log = "Actualiza aprobación de horario De tipo[2] A [".$dest."]";
- $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
- }else{
- $pdo->rollBack();
- }
-
-
- $stmt = null; // cierra conexion
- } catch(PDOException $e) {
- $pdo->rollBack();
- $return["error"] = "Ocurrió un error al actualizar el estado de aprobación del horario.";
- }
- }
- $return["json"] = json_encode($return);
- echo json_encode($return);
- ?>
|