fechas_action.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. require_once '../classes/Etapa.php';
  3. require_once '../classes/Proyecto.php';
  4. require_once '../classes/Recurso.php';
  5. require_once '../include/bd_pdo.php';
  6. if(!isset($_POST['concurso']) && !isset($_POST['json'])){
  7. $return['error'] = 'Error! No se recibieron los datos.';
  8. } else {
  9. $concurso = filter_input(INPUT_POST, "concurso", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  10. $clase = json_decode($_POST["json"], true);
  11. $error = false;
  12. try {
  13. $pdo->beginTransaction();
  14. $stmt = $pdo->prepare('Select * from cidit_fd_fechaetapas(:concurso, NULL)');
  15. $stmt->bindParam(':concurso', $concurso);
  16. if(!$stmt->execute()){
  17. $return["error"] = "Error al borrar las fechas del concurso";
  18. $error = true;
  19. }else{
  20. $stmt->closeCursor();
  21. $stmt = null;
  22. //recorre objeto json
  23. foreach($clase as $etapa){
  24. if(!$error){//si no hay errores
  25. $orden = 1;
  26. foreach($etapa["fechas"] as $fecha_row){//recorre listado de fechas
  27. if(count($fecha_row) > 0){
  28. $fechas_str = implode(",", $fecha_row);//obiene fechas (inicial, final) y convierte en texto
  29. $stmt = $pdo->prepare('Select * from cidit_fi_fechaetapas(:concurso, :etapa, :fechas, :orden)');
  30. $stmt->bindParam(':concurso', $concurso);
  31. $stmt->bindParam(':etapa', $etapa["id"]);
  32. $stmt->bindParam(':fechas', $fechas_str);
  33. $stmt->bindParam(':orden', $orden);
  34. if(!$stmt->execute()){
  35. //$t = $stmt->errorInfo();
  36. $return["error"] = "Error al insertar las fechas del concurso.";//.$t[2];
  37. $error = true;
  38. break;
  39. }
  40. }
  41. $orden++;
  42. $stmt->closeCursor();
  43. }
  44. }
  45. }
  46. }
  47. $stmt->closeCursor();
  48. $stmt = null;
  49. if(!$error){
  50. $pdo->commit();
  51. $return["ok"]= "Las fechas se actualizaron correctamente";
  52. }else{
  53. $pdo->rollBack();
  54. }
  55. } catch(PDOException $e) {
  56. $pdo->rollBack();
  57. $return["error"] = "Error al insertar las fechas del concurso.";//.$e->getMessage();
  58. }
  59. }
  60. $return["json"] = json_encode($return);
  61. echo json_encode($return);
  62. ?>