public void CarregarCalendarioSemanal(List <CalendarioBO.EventTime> eventos, CalendarioBO.OptionsCalendar option, bool inicializar = true, int slotMin = -1, int slotMax = -1) { if (inicializar) { ScriptManager.RegisterStartupScript(Page, typeof(Page), "Script" + divCalendar.ClientID, "loadCalendar(" + CalendarioBO.GetJSonConfigEvents(option) + "," + CalendarioBO.ConvertEventsToJson(eventos) + "," + option.onClickEvent.ToString() + "," + slotMin + "," + slotMax + ");", true); } else { ScriptManager.RegisterStartupScript(Page, typeof(Page), "ScriptA" + divCalendar.ClientID, "reLoadCalendar(" + CalendarioBO.GetJSonConfigEvents(option) + "," + CalendarioBO.ConvertEventsToJson(eventos) + ");", true); } }
/// <summary> /// Carrega o controle de calendário. /// </summary> /// <param name="inicializar"></param> protected void CarregarCalendario(bool inicializar = true) { List <CalendarioBO.EventTime> lstEventos = new List <CalendarioBO.EventTime>(); Func <byte, string> disciplinaNaoInformada = delegate(byte trh_tipo) { return(trh_tipo == (byte)ACA_TurnoHorarioTipo.AulaNormal || trh_tipo == (byte)ACA_TurnoHorarioTipo.AulaForaPeriodo ? "<span class=\"sem-info\">" + CustomResource.GetGlobalResourceObject("Turma", "Turma.QuadroHorarios.DisciplinaNaoInformada") + "</span>" : string.Empty); }; lstEventos = VS_lstTurmaHorario.Select(p => new CalendarioBO.EventTime { evento = new CalendarioBO.Event { id = p.trn_id.ToString() + ";" + p.trh_id.ToString() + ";" + p.trh_tipo.ToString() + ";" + p.trh_diaSemana.ToString() + ";" + (p.tud_id > 0 ? p.tud_id : -1).ToString() + ";" + ((p.trh_tipo == (byte)ACA_TurnoHorarioTipo.AulaNormal || p.trh_tipo == (byte)ACA_TurnoHorarioTipo.AulaForaPeriodo) ? "1" : "0") , title = "<span class=\"quadro-title\">" + (p.tud_id > 0 && !string.IsNullOrEmpty(p.tud_nome) ? p.tud_nome + "</span>" : disciplinaNaoInformada(p.trh_tipo)) + (p.trh_tipo == (byte)ACA_TurnoHorarioTipo.IntervaloEntreAulas || p.trh_tipo == (byte)ACA_TurnoHorarioTipo.IntervaloEntrePeriodos ? "" : "<br/>") + "<span class=\"quadro-tipo\">" + GestaoEscolarUtilBO.GetEnumDescription((ACA_TurnoHorarioTipo)Enum.ToObject(typeof(ACA_TurnoHorarioTipo), p.trh_tipo)) + "</span>" , allDay = false , url = "" , className = getClassNameTipoHorario((ACA_TurnoHorarioTipo)Enum.ToObject(typeof(ACA_TurnoHorarioTipo), p.trh_tipo)) , editable = false , startEditable = false , durationEditable = false , overlap = false , color = "" , backgroundColor = "" , borderColor = "" , textColor = "" } , diaSemana = (eDiasSemana)Enum.ToObject(typeof(eDiasSemana), p.trh_diaSemana) , inicio = p.trh_horaInicio , fim = p.trh_horaFim } ).ToList(); // Encontro os máximos e mínimos para garantir que os horários cadastrados // fora do período do turno também sejam exibidos. TimeSpan minTime = new TimeSpan(23, 59, 00); TimeSpan maxTime = new TimeSpan(00, 00, 00); if (VS_turno.trn_horaInicio != new TimeSpan()) { minTime = VS_turno.trn_horaInicio; } if (VS_turno.trn_horaFim != new TimeSpan()) { maxTime = VS_turno.trn_horaFim; } if (VS_lstTurmaHorario.Count > 0) { TimeSpan minTimeHorario = VS_lstTurmaHorario.Min(p => p.trh_horaInicio); TimeSpan maxTimeHorario = VS_lstTurmaHorario.Max(p => p.trh_horaFim); if (minTimeHorario < minTime) { minTime = minTimeHorario; } if (maxTimeHorario > maxTime) { maxTime = maxTimeHorario; } } if (minTime == new TimeSpan(23, 59, 00) || maxTime == new TimeSpan(00, 00, 00)) { if (minTime != new TimeSpan(23, 59, 00)) { maxTime = minTime.Add(TimeSpan.FromMinutes(10)); } else if (maxTime != new TimeSpan(00, 00, 00)) { minTime = maxTime.Subtract(TimeSpan.FromMinutes(10)); } else { minTime = new TimeSpan(00, 00, 00); maxTime = new TimeSpan(23, 59, 00); } } CalendarioBO.OptionsCalendar option = new CalendarioBO.OptionsCalendar { header = "" , defaultView = CalendarioBO.optionView.agendaWeek , allDaySlot = false , slotEventOverlap = false , selectable = false , columnFormat = "dddd" , timeFormat = "HH:mm" , slotDuration = new TimeSpan(00, 10, 00) , minTime = minTime , maxTime = maxTime , scrollTime = minTime , aspectRatio = 1.8F , lang = "pt-br" , defaultDate = new DateTime(2000, 10, 01) , calendarClass = "calendar" , onClickEvent = "clickHorario" }; string strMinTime = string.Format("{0},{1}", minTime.Hours, minTime.Minutes); string strMaxTime = string.Format("{0},{1}", maxTime.Hours, maxTime.Minutes); if (string.IsNullOrEmpty(hdnMinTime.Value) || strMinTime != hdnMinTime.Value || string.IsNullOrEmpty(hdnMaxTime.Value) || strMaxTime != hdnMaxTime.Value) { inicializar = true; hdnMinTime.Value = strMinTime; hdnMaxTime.Value = strMaxTime; } int slotMin = -1; if (VS_turno.trn_horaInicio != new TimeSpan()) { slotMin = (int)Math.Ceiling((double)((VS_turno.trn_horaInicio.Hours * 60 + VS_turno.trn_horaInicio.Minutes) - (minTime.Hours * 60 + minTime.Minutes)) / 10) + 1; } int slotMax = -1; if (VS_turno.trn_horaFim != new TimeSpan()) { slotMax = (int)Math.Ceiling((double)((VS_turno.trn_horaFim.Hours * 60 + VS_turno.trn_horaFim.Minutes) - (minTime.Hours * 60 + minTime.Minutes)) / 10); } UCCalendario.CarregarCalendarioSemanal(lstEventos, option, inicializar, slotMin, slotMax); }