puesto_delete.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /*
  3. * Borra los datos de un Puesto. La función quita los subordinados y los asigna al superior del puesto a borrar
  4. * Recibe:
  5. * id
  6. *
  7. * Error:
  8. * 0 - No se recibieron los datos
  9. * 1 - Error de base de datos
  10. * Success:
  11. */
  12. require_once("../../include/constantes.php");
  13. require_once("../../include/bd_pdo.php");
  14. require_once("../../classes/ValidaSesion.php");
  15. require_once("../classes/LogActividad.php");//die on error
  16. $pag = "../puestos.php";
  17. $objSesion = new ValidaSesion($pdo, 87, APSA);
  18. if(!$objSesion->tieneAcceso() || !$objSesion->puedeEditar()){
  19. $return["error"] = "Error! No tienes permisos para realizar esta acción.";
  20. }else if(!isset($_POST["id"])){
  21. $return["error"] = "Error! No se recibió la información del puesto.";
  22. }else{
  23. $id = filter_input(INPUT_POST, "id", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  24. try {
  25. $pdo->beginTransaction();
  26. unset($objValida);
  27. $stmt = $pdo->prepare('Select * from fd_puesto(:id)');
  28. $stmt->bindParam(":id", $id);
  29. if(!$stmt->execute()){
  30. $pdo->rollBack();
  31. $t = $stmt->errorInfo();
  32. $return["error"] = "Ocurrió un error al borrar el puesto.".$t[2];
  33. $return["json"] = json_encode($return);
  34. echo json_encode($return);
  35. exit();
  36. }
  37. $rs = $stmt->fetch();
  38. $stmt->closeCursor();
  39. $stmt = null;
  40. if(intval($rs["fd_puesto"]) == 0){
  41. $pdo->rollBack();
  42. $return["error"] = "No se puede borrar el puesto porque tiene subordinados.";
  43. $return["json"] = json_encode($return);
  44. echo json_encode($return);
  45. exit();
  46. }
  47. $pdo->commit();
  48. $log = new LogActividad();
  49. $desc_log = "Borra puesto ID[".$id."]";
  50. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
  51. $return["ok"] = "El puesto se borró correctamente.";
  52. }catch(PDOException $e) {
  53. $pdo->rollBack();
  54. $return["error"] = "Ocurrió un error al borrar el puesto.";
  55. }
  56. }
  57. $return["json"] = json_encode($return);
  58. echo json_encode($return);
  59. ?>