fecha_insert.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. /*
  3. * Inserta los datos de una nueva carrera
  4. * Recibe:
  5. * desc - Descripción
  6. * fecha_inicial date,
  7. * fecha_final date,
  8. * periodo integer,
  9. * justifica boolean*,
  10. *
  11. * Error:
  12. * 0 - No se recibieron los datos
  13. * 1 - Error de base de datos
  14. * Success:
  15. */
  16. require_once("../../include/constantes.php");
  17. require_once("../../include/bd_pdo.php");
  18. require_once("../../include/util.php");
  19. require_once("../../classes/ValidaSesion.php");
  20. require_once("../classes/LogActividad.php");//die on error
  21. $pag = "../periodos.php";
  22. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  23. $objSesion = new ValidaSesion($pdo, 44, APSA);
  24. if(!$objSesion->tieneAcceso()){
  25. $objSesion->terminaSesion();
  26. //print_r($objSesion->getError());
  27. }
  28. if(!$objSesion->puedeEditar()){
  29. header("Location: ".$pag);
  30. exit();
  31. }
  32. unset($objValida);
  33. if(!isset($_POST["desc"]) /*|| !isset($_POST["fecha_inicial"]) || !isset($_POST["fecha_final"])*/ || !isset($_POST["id"])){
  34. header("Location: ".$pag."?error=0");
  35. exit();
  36. }
  37. $descArr = filter_input(INPUT_POST, 'desc', FILTER_DEFAULT , FILTER_REQUIRE_ARRAY);
  38. $fecha_inicialArr = filter_input(INPUT_POST, 'fecha_inicial', FILTER_DEFAULT , FILTER_REQUIRE_ARRAY);
  39. $fecha_finalArr = filter_input(INPUT_POST, 'fecha_final', FILTER_DEFAULT , FILTER_REQUIRE_ARRAY);
  40. /*$descArr = filter_input(INPUT_POST, "desc", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW));//limpia texto
  41. $fecha_inicialArr = filter_input(INPUT_POST, "fecha_inicial", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW));//limpia texto
  42. $fecha_finalArr = filter_input(INPUT_POST, "fecha_final", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW));//limpia texto*/
  43. $periodo_id = filter_input(INPUT_POST, "id", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  44. $pdo->beginTransaction();
  45. $stmt = $pdo->prepare('Select * from fs_periodo(:periodo, NULL, NULL, NULL)');
  46. $stmt->bindParam(":periodo", $periodo_id);
  47. if(!$stmt->execute()){
  48. header("Location:".$pag."?error=1");
  49. //print_r($stmt->errorInfo());
  50. exit();
  51. }
  52. $periodo_rs = $stmt->fetch();
  53. $stmt->closeCursor();
  54. $stmt = null;
  55. $ok = 2;
  56. $stmt = $pdo->prepare('Select * from fi_fechaimportante(:periodo, :desc, :fini, :ffin, false)');
  57. for($i = 0; $i < count($descArr); $i++){
  58. $fecha_inicial = fechaGuion($fecha_inicialArr[$i]);
  59. $fecha_final = fechaGuion($fecha_finalArr[$i]);
  60. if(trim($descArr[$i]) != "" && trim($fecha_inicialArr[$i]) != "" && trim($fecha_finalArr[$i]) != ""
  61. && fechaGuion($periodo_rs["Periodo_fecha_inicial"]) <= $fecha_inicial && fechaGuion($periodo_rs["Periodo_fecha_final"]) >= $fecha_final && $fecha_inicial <= $fecha_final
  62. ){
  63. $stmt->bindParam(":periodo", $periodo_id);
  64. $stmt->bindParam(":desc", $descArr[$i]);
  65. $stmt->bindParam(":fini", $fecha_inicial);
  66. $stmt->bindParam(":ffin", $fecha_final);
  67. if(!$stmt->execute()){
  68. $pdo->rollBack();
  69. header("Location:".$pag."?error=4");
  70. //print_r($stmt->errorInfo());
  71. exit();
  72. }
  73. $rs = $stmt->fetch();
  74. $log = new LogActividad();
  75. $desc_log = "Inserta fecha importante para el periodo ID[".$periodo_id."] Nombre[".$descArr[$i]."] FechaInicial[".$fecha_inicial."] FechaFinal[".$fecha_final."]";
  76. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
  77. }else{
  78. echo "No se insertó: Fecha[".$fecha_inicial."][".$fecha_final."] Periodo[".fechaGuion($periodo_rs["Periodo_fecha_inicial"])."][".fechaGuion($periodo_rs["Periodo_fecha_final"])."]";
  79. $ok = 4;
  80. }
  81. }
  82. $pdo->commit();
  83. $stmt->closeCursor();
  84. $stmt = null;
  85. header("Location: ".$pag."?ok=".$ok);
  86. exit();
  87. ?>