123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- <?php
- /*
- * Inserta los datos de un nuevo Puesto.
- * Recibe:
- * desc
- * areaadmin
- * areaacad[] (opcional)
- * superior (opcional)
- *
- * Error:
- * 0 - No se recibieron los datos
- * 1 - Error de base de datos
- * Success:
- */
- require_once("../../include/constantes.php");
- require_once("../../include/bd_pdo.php");
- require_once("../../classes/ValidaSesion.php");
- require_once("../classes/LogActividad.php");//die on error
- $pag = "../puestos.php";
- //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
- $objSesion = new ValidaSesion($pdo, 87, APSA);
- if(!$objSesion->tieneAcceso()){
- $objSesion->terminaSesion();
- //print_r($objSesion->getError());
- }
- if(!$objSesion->puedeEditar()){
- header("Location: ".$pag."?error=3");
- exit();
- }
- unset($objValida);
- if(!isset($_POST["desc"]) || !isset($_POST["area"]) ){
- header("Location: ".$pag."?error=0");
- exit();
- }
- $desc = trim(filter_input(INPUT_POST, "desc", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));//limpia texto
- $areaadmin = filter_input(INPUT_POST, "area", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- /*$tipo = filter_input(INPUT_POST, "tipo", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- if($tipo == 1)
- $tipo = "true";
- else
- $tipo = "false";*/
- if(isset($_POST["tipo"])){
- $tipo = filter_input(INPUT_POST, "tipo", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- if($tipo != 1) $tipo = 1;
- }else{
- $tipo = 0;
- }
- if(isset($_POST["checador"])){
- $checador = filter_input(INPUT_POST, "checador", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- if($checador != 1) $checador = 1;
- }else{
- $checador = 0;
- }
- if(isset($_POST["proceso"])){
- $proceso = filter_input(INPUT_POST, "proceso", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- if($proceso != 1) $proceso = 1;
- }else{
- $proceso = 0;
- }
- $areaacad = array();
- if(isset($_POST["areaacad"]))
- $areaacad = $_POST["areaacad"];
- $query = "";
- if(isset($_POST["id_superior"]) && $_POST["id_superior"] != ""){
- $query .= ":sup, ";
- $superior = filter_input(INPUT_POST, "id_superior", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- }else{
- $query .= "NULL, ";
- }
- if(isset($_POST["usuario"]) && $_POST["usuario"] != ""){
- $query .= ":usr";
- $usr = filter_input(INPUT_POST, "usuario", FILTER_SANITIZE_NUMBER_INT);//limpia texto
- }else{
- $query .= "NULL";
- }
- $pdo->beginTransaction();
- $stmt = $pdo->prepare("Select * from fi_puesto(:desc, :aadmin, :tipo, :checa, :proceso, ".$query.")");
- $stmt->bindParam(":desc", $desc);
- $stmt->bindParam(":aadmin", $areaadmin);
- $stmt->bindParam(":tipo", $tipo);
- $stmt->bindParam(":checa", $checador);
- $stmt->bindParam(":proceso", $proceso);
- if(isset($superior)) $stmt->bindParam(":sup", $superior);
- if(isset($usr)) $stmt->bindParam(":usr", $usr);
- if(!$stmt->execute()){
- print_r($stmt->errorInfo());
- header("Location:".$pag."?error=1");
- $pdo->rollBack();
- exit();
- }
- $rs = $stmt->fetch();
- $stmt->closeCursor();
- $stmt = null;
- $puesto = $rs["fi_puesto"];
- //areas académicas
- $stmt = $pdo->prepare("Select * from fi_puesto_areaacademica(:puesto, :area)");
- $stmt->bindParam(":puesto", $puesto);
- foreach($areaacad as $area){
- if($area != ""){
- $stmt->bindParam(":area", $area);
- if(!$stmt->execute()){
- print_r($stmt->errorInfo());
- header("Location:".$pag."?error=5");
- $pdo->rollBack();
- exit();
- }
- }
- }
- $stmt->closeCursor();
- $stmt = null;
- $pdo->commit();
- $log = new LogActividad();
- $desc_log = "Inserta menú puesto ID[".$rs["fi_puesto"]."] Nombre[".$desc."] Tipo[".$tipo."] Área Admin[".$areaadmin."]";
- /*if(isset($areaacad)) $desc_log.= "Área Acad [".$areaacad."]";*/
- if(isset($superior)) $desc_log.= "Superior[".$superior."]";
- $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
- header("Location: ".$pag."?ok=0");
- exit();
- ?>
|