puesto_update.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?php
  2. /*
  3. * Actualiza los datos de un nuevo Puesto.
  4. * Recibe:
  5. * id
  6. * desc
  7. * areaadmin
  8. * areaacad (opcional)
  9. * tipo
  10. * superior (opcional)
  11. *
  12. * Error:
  13. * 0 - No se recibieron los datos
  14. * 1 - Error de base de datos
  15. * Success:
  16. */
  17. require_once("../../include/constantes.php");
  18. require_once("../../include/bd_pdo.php");
  19. require_once("../../classes/ValidaSesion.php");
  20. require_once("../classes/LogActividad.php");//die on error
  21. $pag = "../puestos.php";
  22. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  23. $objSesion = new ValidaSesion($pdo, 87, APSA);
  24. if(!$objSesion->tieneAcceso()){
  25. $objSesion->terminaSesion();
  26. //print_r($objSesion->getError());
  27. }
  28. if(!$objSesion->puedeEditar()){
  29. header("Location: ".$pag."?error=3");
  30. exit();
  31. }
  32. unset($objValida);
  33. if(!isset($_POST["id"]) || !isset($_POST["desc"]) || !isset($_POST["area"]) ){
  34. header("Location: ".$pag."?error=0");
  35. exit();
  36. }
  37. $pdo->beginTransaction();
  38. $id = filter_input(INPUT_POST, "id", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  39. $desc = trim(filter_input(INPUT_POST, "desc", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));//limpia texto
  40. $areaadmin = filter_input(INPUT_POST, "area", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  41. if(isset($_POST["tipo"])){
  42. $tipo = filter_input(INPUT_POST, "tipo", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  43. }else{
  44. $tipo = 0;
  45. }
  46. if(isset($_POST["checador"])){
  47. $checador = filter_input(INPUT_POST, "checador", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  48. }else{
  49. $checador = 0;
  50. }
  51. if(isset($_POST["proceso"])){
  52. $proceso = filter_input(INPUT_POST, "proceso", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  53. }else{
  54. $proceso = 0;
  55. }
  56. $areaacad = array();
  57. if(isset($_POST["areaacad"]))
  58. $areaacad = $_POST["areaacad"];
  59. $query = "";
  60. if(isset($_POST["id_superior"]) && $_POST["id_superior"] != ""){
  61. $query .= ":sup, ";
  62. $superior = filter_input(INPUT_POST, "id_superior", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  63. }else{
  64. $query .= "NULL, ";
  65. }
  66. if(isset($_POST["usuario"]) && $_POST["usuario"] != ""){
  67. $query .= ":usr";
  68. $usr = filter_input(INPUT_POST, "usuario", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  69. }else{
  70. $query .= "NULL";
  71. }
  72. //echo "Select * from fu_puesto(".$id.",".$desc.", ".$areaadmin.", ".$tipo.", ".$checador.", ".$query.")";
  73. $stmt = $pdo->prepare('Select * from fu_puesto(:id, :desc, :aadmin, :tipo, :checa, :proceso, '.$query.')');
  74. $stmt->bindParam(":tipo", $tipo, PDO::PARAM_BOOL);
  75. $stmt->bindParam(":id", $id);
  76. $stmt->bindParam(":desc", $desc);
  77. $stmt->bindParam(":aadmin", $areaadmin);
  78. $stmt->bindParam(":checa", $checador, PDO::PARAM_BOOL);
  79. $stmt->bindParam(":proceso", $proceso, PDO::PARAM_BOOL);
  80. if(isset($superior)) $stmt->bindParam(":sup", $superior);
  81. if(isset($usr)) $stmt->bindParam(":usr", $usr);
  82. if(!$stmt->execute()){
  83. header("Location:".$pag."?error=4");
  84. //print_r($stmt->errorInfo());
  85. $pdo->rollBack();
  86. exit();
  87. }
  88. $rs = $stmt->fetch();
  89. $stmt->closeCursor();
  90. $stmt = null;
  91. $stmt = $pdo->prepare("Select * from fd_puesto_areaacademica(:puesto)");
  92. $stmt->bindParam(":puesto", $id);
  93. if(!$stmt->execute()){
  94. //print_r($stmt->errorInfo());
  95. header("Location:".$pag."?error=6");
  96. $pdo->rollBack();
  97. exit();
  98. }
  99. $stmt->closeCursor();
  100. $stmt = null;
  101. $stmt = $pdo->prepare("Select * from fi_puesto_areaacademica(:puesto, :area)");
  102. $stmt->bindParam(":puesto", $id);
  103. foreach($areaacad as $area){
  104. $stmt->bindParam(":area", $area);
  105. if(!$stmt->execute()){
  106. print_r($stmt->errorInfo());
  107. header("Location:".$pag."?error=6");
  108. $pdo->rollBack();
  109. exit();
  110. }
  111. }
  112. $stmt->closeCursor();
  113. $stmt = null;
  114. $pdo->commit();
  115. $log = new LogActividad();
  116. $desc_log = "Actualiza puesto ID[".$id."] Nombre[".$desc."] Tipo[".$tipo."] Área Admin[".$areaadmin."]";
  117. //if(isset($areaacad)) $desc_log.= "Área Acad [".$areaacad."]";
  118. if(isset($superior)) $desc_log.= "Superior[".$superior."]";
  119. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
  120. header("Location: ".$pag."?ok=1");
  121. ?>