subordinadohorario_update.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. /* AJAX
  3. * Selecciona los datos de la carrera
  4. * Recibe:
  5. * id - ID de grupo,
  6. * Return:
  7. * resultado o cadena de error
  8. */
  9. require_once("../../include/constantes.php");
  10. require_once("../../include/nocache.php");
  11. require_once("../../include/bd_pdo.php");
  12. require_once("../../include/util.php");
  13. require_once("../../classes/ValidaSesion.php");
  14. require_once("../classes/LogActividad.php");//die on error
  15. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  16. $objSesion = new ValidaSesion($pdo, NULL, APSA);
  17. if(!$objSesion->tieneAcceso()){
  18. $return["error"] = "Error! No tienes permisos para realizar esta acción.";
  19. }else if(!isset($_POST["usr"]) || !isset($_POST["dest"])){
  20. $return["error"] = "Error! No se recibió la información del usuario.";
  21. }else{
  22. $usr = filter_input(INPUT_POST, "usr", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  23. $dest = filter_input(INPUT_POST, "dest", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  24. $return["error"] = "";
  25. try {
  26. $pdo->beginTransaction();
  27. $error = false;
  28. //--- Valida que sea subordinado ---
  29. $stmt = $pdo->prepare('Select * from fs_subordinadoHorario(:usr) WHERE "Usuario_id" = :usr_sub');//con horarios en autorizacion
  30. $stmt->bindParam(":usr", $_SESSION["usuario_id"]);
  31. $stmt->bindParam(":usr_sub", $usr);
  32. if(!$stmt->execute()){
  33. //$t = $stmt->errorInfo();
  34. $return["error"] .= "Ocurrió un error al leer tus subordinados.";
  35. $error = true;
  36. }
  37. $rs = $stmt->fetch();
  38. $stmt->closeCursor();
  39. if(!$error && (count($rs) == 0 || $rs["Usuario_id"] != $usr || !$rs["Tiene_HorarioAprobar"])){
  40. $return["error"] .= "No puedes actualizar el estado del horario para ese usuario.";
  41. $error = true;
  42. }
  43. if(!$error){
  44. //---- Actualiza ----------
  45. $stmt = $pdo->prepare('Select * from fu_mihorarioautorizacion(:usr, 2, :dest)');
  46. $stmt->bindParam(":usr", $usr);
  47. $stmt->bindParam(":dest", $dest);
  48. if(!$stmt->execute()){
  49. //$t = $stmt->errorInfo();
  50. $return["error"] .= "Ocurrió un error al actualizar el estado de aprobación de horario.";
  51. $error = true;
  52. }
  53. }
  54. if(!$error){
  55. //---- Inserta Log de autorizacion ----------
  56. if($dest == 1)
  57. $stmt = $pdo->prepare('Select * from fi_logautorizacionhorario(:usr, false)');
  58. else
  59. $stmt = $pdo->prepare('Select * from fi_logautorizacionhorario(:usr, true)');
  60. $stmt->bindParam(":usr", $usr);
  61. if(!$stmt->execute()){
  62. $t = $stmt->errorInfo();
  63. $return["error"] .= "Ocurrió un error al insertar el log de aprobación de horario.".$t[2];
  64. $error = true;
  65. }
  66. }
  67. if(!$error){
  68. $pdo->commit();
  69. unset($return["error"]);
  70. switch($dest){
  71. case 1: $return["ok"] = "Se canceló el envío de aprobación."; $return["ok_id"] = 0; break;
  72. case 3: $return["ok"] = "El horario se aprobó correctamente."; $return["ok_id"] = 1;break;
  73. }
  74. //Inserta Log
  75. $log = new LogActividad();
  76. $desc_log = "Actualiza aprobación de horario De tipo[2] A [".$dest."]";
  77. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
  78. }else{
  79. $pdo->rollBack();
  80. }
  81. $stmt = null; // cierra conexion
  82. } catch(PDOException $e) {
  83. $pdo->rollBack();
  84. $return["error"] = "Ocurrió un error al actualizar el estado de aprobación del horario.";
  85. }
  86. }
  87. $return["json"] = json_encode($return);
  88. echo json_encode($return);
  89. ?>