tieneAcceso()){ $objSesion->terminaSesion(); //print_r($objSesion->getError()); } if(!$objSesion->puedeEditar()){ header("Location: ".$pag); exit(); } unset($objValida); if(!isset($_POST["desc"]) || !isset($_POST["fecha_inicial"]) || !isset($_POST["fecha_final"]) || !isset($_POST["nivel"])){ header("Location: ".$pag."?error=0"); exit(); } $desc = trim(filter_input(INPUT_POST, "desc", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));//limpia texto $fecha_inicial = fechaGuion(trim(filter_input(INPUT_POST, "fecha_inicial", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $fecha_final = fechaGuion(trim(filter_input(INPUT_POST, "fecha_final", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $nivel = filter_input(INPUT_POST, "nivel", FILTER_SANITIZE_NUMBER_INT);//limpia texto $horario = filter_input(INPUT_POST, "horario", FILTER_SANITIZE_NUMBER_INT);//limpia texto $inter = filter_input(INPUT_POST, "inter", FILTER_SANITIZE_NUMBER_INT);//limpia texto $fecha_inicial_per = fechaGuion(trim(filter_input(INPUT_POST, "fecha_inicial_per", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $fecha_final_per = fechaGuion(trim(filter_input(INPUT_POST, "fecha_final_per", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $fecha_inicial_extras = fechaGuion(trim(filter_input(INPUT_POST, "fecha_inicial_extras", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $fecha_final_extras = fechaGuion(trim(filter_input(INPUT_POST, "fecha_final_extras", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $horario = ($horario == 1 ? 'true' : 'false'); $inter_text = ($inter == 1 ? 'true' : 'false'); if(isset($_POST["estado"])){ $estado = filter_input(INPUT_POST, "estado", FILTER_SANITIZE_NUMBER_INT);//limpia texto if($estado != 1) $estado = 2; }else $estado = 2; $fecha_jefes = fechaGuion(trim(filter_input(INPUT_POST, "fecha_jefes", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto try{ $pdo->beginTransaction(); if($fecha_jefes != ""){ $stmt = $pdo->prepare('Select * from fi_periodo(:desc, :fini, :ffin, :nivel, :edo, :fjefes, '.$horario.', '.$inter_text.')'); $stmt->bindParam(":fjefes", $fecha_jefes); }else{ $stmt = $pdo->prepare('Select * from fi_periodo(:desc, :fini, :ffin, :nivel, :edo, NULL, '.$horario.', '.$inter_text.')'); } $stmt->bindParam(":desc", $desc); $stmt->bindParam(":fini", $fecha_inicial); $stmt->bindParam(":ffin", $fecha_final); $stmt->bindParam(":nivel", $nivel); $stmt->bindParam(":edo", $estado); if(!$stmt->execute()){ header("Location:".$pag."?error=1"); //print_r($stmt->errorInfo()); exit(); } $rs = $stmt->fetch(); $periodo = $rs["fi_periodo"]; $stmt->closeCursor(); $stmt = null; //--- Fechas APSA $stmt = $pdo->prepare('Select * from fi_fechaimportante(:periodo, 3, :fechai, :fechaf )');//fechas periodo $stmt->bindParam(":periodo", $periodo); $stmt->bindParam(":fechai", $fecha_inicial_per); $stmt->bindParam(":fechaf", $fecha_final_per); if(!$stmt->execute()){ $pdo->rollBack(); //echo "3";print_r($stmt->errorInfo());exit(); header("Location:".$pag."?error=4"); exit(); } $stmt->closeCursor(); if($nivel == 1 && $inter == 0){ if($fecha_inicial_extras != "" && $fecha_final_extras != ""){ $stmt = $pdo->prepare('Select * from fi_fechaimportante(:periodo, 2, :fechai, :fechaf )');//fehas extraordinarios $stmt->bindParam(":periodo", $periodo); $stmt->bindParam(":fechai", $fecha_inicial_extras); $stmt->bindParam(":fechaf", $fecha_final_extras); if(!$stmt->execute()){ $pdo->rollBack(); //echo "2";print_r($stmt->errorInfo());exit(); header("Location:".$pag."?error=4"); exit(); } $stmt->closeCursor(); } } $stmt = null; //--- FECHAS IMPORTANTES GEMA AUTOMÁTICAS ---- $fechaImp_inicial = date('Y-m-d');//a partir de la creación del periodo $fechaImp_final = date('Y-m-d', strtotime($fecha_inicial. ' + 7 days')); //hasta 1 semana despues de iniciadas las clases $stmt = $pdo->prepare('Select * from fi_fechaimportante(:periodo, 5, :fini, :ffin)');//asignación $stmt->bindParam(":periodo", $periodo); $stmt->bindParam(":fini", $fechaImp_inicial); $stmt->bindParam(":ffin", $fechaImp_final); if(!$stmt->execute()){ $pdo->rollBack(); header("Location:".$pag."?error=4"); //print_r($stmt->errorInfo()); exit(); } $stmt->closeCursor(); $fechaImp_inicial = date('Y-m-d', strtotime($fechaImp_final. ' - 7 days'));//a partir de de finalizadas las clases $fechaImp_final = date('Y-m-d', strtotime($fechaImp_final. ' + 14 days')); //despues de finalizadas las clases $stmt = $pdo->prepare('Select * from fi_fechaimportante(:periodo, 6, :fini, :ffin)');//calificaciones ordinarias $stmt->bindParam(":periodo", $periodo); $stmt->bindParam(":fini", $fechaImp_inicial); $stmt->bindParam(":ffin", $fechaImp_final); if(!$stmt->execute()){ $pdo->rollBack(); header("Location:".$pag."?error=4"); //print_r($stmt->errorInfo()); exit(); } $stmt->closeCursor(); //$fechaImp_inicial = date('Y-m-d', strtotime($fechaImp_final. ' - 7 days'));//a partir de de finalizadas las clases $fechaImp_inicial = $fechaImp_final;//a partir de de finalizadas las clases $fechaImp_final = date('Y-m-d', strtotime($fechaImp_final. ' + 30 days')); //despues de finalizadas las clases $stmt = $pdo->prepare('Select * from fi_fechaimportante(:periodo, 7, :fini, :ffin)');//calificaciones extraordinarias $stmt->bindParam(":periodo", $periodo); $stmt->bindParam(":fini", $fechaImp_inicial); $stmt->bindParam(":ffin", $fechaImp_final); if(!$stmt->execute()){ $pdo->rollBack(); header("Location:".$pag."?error=4"); //print_r($stmt->errorInfo()); exit(); } $stmt->closeCursor(); $fechaImp_inicial = date('Y-m-d', strtotime($fecha_inicial. ' + 28 days'));//a partir de de finalizadas las clases $fechaImp_final = date('Y-m-d', strtotime($fechaImp_final. ' - 49 days')); //despues de finalizadas las clases $stmt = $pdo->prepare('Select * from fi_fechaimportante(:periodo, 6, :fini, :ffin)');//calificaciones intrasemestrales extraordinarias $stmt->bindParam(":periodo", $periodo); $stmt->bindParam(":fini", $fechaImp_inicial); $stmt->bindParam(":ffin", $fechaImp_final); if(!$stmt->execute()){ $pdo->rollBack(); header("Location:".$pag."?error=4"); //print_r($stmt->errorInfo()); exit(); } $stmt->closeCursor(); $pdo->commit(); $log = new LogActividad(); $desc_log = "Inserta periodo nuevo ID[".$periodo."] Nombre[".$desc."] FechaInicial[".$fecha_inicial."] FechaFinal[".$fecha_final."] Nivel[".$nivel."] Estado[".$estado."] FechaJefes[".$fecha_jefes."]"; $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log); header("Location: ".$pag."?ok=0"); exit(); } catch(PDOException $e) { $pdo->rollBack(); //header("Location:".$pag."?error=2"); print_r($e); } ?>