/*
* Carga calendario sin permitir edicion
*/
$(document).ready(function(){
loadHorario();
timer(_reloadTime);
$('#modal_ver').on('hide.bs.modal', function (event) {//al cerrar verifica si se tiene que recargar
if(_reloadOnClose){
loadCalendario();
_reloadOnClose = false;
timer(_reloadTime);
}
});
$(".date-picker" ).datepicker(datepickerOptions);
$(".date-picker" ).datepicker( $.datepicker.regional[ "es" ] );
$(".date-picker").blur(function(){
var fechaObj = fechaObjeto($(this).val());
if( fechaObj !== false ){
if(Date.parse(fechaObj) < Date.parse(fechaObjeto(_periodo_fecha_inicial))){
$(this).val(_periodo_fecha_inicial);
}else if(Date.parse(fechaObj) > Date.parse(fechaObjeto(_periodo_fecha_final))){
$(this).val(_periodo_fecha_final);
}
}
});
});
function loadHorario(){
$('.bloque-clase').remove();
clasesObj = [];
id_obj = 0;
//carga horarios y crea bloques
$.ajax({
url: './action/horariogrupo_select.php',
type: 'POST',
dataType: 'json',
data: { id: $('#filter_grupo').val(), puesto:false, editable: false},
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"]*/
}
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"],
}
profesorArr.push(profesor);
sinProfSubmateria[profesor.submateria] = true;
}
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"]),
dia_orig: parseInt(result["horario"][i]["dia"]),
hora: result["horario"][i]["hora"],
hora_orig: result["horario"][i]["hora"],
duracion: parseInt(result["horario"][i]["duracion"]),
materia: parseInt(result["horario"][i]["materia"]),
materia_orig: 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,
vinculos: vinculadasArr,
color: result["horario"][i]["color"],
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.color, clase.materia_nombre, salon_nombre, clase.profesores.length, clase.periodo_completo, vinculadasArr.length, clase.fecha_inicial, clase.fecha_final);
if(result["horario"][i]["alerta"]){
if(clase.tipo == 0){
if(clase.profesores.length == 0 || clase.salon == 0 || clase.salon == "" || clase.salon === null || isNaN(clase.salon) || clase.salon === undefined){
$("#bloque_"+id_obj+" .alerta").removeClass("d-none");
}
}else{
if(sinSalon_sub)
$("#bloque_"+id_obj+" .alerta").removeClass("d-none");
if(clase.profesores.length == 0){
$("#bloque_"+id_obj+" .alerta").removeClass("d-none");
}
/*
var prof_sub = true;
sinProfSubmateria.forEach(function (arrayItem) {
prof_sub = prof_sub && arrayItem;
});
if(!prof_sub)
$("#bloque_"+id_obj+" .alerta").removeClass("d-none");*/
}
}
id_obj++;
//Actualiza horas asignadas
actualizaHoras(clase.materia);
}//fin for
actualizaLista();
//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);
}
}
_editable = true;
},
error: function(jqXHR, textStatus, errorThrown ){
$("#errorBox").collapse('show');
$("#errorBox_text").html("Error al cargar horario.
"+errorThrown);
$('#messageBox')[0].scrollIntoView({ block: "end" });
_editable = true;
}
});//ajax
}
function creaHorarioHTML(id, posX, posY, alto, color, texto, salon, numProf, completo, link, fini, ffin){//crea bloque HTML
var completoClass = "";
var linked = "";
var fechaHTML = "";
if(parseInt(completo) == 1){ completoClass = " d-none"; }//si está completo el horario no pone signo +
else{ fechaHTML = '
'+fini+' a '+ffin+''; }
if(parseInt(link) == 0){linked = " d-none"; }
var nuevoHorario = '