puesto_insert.php 3.8 KB

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