/*
* Carga calendario sin permitir edicion
*/
$(document).ready(function(){
loadHorario();
});
function loadHorario(){
$('.bloque-clase').remove();
clasesObj = [];
id_obj = 0;
//carga horarios y crea bloques
$.ajax({
url: './action/horariogrupo_select.php',
type: 'POST',
dataType: 'json',
async:false,
data: { id: $('#filter_grupo').val()},
success: function(result) {
if(result["error"]!= "" && result["error"] !== undefined){
console.log("Ocurrió un error de load");
$("#errorBox").collapse('show');
$("#errorBox_text").html(result["error"]);
$('#messageBox')[0].scrollIntoView({ block: "end" });
}else{
var i, j;
for(i = 0; i< result["horario"].length; i++){
var salon_nombre = "";
var submateriaArr = [];
var sinSalon_sub = false;
var sinProfSubmateria = [];
if(result["horario"][i]["submaterias"].length > 0){
for(j = 0; j < result["horario"][i]["submaterias"].length; j++){
var submateria = {
submateria: result["horario"][i]["submaterias"][j]["submateria"],
submateria_nombre: result["horario"][i]["submaterias"][j]["submateria_nombre"],
fecha_inicial: result["horario"][i]["submaterias"][j]["fecha_inicial"],
fecha_final: result["horario"][i]["submaterias"][j]["fecha_final"],
/*salon: result["horario"][i]["submaterias"][j]["salon"],
salon_nombre: result["horario"][i]["submaterias"][j]["salon_nombre"],
salon_nombre_completo: result["horario"][i]["submaterias"][j]["salon_nombre_completo"]*/
activa: result["horario"][i]["submaterias"][j]["activa"],
}
sinProfSubmateria[submateria.submateria] = false;
/*if(result["horario"][i]["submaterias"][j]["salon"] == ""){
sinSalon_sub = true;
}else{
salon_nombre+= submateria.salon_nombre+", ";
}*/
if(submateria.submateria != "" && submateria != 0)
submateriaArr.push(submateria);
};
/*if(salon_nombre.length > 2)
salon_nombre = salon_nombre.substring(0, salon_nombre.length-2);*/
}
var profesorArr = [];
for(j = 0; j < result["horario"][i]["profesores"].length; j++){
var profesor = {
profesor: result["horario"][i]["profesores"][j]["profesor"],
profesor_nombre: result["horario"][i]["profesores"][j]["profesor_nombre"],
submateria: result["horario"][i]["profesores"][j]["submateria"],
salon: result["horario"][i]["profesores"][j]["salon"],
salon_nombre: result["horario"][i]["profesores"][j]["salon_nombre"],
salon_nombre_completo: result["horario"][i]["profesores"][j]["salon_nombre_completo"]
}
if(result["horario"][i]["profesores"][j]["salon"] != ""){
salon_nombre+= profesor.salon_nombre+", ";
}
profesorArr.push(profesor);
sinProfSubmateria[profesor.submateria] = true;
}
if(salon_nombre == ""){
sinSalon_sub = true;
}
if(salon_nombre.length > 2)
salon_nombre = salon_nombre.substring(0, salon_nombre.length-2);
var vinculadasArr = [];
for(j = 0; j < result["horario"][i]["vinculada"].length; j++){
var vinculo = {
id_db: result["horario"][i]["vinculada"][j]["id_db"],
grupo: result["horario"][i]["vinculada"][j]["id_gpo"],
//grupo_nombre: result["horario"][i]["vinculada"][j]["grupo_vinculo_nombre"],
materia: result["horario"][i]["vinculada"][j]["id_mat"],
materia_nombre: result["horario"][i]["vinculada"][j]["nombre"],
}
vinculadasArr.push(vinculo);
};
var clase = {
id_obj: id_obj,
dia: parseInt(result["horario"][i]["dia"]),
hora: result["horario"][i]["hora"],
duracion: parseInt(result["horario"][i]["duracion"]),
materia: parseInt(result["horario"][i]["materia"]),
materia_nombre: result["horario"][i]["materia_nombre"],
tipo: parseInt(result["horario"][i]["tipo"]),
salon: parseInt(result["horario"][i]["salon"]),
salon_nombre: result["horario"][i]["salon_nombre"],
salon_nombre_completo: result["horario"][i]["salon_nombre_completo"],
fecha_inicial: result["horario"][i]["fecha_inicial"],
fecha_final: result["horario"][i]["fecha_final"],
periodo_completo: result["horario"][i]["periodo_completo"],
submaterias: submateriaArr,
profesores: profesorArr,
colision: []
};
if(clase.tipo == 0){
salon_nombre = clase.salon_nombre;
if(clase.salon == 0 || clase.salon == "" || clase.salon == null || isNaN(clase.salon) || clase.salon == undefined){
salon_nombre = "-Pendiente-";
}
}
clasesObj.push(clase);
creaHorarioHTML(id_obj, getX(clase.dia), getY(clase.hora), getAlto(clase.duracion) , clase.materia_nombre, salon_nombre, clase.profesores, clase.periodo_completo, clase.fecha_inicial, clase.fecha_final, clase.hora);
id_obj++;
}//fin for
//Checa colisiones
for(var i=0; i< clasesObj.length; i++){
var colision = colisionHorario(i, getX(clasesObj[i].dia), getY(clasesObj[i].hora), getAlto(clasesObj[i].duracion));
clasesObj[i].colision = colision.slice();
cambiaAncho(i, colision);
}
if(!tieneElectivas()){//si no hay, oculta electivasBlock
$("#electivasBlock").addClass("d-none");
}
}
},
error: function(jqXHR, textStatus, errorThrown ){
$("#errorBox").collapse('show');
$("#errorBox_text").html("Error al cargar horario.
"+errorThrown);
$('#messageBox')[0].scrollIntoView({ block: "end" });
}
});//ajax
}
function creaHorarioHTML(id, posX, posY, alto, texto, salon, profArr, completo, fini, ffin, hora){//crea bloque HTML
var incompletoClass = "";
var profHTML = "";
var fechaHTML = "";
for(i=0; i< profArr.length; i++){
profHTML += ' '+profArr[i].profesor_nombre+'
';
}
if(parseInt(completo) != 1){//si on está completo pone fechas
fechaHTML = '
'+fini+' a '+ffin+'';
incompletoClass = "incompleto";
}
var nuevoHorario = '