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); ?>