tieneAcceso()){ $objSesion->terminaSesion(); } $objSesion->validaPeriodoUsuario();//si no tiene periodo manda a main //------- function buscaVacacion($fecha, $vacacionesArr){ $i=0; foreach($vacacionesArr as $vacacion){ if ($vacacion["fecha"] == $fecha){ return $i; } $i++; } return false; } function getSesiones($arr, $num){ foreach($arr as $ses){ if($ses["sesion"] == $num ){ return $ses["subsesiones"]; } } return array(); } function en_dias($dia, $arr){ foreach($arr as $e){ if($e["dia"] == $dia) return true; } return false; } //Obtiene materias de profesor if(empty($matArr[2])){ $stmt = $pdo->prepare('Select * from fs_materiasprofesor(:per, :usr) '); } $stmt->bindParam(":per", $_SESSION["periodo_id"]); $stmt->bindParam(":usr", $_SESSION["usuario_id"]); if(!$stmt->execute()){ print_r($stmt->errorInfo()); $errorDesc = "Ocurrió un error al cargar los planes de estudios"; exit(); }else $mat_rs = $stmt->fetchAll(); $stmt->closeCursor(); $stmt = null; //Obtiene fechas de periodo $stmt = $pdo->prepare('Select * from fs_periodo(:periodo, NULL, NULL, true)'); $stmt->bindParam(":periodo", $_SESSION["periodo_id"]); if(!$stmt->execute()){ //print_r($stmt->errorInfo()); $errorDesc = "Ocurrió un error al cargar los datos del periodo"; }else{ $periodo_rs = $stmt->fetch(); } $stmt->closeCursor(); $fecha_min = $periodo_rs["Periodo_fecha_inicial"]; $fecha_max = $periodo_rs["Periodo_fecha_final"]; $fecha_limite = date ("Y-m-d", strtotime("+18 day", strtotime($fecha_min))); //18 días / 3 semanas $fecha_limite = date ("Y-m-d", strtotime("+42 day", strtotime($fecha_min))); //18 días / 3 semanas //Obtiene fechas de periodo $stmt = $pdo->prepare('Select * from fs_syllabus_excepcion(:periodo, :prof)'); $stmt->bindParam(":periodo", $_SESSION["periodo_id"]); $stmt->bindParam(":prof", $_SESSION["usuario_id"]); if(!$stmt->execute()){ //print_r($stmt->errorInfo()); $errorDesc = "Ocurrió un error al cargar los datos del syllabus"; }else{ $ex_rs = $stmt->fetch(); } $stmt->closeCursor(); if(!empty($ex_rs) && count($ex_rs)>0){ $fecha_nueva = $t_fecha_limite = strtotime($fecha_limite); $fecha_nueva = strtotime($ex_rs["SyllabusExcepcion_fecha"]); if ($fecha_nueva > $t_fecha_limite) { $fecha_limite = date ("Y-m-d", $fecha_nueva); //18 días / 3 semanas } } //------------ if(isset($_POST["materia"])){ $filter_mat = $_POST["materia"]; $filter_materia_nom = $_POST["materia_nom"]; $filter_gpo_nom = $_POST["gpo_nom"]; $matArr = explode("_",$filter_mat); //-- if(empty($matArr[2])){ $stmt = $pdo->prepare('Select * from fs_syllabus(:periodo, :prof, :mat, :gpo, NULL )'); }else{ $stmt = $pdo->prepare('Select * from fs_syllabus(:periodo, :prof, :mat, :gpo, :sub )'); $stmt->bindParam(":sub", $matArr[2]); } $stmt->bindParam(":periodo", $_SESSION["periodo_id"]); $stmt->bindParam(":prof", $_SESSION["usuario_id"]); $stmt->bindParam(":mat", $matArr[0]); $stmt->bindParam(":gpo", $matArr[1]); if(!$stmt->execute()){ //print_r($stmt->errorInfo()); $errorDesc = "Ocurrió un error al cargar los datos del sýllabus"; }else{ $syllabus_rs = $stmt->fetch(); } $stmt->closeCursor(); //Obtiene grupos $query = ""; //---Tipo de sesiones plan cátedra $stmt = $pdo->prepare('Select * from fs_sesioncatedra_tipo(NULL)'); if(!$stmt->execute()){ //print_r($stmt->errorInfo()); $errorDesc = "Ocurrió un error al cargar los días de las materias"; }else{ $tipoSesionArr = $stmt->fetchAll(); } $stmt->closeCursor(); $stmt = null; //------------------------- //Periodos con nombramientos $stmt = $pdo->prepare('Select * from fs_periodosprofesor(:usr_id) WHERE "Periodo_hasHistorico" is true order by "Periodo_id" DESC'); $stmt->bindParam(":usr_id", $_SESSION["usuario_id"]); if(!$stmt->execute()){ $errorDesc = "Ocurrió un error al cargar los periodos del usuario"; }else{ $periodosN_rs = $stmt->fetchAll(); } $stmt->closeCursor(); //------------------------- //Obtiene materias de profesor y los dias que da clase if(empty($matArr[2])){ $stmt = $pdo->prepare('Select * from fs_materiadias(:usr, :mat, :gpo, NULL)'); }else{ $stmt = $pdo->prepare('Select * from fs_materiadias(:usr, :mat, :gpo, :sub)'); $stmt->bindParam(":sub", $matArr[2]); } $stmt->bindParam(":usr", $_SESSION["usuario_id"]); $stmt->bindParam(":mat", $matArr[0]); $stmt->bindParam(":gpo", $matArr[1]); if(!$stmt->execute()){ //print_r($stmt->errorInfo()); $errorDesc = "Ocurrió un error al cargar los días de las materias"; }else{ $rs = $stmt->fetchAll(); $diasMatArr = array(); foreach($rs as $dia){ $diasMatArr[] = array( "dia"=> $dia["Dia_id"], "hora"=>substr($dia["Horario_hora"],0, 5)); } } $stmt->closeCursor(); $stmt = null; // ---- Obtiene fechas de vacaciones $stmt = $pdo->prepare('select * from fs_calendarioevento_categoria(:fini, :ffin, 2, :periodo)'); $stmt->bindParam(":fini", $fecha_min); $stmt->bindParam(":ffin", $fecha_max); $stmt->bindParam(":periodo", $_SESSION["periodo_id"]); if(!$stmt->execute()){ $errorDesc = "Ocurrió un error al cargar las fechas de vacaciones"; }else{ $vacaciones_rs = $stmt->fetchAll(); } $stmt->closeCursor(); $stmt = null; $vacacionesArr = array();//Guarda los días individuales de vacaciones foreach($vacaciones_rs as $evento){ $fecha = fechaGuion($evento["CalendarioEvento_fecha"]); switch($evento["CalendarioRepeticion_id"]){ case 1: //diario while (strtotime($fecha) <= strtotime($evento["CalendarioReglas_fecha_final"])) { $vacacionesArr[] = array("fecha"=> $fecha, "titulo"=>$evento["CalendarioEvento_titulo"]); $fecha = date ("Y-m-d", strtotime("+1 day", strtotime($fecha))); } break; case 2: //semanal $diasArr = explode(",", $evento["CalendarioReglas_dias_str"]); while (strtotime($fecha) <= strtotime($evento["CalendarioReglas_fecha_final"])) { if(in_array(date("w", strtotime($fecha)), $diasArr) ){//si es el día que quiero $vacacionesArr[] = array("fecha"=> $fecha, "titulo"=>$evento["CalendarioEvento_titulo"]); } $fecha = date ("Y-m-d", strtotime("+1 day", strtotime($fecha))); } break; case 3://mensual $diasArr = explode(",", $evento["CalendarioReglas_dias_str"]); //reglas $weekTxt = array(1=>"first", 2=>"second", 3=>"third", 4=>"fourth", -1=>"last"); $dayname = array("sun", "mon", "tue", "wed", "thu", "fri", "sat"); $fecha = date ("Y-m-01", strtotime($fecha));//empieza a revisar en el primer día del mes $semana = $evento["CalendarioReglas_semana"]; while (strtotime($fecha) <= strtotime($evento["CalendarioReglas_fecha_final"])) { foreach($diasArr as $d){ //echo "-->". intval(date("w", strtotime($fecha)))." == ". intval($d)."[".$fecha."]"; if($semana == 1 && intval(date("w", strtotime($fecha))) == intval($d) ){//si el día actual es el que quiero lo guarda $vacacionesArr[] = array("fecha"=> $fecha, "titulo"=>$evento["CalendarioEvento_titulo"]); }else{//si no calcula siguiente día if(intval(date("w", strtotime($fecha))) == intval($d)){ $fechaTmp = date ("Y-m-d", strtotime($weekTxt[$semana-1]." ".$dayname[$d], strtotime($fecha))); }else{ $fechaTmp = date ("Y-m-d", strtotime($weekTxt[$semana]." ".$dayname[$d], strtotime($fecha))); } $vacacionesArr[] = array("fecha"=> $fecha, "titulo"=>$evento["CalendarioEvento_titulo"]); } } $fecha = date ("Y-m-01", strtotime("+1 month", strtotime($fecha)));//siguiente mes primer día } break; default: //no se repite $vacacionesArr[] = array("fecha"=> $fecha, "titulo"=>$evento["CalendarioEvento_titulo"]); } } //----- Calcula fechas de clases $MESES = array(1=>"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"); $DIAS = array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"); $calendario = array(); $fechasArr = array(); $fecha = $fecha_min; $semOld=1; $cont = 0; while (strtotime($fecha) <= strtotime($fecha_max)) { if(date("w", strtotime($fecha)) == $diasMatArr[$cont%count($diasMatArr)]["dia"]) {//si es el día que quiero if($semOld != floor($cont/count($diasMatArr))+1){ $sem = floor($cont/count($diasMatArr))+1; $semOld = $sem; $calendario[] = array("semana"=>$sem-1, "fechas"=>$fechasArr); $fechasArr = array(); } $vacPos = buscaVacacion($fecha, $vacacionesArr); //echo $cont.") Fecha: ".$fecha." [".($vacPos===false?"false":"true")."]
"; if($vacPos === false){//no vacaciones $fechasArr[] = array("numSesion"=>$cont+1, "fecha"=>fechaSlash($fecha)." ".$diasMatArr[$cont%count($diasMatArr)]["hora"], "mes"=>date("n", strtotime($fecha)), "habil"=>true, "dia"=>$DIAS[date("w", strtotime($fecha))-1], "titulo"=>""); //Si el día de la fecha no es el día del siguiente evento O se reinicia el arreglo de días //echo "$cont)". fechaSlash($fecha)." "; //echo "[".date("w", strtotime($fecha))." != ".$diasMatArr[($cont+1)%count($diasMatArr)]["dia"]."] || [ 0 == ".($cont+1)%count($diasMatArr)."]
"; if(date("w", strtotime($fecha)) != $diasMatArr[$cont%count($diasMatArr)]["dia"] || ($cont+1)%count($diasMatArr)==0){ $fecha = date ("Y-m-d", strtotime("+1 day", strtotime($fecha))); //echo "Cambia día
"; } }else{//vacaciones $fechasArr[] = array("numSesion"=> 0,"fecha"=>fechaSlash($fecha), "mes"=>date("n", strtotime($fecha)), "habil"=>false, "dia"=>$DIAS[date("w", strtotime($fecha))-1], "titulo"=>$vacacionesArr[$vacPos]["titulo"]); $aux = $cont/count($diasMatArr);//para que sean de la misma semana //mientras sea el mismodía de la misma semana //while(date("w", strtotime($fecha)) == $diasMatArr[($cont+1)%count($diasMatArr)]["dia"] && $aux == ($cont+1)/count($diasMatArr)){ //echo "-- while ".date("w", strtotime($fecha)) ."==". $diasMatArr[$cont%count($diasMatArr)]["dia"]." || ".($cont+1)%count($diasMatArr)."==0
"; if(date("w", strtotime($fecha)) != $diasMatArr[$cont%count($diasMatArr)]["dia"] || ($cont+1)%count($diasMatArr)==0){ while(date("w", strtotime($fecha)) == $diasMatArr[$cont%count($diasMatArr)]["dia"] && ($cont+1)%count($diasMatArr)!=0){ $cont++; } $fecha = date ("Y-m-d", strtotime("+1 day", strtotime($fecha))); } /*if(date("w", strtotime($fecha)) != $diasMatArr[$cont%count($diasMatArr)]["dia"] || ($cont+1)%count($diasMatArr)==0){ $fecha = date ("Y-m-d", strtotime("+1 day", strtotime($fecha))); }*/ } $cont++; }else{ $fecha = date ("Y-m-d", strtotime("+1 day", strtotime($fecha))); //echo "Cambia día else
"; } } if($semOld != floor($cont/count($diasMatArr))){ $sem = floor($cont/count($diasMatArr))+1; }else{ $sem = floor($cont/count($diasMatArr)); } $calendario[] = array("semana"=>$sem, "fechas"=>$fechasArr); $mesMin = $calendario[0]["fechas"][0]["mes"]; $mesMax = $calendario[count($calendario)-1]["fechas"][0]["mes"]; $cont = 1; $i=0; $j=0; for($i=0; $i< count($calendario); $i++){ for($j=0; $j< count($calendario[$i]["fechas"]); $j++){ if($calendario[$i]["fechas"][$j]["habil"]){ $calendario[$i]["fechas"][$j]["numSesion"] = $cont; $cont++; } } } //---Obtiebe contenido de sesiones plan cátedra if(empty($matArr[2])){ $stmt = $pdo->prepare('Select * from fs_sesioncatedra(:mat, :usr, :gpo, NULL, NULL)'); }else{ $stmt = $pdo->prepare('Select * from fs_sesioncatedra(:mat, :usr, :gpo, :sub, NULL)'); $stmt->bindParam(":sub", $matArr[2]); } $stmt->bindParam(":usr", $_SESSION["usuario_id"]); $stmt->bindParam(":mat", $matArr[0]); $stmt->bindParam(":gpo", $matArr[1]); if(!$stmt->execute()){ //print_r($stmt->errorInfo()); $errorDesc = "Ocurrió un error al cargar las sesiones del plan de cátedra"; }else{ $rs = $stmt->fetchAll(); $sesionesArr = array(); $ses_old = -1; $subsesionArr = array(); $i = -1; foreach($rs as $ses){ if($ses_old != $ses["SesionCatedra_numero"]){ $i++; $sesionesArr[$i]=array("sesion"=>$ses["SesionCatedra_numero"], "subsesiones"=>array()); $ses_old = $ses["SesionCatedra_numero"]; } $sesionesArr[$i]["subsesiones"][] = array("desc"=>$ses["SesionCatedra_desc"], "tipo_id"=>$ses["SesionCatedraTipo_id"], "tipo"=>$ses["SesionCatedraTipo_desc"], "color"=>$ses["SesionCatedraTipo_color"]); //$diasMatArr[] = array( "dia"=> $dia["Dia_id"], "hora"=>substr($dia["Horario_hora"],0, 5)); } } //print_r($sesionesArr); exit(); $stmt->closeCursor(); $stmt = null; //Obtiene mapa $stmt = $pdo->prepare('select * from fs_atributoegreso_materia(:mat)'); $stmt->bindParam(":mat", $matArr[0]); if(!$stmt->execute()){ $errorDesc = "Ocurrió un error al cargar los datos de los atributos de egreso."; }else{ $atributos_rs = $stmt->fetchAll(); } } ?> APSA - Facultad de Ingeniería
printMenu(); //--Manejo de errores y mensajes de exito if(isset($_GET["error"]) && is_numeric($_GET["error"])){ switch ($_GET["error"]){ case 0: $errorDesc = "No se reciberon los datos."; break; case 1: $errorDesc = "Ocurrió un error al insertar los datos del syllabus."; break; case 2: $errorDesc = "No tienes permisos para realizar esa acción."; break; case 3: $errorDesc = "Ocurrió un error al cargar los datos del syllabus."; break; case 4: $errorDesc = "Ocurrió un error al cargar los datos del plan de cátedra."; break; case 5: $errorDesc = "Ocurrió un error al cargar los datos de los atributos de egreso."; break; } } if(isset($_GET["ok"]) && is_numeric($_GET["ok"])){ switch ($_GET["ok"]){ case 0: $successDesc = "El syllabus se actualizó correctamente."; break; case 1: $successDesc = "El plan de cátedra se actualizó correctamente."; break; } } ?>
Mostrar todas
  • " data-id="" >

strtotime($fecha_limite)){ ?>
0){ ?>
"; foreach($atributos_rs as $atr){ $html.="
  • Atributo {$atr["AtributoEgreso_id"]} nivel {$atr["AtributoNivel_desc"]}: {$atr["AtributoEgreso_desc"]}
  • "; } $html.=""; echo $html; ?>

    INFORMACIÓN DE LA ASIGNATURA

    LINEAMIENTOS GENERALES

    BIBLIOGRAFÍA

    ">

    " data-sesion_num="" >

    Sesión

    " >

    " id="ses_">
    " title="" data-tipo="">
    ">
    " title="" data-tipo="">

    puedeEditar() && isset($_POST["materia"])){ ?>
    puedeEditar() && isset($_POST["materia"])){ ?>