Exemple #1
0
 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);
     }
 }
Exemple #2
0
        /// <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);
        }