123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- <?php
- /*
- * Inserta los datos del plan de cátedra
- * Recibe:
- * materia con cadena de materia_grupo_subm
- * json: JSON con la infromación del plan
- * Error:
- * 0 - No se recibieron los datos
- * 1 - Error de base de datos
- * Success:
- */
- require_once("../../include/constantes.php");
- require_once("../../include/bd_pdo.php");
- require_once("../../classes/ValidaSesion.php");
- require_once("../classes/LogActividad.php");//die on error
- require_once("../../include/util.php");
- $pag = "../syllabus.php";
- function getRGBA_color($hex, $a=0){
- list($r, $g, $b) = sscanf($hex, "#%02x%02x%02x");
- $style = "rgba($r,$g, $b,";
- $style .= "$a)";
- return $style;
- }
- //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
- $objSesion = new ValidaSesion($pdo, 25, APSA);
- if(!$objSesion->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 = "<style>";
- $stylesheet .= file_get_contents('../../css/indivisa.css'); // external css
- $stylesheet .= file_get_contents('../css/syllabus.css'); // external css
- $stylesheet .= "</style>";
- $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();
- ?>
|