tieneAcceso()){ $objSesion->terminaSesion(); //print_r($objSesion->getError()); } if(!$objSesion->puedeEditar()){ //header("Location: ".$pag); $return["error"] = "Error! No tienes permisos para realizar esta acción."; echo json_encode($return); exit(); } unset($objValida); if(empty($_POST["materia"]) || empty($_POST["json"])){ //header("Location: ".$pag."?error=0"); $return["error"] = "No se reciberon los datos."; echo json_encode($return); exit(); } $datos = json_decode($_POST["json"], true); $filter_mat = $_POST["materia"]; $matArr = explode("_",$filter_mat); // --- Borra sesiones anteriores --- try{ $pdo->beginTransaction(); //Obtiene fechas de periodo $stmt = $pdo->prepare('Select * from fs_periodo(:periodo, NULL, NULL, true)'); $stmt->bindParam(":periodo", $_SESSION["periodo_id"]); if(!$stmt->execute()){ $return["error"] = "Ocurrió un error al cargar los datos del periodo"; echo json_encode($return); exit(); }else{ $periodo_rs = $stmt->fetch(); } $stmt->closeCursor(); $fecha_min = $periodo_rs["Periodo_fecha_inicial"]; $error = false; if(empty($matArr[2])){ //echo "fd_sesioncatedra(".$matArr[0].", ".$_SESSION["usuario_id"].", ".$matArr[1].", NULL, NULL, NULL)"; $stmt = $pdo->prepare('Select * from fd_sesioncatedra(:mat, :prof, :gpo, NULL, NULL, NULL)'); }else{ $stmt = $pdo->prepare('Select * from fd_sesioncatedra(:mat, :prof, :gpo, :sub, NULL, NULL)'); $stmt->bindParam(":sub", $matArr[2]); } $stmt->bindParam(":prof", $_SESSION["usuario_id"]); $stmt->bindParam(":mat", $matArr[0]); $stmt->bindParam(":gpo", $matArr[1]); if(!$stmt->execute()){ $pdo->rollBack(); //print_r($stmt->errorInfo()); //header("Location:".$pag."?error=1"); $return["error"] = "Ocurrió un error al borrar las fechas del plan de cátedra."; echo json_encode($return); exit(); } $stmt->closeCursor(); $stmt = null; foreach($datos as $sesion){ foreach($sesion["contenido"] as $cont){ //echo "fi_sesioncatedra(".$matArr[0].", ".$_SESSION["usuario_id"].", ".$matArr[1].", ".$matArr[2].", ".$sesion["sesion"].", ".$cont["pos"].", ".$cont["desc"].", ".$cont["tipo"].")"; if(empty($matArr[2])){ $stmt = $pdo->prepare('Select * from fi_sesioncatedra(:mat, :prof, :gpo, NULL, :ses, :pos, :desc, :tipo)'); }else{ $stmt = $pdo->prepare('Select * from fi_sesioncatedra(:mat, :prof, :gpo, :sub, :ses, :pos, :desc, :tipo)'); $stmt->bindParam(":sub", $matArr[2]); } $stmt->bindParam(":prof", $_SESSION["usuario_id"]); $stmt->bindParam(":mat", $matArr[0]); $stmt->bindParam(":gpo", $matArr[1]); $stmt->bindParam(":ses", $sesion["sesion"]); $stmt->bindParam(":pos", $cont["pos"]); $stmt->bindParam(":desc", $cont["desc"]); $stmt->bindParam(":tipo", $cont["tipo"]); if(!$stmt->execute()){ $pdo->rollBack(); //print_r($stmt->errorInfo()); exit(); //header("Location:".$pag."?error=1"); $return["error"] = "Ocurrió un error al insertar las fechas del plan de cátedra."; echo json_encode($return); exit(); } $stmt->closeCursor(); $stmt = null; } } $log = new LogActividad(); $desc_log = "Inserta plan cátedra Prof[".$_SESSION["usuario_id"]."] Mat[".$matArr[0]."] Gpo[".$matArr[1]."] "; $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log); $pdo->commit(); }catch(PDOException $e) { $pdo->rollBack(); //print_r($e); exit(); //header("Location: ".$pag."?error=1"); $return["error"] = "Ocurrió un error al insertar las fechas del plan de cátedra."; echo json_encode($return); exit(); } //Después del tiempo para modificar $fecha_limite = $fecha = date ("Y-m-d", strtotime("+18 day", strtotime($fecha_min))); //18 días / 3 semanas if(strtotime(date("Y-m-d")) > strtotime($fecha_limite)){ $mat = $matArr[0]; $gpo = $matArr[1]; $gpo_nom = trim(filter_input(INPUT_POST, "gpo_nom", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));//limpia texto if(!empty($matArr[2])){ $sub = $matArr[2]; } $usr = $_SESSION["usuario_id"]; $usr_nombre = $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"]; if(isset($_POST["prof"]) && !empty($_POST["prof"])){ $usr = filter_input(INPUT_POST, "prof", FILTER_SANITIZE_NUMBER_INT);//limpia texto $stmt = $pdo->prepare('Select * from fs_usuario(:usr)'); $stmt->bindParam(":usr", $usr); if(!$stmt->execute()){ //header("Location: ".$pag."?error=5"); $return["error"] = "Ocurrió un error al obtener los datos del profesor."; echo json_encode($return); exit(); }else{ $usr_rs = $stmt->fetch(); $usr_nombre = $usr_rs["usuario_nombre"]." ".$usr_rs["usuario_apellidos"]; } $stmt->closeCursor(); } include_once('../../include/xTemplate/xtemplate.class.php'); // including mpdf.php include_once('../../include/mpdf/autoload.php'); // including mpdf.php include_once('../classes/PlanCatedra.php'); $stylesheet = ""; $xtpl = new XTemplate('../tpl/syllabus.tpl.html'); $planObj = new PlanCatedra($pdo); if(!$planObj->generaCalendario($usr, $usr_nombre, $mat, $gpo, $gpo_nom, $sub)){ $return["error"] = "Ocurrió un error al generar el plan."; echo json_encode($return); exit(); } $planObj->pdfPlan($stylesheet, true); } //header("Location: ".$pag."?ok=1"); $return["ok"] = "El plan de cátedra se actualizó correctamente"; echo json_encode($return); exit(); ?>