insigniapersonal_insert.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <?php
  2. /*
  3. * Inserta los datos de área administrativa
  4. * Recibe:
  5. * desc
  6. * Error:
  7. * 0 - No se recibieron los datos
  8. * 1 - Error de base de datos
  9. * Success:
  10. */
  11. require_once("../../include/constantes.php");
  12. require_once("../../include/bd_pdo.php");
  13. require_once("../../include/util.php");
  14. require_once("../../classes/ValidaSesion.php");
  15. require_once("../classes/LogActividad.php");//die on error
  16. $pag = "../insigniapersonal_asigna.php";
  17. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  18. $objSesion = new ValidaSesion($pdo, 114, GEMA);
  19. if(!$objSesion->tieneAcceso()){
  20. $objSesion->terminaSesion();
  21. //print_r($objSesion->getError());
  22. }
  23. if(!$objSesion->puedeEditar()){
  24. header("Location: ".$pag);
  25. exit();
  26. }
  27. unset($objValida);
  28. if(!isset($_POST["usr_id"], $_POST["titulo"], $_POST["desc"], $_POST["categoria"], $_POST["puesto"]) ){
  29. header("Location: ".$pag."?error=0");
  30. exit();
  31. }
  32. //$titulo = trim(filter_input(INPUT_POST, "titulo", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));//limpia texto
  33. //$desc = trim(filter_input(INPUT_POST, "desc", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));//limpia texto
  34. $titulo = trim($_POST["titulo"]);//limpia texto
  35. $desc = trim($_POST["desc"]);//limpia texto
  36. $cat = filter_input(INPUT_POST, "categoria", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  37. $puesto = filter_input(INPUT_POST, "puesto", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  38. $usr_id = filter_input(INPUT_POST, "usr_id", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  39. if(!empty($_POST["fecha_inicial"]))
  40. $fecha_ini = fechaGuion(trim(filter_input(INPUT_POST, "fecha_inicial", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto
  41. $fecha_fin = fechaGuion(trim(filter_input(INPUT_POST, "fecha_final", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto
  42. try{
  43. $pdo->beginTransaction();
  44. //hay archivo?
  45. if(!empty($_FILES['archivo']['name'])){
  46. $archivo = $_FILES['archivo']['name'];
  47. // Check file size
  48. if ($_FILES["archivo"]["size"] > 10 * 1024 * 1024) {//en bytes
  49. $pdo->rollBack();
  50. header("Location:".$pag."?id=".$usr_id."&error=2");
  51. exit();
  52. }
  53. $dot_arr = explode('.', $archivo);
  54. $ext = end($dot_arr);
  55. unset($dot_arr);
  56. $target_file = $usr_id."_".$id_insignia.".".$ext;
  57. }
  58. if(!empty($target_file)){
  59. $stmt = $pdo->prepare('Select * from fi_insignia(:titulo, :desc, :tipo, :puesto, true, :evidencia, true)');
  60. $stmt->bindParam(":evidencia", $target_file);
  61. }else{
  62. $stmt = $pdo->prepare('Select * from fi_insignia(:titulo, :desc, :tipo, :puesto, false, NULL, true)');
  63. }
  64. $stmt->bindParam(":titulo", $titulo);
  65. $stmt->bindParam(":desc", $desc);
  66. $stmt->bindParam(":tipo", $cat);
  67. $stmt->bindParam(":puesto", $puesto);
  68. if(!$stmt->execute()){
  69. //print_r($stmt->errorInfo());
  70. $pdo->rollBack();
  71. header("Location:".$pag."?id=".$usr_id."&error=1");
  72. exit();
  73. }
  74. $rs = $stmt->fetch();
  75. $id_insignia = intval($rs["fi_insignia"]);
  76. $stmt->closeCursor();
  77. //Inserta atributos
  78. if(!$error && !empty($_POST["atributo"]) && !empty($_POST["nivel"]) ){
  79. $stmt = $pdo->prepare('Select * from fi_insignia_atributoegreso(:id, :atr, :nivel)');
  80. $stmt->bindParam(":id", $id_insignia);
  81. for($i=0; $i< count($_POST["atributo"]) && !$error; $i++){
  82. if($_POST["atributo"][$i] != 0){
  83. $stmt->bindParam(":atr", $_POST["atributo"][$i]);
  84. $stmt->bindParam(":nivel", $_POST["nivel"][$i]);
  85. if(!$stmt->execute()){
  86. $t = $stmt->errorInfo();
  87. $pdo->rollBack();
  88. header("Location:".$pag."?id=".$usr_id."&error=4");
  89. exit();
  90. }
  91. }
  92. }
  93. $stmt->closeCursor();
  94. }
  95. if(!empty($fecha_ini)){
  96. $stmt = $pdo->prepare('Select * from fi_insigniapersonal(:usr, :ins, :fecha_ini, :fecha_fin, :url)');
  97. $stmt->bindParam(":fecha_ini", $fecha_ini);
  98. }else{
  99. $stmt = $pdo->prepare('Select * from fi_insigniapersonal(:usr, :ins, NULL, :fecha_fin, :url)');
  100. }
  101. $stmt->bindParam(":usr", $usr_id);
  102. $stmt->bindParam(":ins", $id_insignia);
  103. $stmt->bindParam(":fecha_fin", $fecha_fin);
  104. $stmt->bindParam(":url", $target_file);
  105. if(!$stmt->execute()){
  106. //print_r($stmt->errorInfo());
  107. $pdo->rollBack();
  108. header("Location:".$pag."?id=".$usr_id."&error=1");
  109. exit();
  110. }
  111. /*if(!empty($target_file)){
  112. $stmt = $pdo->prepare('Select * from fi_insigniaevidencia(:ins, :usr, :url)');
  113. $stmt->bindParam(":url", $target_file);
  114. $stmt->bindParam(":usr", $usr_id);
  115. $stmt->bindParam(":ins", $id_insignia);
  116. if(!$stmt->execute()){
  117. //print_r($stmt->errorInfo());
  118. $pdo->rollBack();
  119. header("Location:".$pag."?id=".$usr_id."&error=1");
  120. exit();
  121. }
  122. $stmt->closeCursor();
  123. $target_dir = "../files/evidencias/";
  124. if(file_exists($target_dir.$target_file)){
  125. unlink($target_dir.$target_file);
  126. }
  127. if (!move_uploaded_file($_FILES["archivo"]["tmp_name"], $target_dir.$target_file)) {
  128. header("Location:".$pag."?id=".$usr_id."&error=3");
  129. exit();
  130. }
  131. }*/
  132. $stmt->closeCursor();
  133. $pdo->commit();
  134. } catch(PDOException $e) {
  135. $pdo->rollBack();
  136. echo "Ocurrió un error al insertar los datos del evento.". $e->getMessage();
  137. exit();
  138. }
  139. header("Location: ".$pag."?id=".$usr_id."&ok=0");
  140. exit();
  141. ?>