Exemplo n.º 1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Session["Opcoes"] = 0;
            if (Session["Calendario"] == null)
            {
                Response.Redirect("../Default/SelecionarCalendario.aspx");
            }
            listaRequisicoes = new List <DecoratorRequisicoes>();
            if (Request.QueryString["AulaId"] != String.Empty)
            {
                try
                {
                    AulaBO controleAulas = new AulaBO();
                    aulaAtual = controleAulas.GetAulaById(new Guid(Request.QueryString["AulaId"]));

                    Session.Add("aulaAtual", aulaAtual);
                }
                catch (Exception)
                {
                    Response.Redirect("../Docentes/SelecionaTurma.aspx");
                }
            }
            PopulaDDLCategoriaRecursos();
            GetRequisicoes();
            listaRequisicoes  = Session["listaRequisicoes"] as List <DecoratorRequisicoes>;
            Session["Opcoes"] = listaRequisicoes.Count;
        }
        calendarioAtual  = (Calendario)Session["Calendario"];
        listaRequisicoes = Session["listaRequisicoes"] as List <DecoratorRequisicoes>;
        aulaAtual        = Session["aulaAtual"] as Aula;
        limparSessao     = false;
    }
Exemplo n.º 2
0
    protected void btnDistribuirHorarios_Click(object sender, EventArgs e)
    {
        Calendario calendario = (Calendario)Session["Calendario"];
        AulaBO     aulaBO     = new AulaBO();

        aulaBO.CriarAulas(calendario);

        //AlocacaoBO alocacaoBO = new AlocacaoBO();
        //alocacaoBO.preencheCalendario(calendario);
    }
Exemplo n.º 3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                if (Session["AppState"] != null && ((AppState)Session["AppState"]) == AppState.Admin)
                {
                    Server.Transfer("~/Default/Erro.aspx?Erro=O sistema está bloqueado.");
                }
                else
                {
                    if (Session["Calendario"] == null)
                    {
                        Response.Redirect("../Default/SelecionarCalendario.aspx");
                    }
                    Guid idturma;
                    if (Request.QueryString["GUID"] != null)
                    {
                        idturma = new Guid(Request.QueryString["GUID"]);

                        Session["TurmaId"] = idturma;
                        cal = (Calendario)Session["Calendario"];

                        CategoriaAtividadeBO cateBO = new CategoriaAtividadeBO();
                        listaAtividades = cateBO.GetCategoriaAtividade();
                        AulaBO      AulaBO     = new AulaBO();
                        List <Aula> listaAulas = AulaBO.GetAulas(idturma);

                        foreach (Aula a in listaAulas)
                        {
                            categorias.Add(a.CategoriaAtividade.Id);
                            argb.Add(a.CategoriaAtividade.Cor);
                        }

                        dgAulas.DataSource = listaAulas;
                        dgAulas.DataBind();
                    }
                }
            }
        }
        catch (DataAccessException ex)
        {
            Response.Redirect("~/Default/Erro.aspx?Erro=" + ex.Message);
        }
    }
Exemplo n.º 4
0
    protected void Button1_Click(object sender, EventArgs e)
    {
        AulaBO aulabo = new AulaBO();
        Guid   g      = new Guid("63529733-08BB-466C-BDE5-1F822BDC358C");
        //Aula aula = aulabo.GetAulaById(new Guid("63529733-08BB-466C-BDE5-1F822BDC358C"));
        Aula            aula   = null;
        Evento          evento = null;
        AlocacaoDAO     aloc   = new AlocacaoDAO();
        RecursosBO      rec    = new RecursosBO();
        List <Alocacao> lista  = new List <Alocacao>();
        DateTime        data   = new DateTime(2007, 08, 01);
        string          hora   = "np";
        Alocacao        a      = new Alocacao(rec.GetRecursoById(g), data, hora, aula, evento);

        aloc.UpdateAlocacao(a);

        //lista = aloc.GetRecursosAlocados(data, hora);
    }
Exemplo n.º 5
0
    protected void dgTurmas_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
        {
            List <Turma> listaTurmas = null;
            if (Session["Turmas"] != null)
            {
                listaTurmas = (List <Turma>)Session["Turmas"];
            }

            Label lblAulaId = (Label)e.Item.FindControl("lblAulaId");

            DateTime data    = Convert.ToDateTime(Session["Data"]);
            string   horario = (string)Session["Horario"];

            AulaBO aulaBO = new AulaBO();
            Aula   aula   = aulaBO.GetAula(listaTurmas[e.Item.DataSetIndex].Id, data, horario);

            lblAulaId.Text = aula.Id.ToString();
        }
    }
Exemplo n.º 6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        cal = null;
        Guid idturma    = new Guid();
        bool mostraAval = true;

        if (Request.QueryString["id"] != null)
        {
            listCData = cdataBo.GetCategoriaDatas();
            try
            {
                idturma = new Guid(Request.QueryString["id"]);
                int           ano      = int.Parse(Request.QueryString["ano"]);
                int           semestre = int.Parse(Request.QueryString["sem"]);
                CalendariosBO calBO    = new CalendariosBO();
                cal = calBO.GetCalendarioByAnoSemestre(ano, semestre);
                string strProx = Request.QueryString["aval"];
                if (string.IsNullOrEmpty(strProx))
                {
                    mostraAval = false;
                }
            }
            catch (FormatException)
            {
                Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
            }

            Session["TurmaId"] = idturma;
            CategoriaAtividadeBO      cateBO          = new CategoriaAtividadeBO();
            List <CategoriaAtividade> listaAtividades = cateBO.GetCategoriaAtividade();
            AulaBO      AulaBO     = new AulaBO();
            List <Aula> listaAulas = null;
            try
            {
                listaAulas = AulaBO.GetAulas(idturma);
            }
            catch (Exception)
            {
                Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
            }
            Disciplina          d   = listaAulas[0].TurmaId.Disciplina;
            CategoriaDisciplina cat = d.Categoria;

            string sala   = Regex.Replace(listaAulas[0].TurmaId.Sala, "32/A", "32");
            string titulo = d.Cod + "-" + d.Cred + " " + d.Nome + " (" + listaAulas[0].TurmaId.Numero + ") - " + sala;//" "+facin;
            lblTitulo.Text = titulo;

            string shortTitle = "";
            foreach (string part in d.Nome.Split())
            {
                if (part.Length == 1 && part[0] != 'I')
                {
                    continue;
                }
                if (part == "de" || part == "do" || part == "da" || part == "em")
                {
                    continue;
                }
                if (part == "I" || part == "II" || part == "III" || part == "IV" || part == "V" ||
                    part == "A" || part == "B" || part == "C")
                {
                    shortTitle += part;
                }
                else
                {
                    shortTitle += char.ToUpper(part[0]);
                }
            }
            string st = shortTitle;

            string output = "BEGIN:VCALENDAR\n";
            output += "PRODID:-//SARC//" + d.Cod + "-" + d.Cred + " " + d.Nome + "//PT\n";
            output += "VERSION:2.0\n";
            output += "CALSCALE:GREGORIAN\n";
            output += "METHOD:PUBLISH\n";
            output += "X-WR-CALNAME:" + st + "\n";
            output += "X-WR-TIMEZONE:America/Sao_Paulo\n";
            output += "X-WR-CALDESC:" + st + "\n";

            DateTime hoje = DateTime.Now;

            DataTable tabela = new DataTable();

            AlocacaoBO alocBO = new AlocacaoBO();

            foreach (DataGridColumn coluna in dgAulas.Columns)
            {
                tabela.Columns.Add(coluna.HeaderText);
            }

            int     totalAulas = 1;
            DataRow dr;
            bool    notset = true;
            foreach (Aula aula in listaAulas)
            {
                string hi = Horarios.ParseToDateTime(aula.Hora).TimeOfDay.ToString().Substring(0, 5);
                string hf = Horarios.ParseToDateTime(aula.Hora).TimeOfDay.Add(TimeSpan.FromMinutes(90)).ToString().Substring(0, 5);
                dr              = tabela.NewRow();
                dr["#"]         = totalAulas++;
                dr["Dia"]       = DataHelper.GetDia(aula.Data.DayOfWeek);
                dr["Data"]      = aula.Data.Date.ToShortDateString();
                dr["Hora"]      = aula.Hora + "<br>" + hi + " - " + hf;
                dr["Descrição"] = aula.DescricaoAtividade;
                dr["Atividade"] = aula.CategoriaAtividade.Descricao;
                dr["Prox"]      = "";

                DateTime startDt = aula.Data.Add(Horarios.ParseToDateTime(aula.Hora).TimeOfDay).AddHours(3);
                DateTime endDt   = startDt.AddMinutes(90);

                List <BusinessData.Entities.Recurso> recAlocados = alocBO.GetRecursoAlocadoByAula(aula.Data, aula.Hora, (Guid)aula.Id);
                string aux     = "";
                string recHoje = "";
                shortTitle = st;
                foreach (var rec in recAlocados)
                {
                    if (aux != String.Empty)
                    {
                        aux += "<br/>" + rec.Descricao;
                    }
                    else
                    {
                        aux = rec.Descricao;
                        //Debug.WriteLine("Tipo recurso:" + rec.Tipo);
                        if (rec.Tipo == 'L' || rec.Tipo == 'A' || rec.Tipo == 'D')
                        {
                            recHoje     = rec.Descricao;
                            shortTitle += " " + recHoje.Split().Last();
                            break;
                        }
                    }
                }
                dr["Recursos"]  = aux;
                dr["CorDaData"] = aula.CategoriaAtividade.Cor.ToArgb();

                if (aula.Data.Date >= cal.InicioG2)
                {
                    dr["#"] = "";
                    totalAulas--;
                }

                Data data      = VerificaData(aula.Data.Date);
                bool diaLetivo = true;
                if (data != null)
                {
                    foreach (CategoriaData c in listCData)
                    {
                        if (c.Id == data.Categoria.Id)
                        {
                            if (!c.DiaLetivo)
                            {
                                dr["Descrição"] = c.Descricao + (aula.DescricaoAtividade != "Feriado" ? " (era " + aula.DescricaoAtividade + ")" : "");
                                dr["#"]         = "";
                                totalAulas--;
                                diaLetivo = false;
                                break;
                            }
                        }
                    }
                }
                //Debug.WriteLine("Cor aula: " + aula.CategoriaAtividade.Cor.ToString());
                tabela.Rows.Add(dr);

                if (recHoje == string.Empty)
                {
                    recHoje     = sala;
                    shortTitle += " " + recHoje;
                }

                if (diaLetivo)
                {
                    if (mostraAval && aula.CategoriaAtividade.Descricao != "Prova" && aula.CategoriaAtividade.Descricao != "Prova de Substituição" &&
                        aula.CategoriaAtividade.Descricao != "Prova de G2" && aula.CategoriaAtividade.Descricao != "Trabalho")
                    {
                        continue;
                    }
                    output += "BEGIN:VEVENT\n";
                    output += "DESCRIPTION: " + aula.DescricaoAtividade + "\n";
                    output += "SUMMARY: " + shortTitle + "\n";
                    output += string.Format("DTSTAMP:{0:yyyyMMddTHHmmssZ}\n", DateTime.Now);
//                    output += "DTSTART:"+startDt.Year+startDt.Month+startDt.Day+startDt.Hour+startDt.Minute+startDt.Second+"\n";
                    //output += "DTSTART:" + startDt.ToString() + "\n";
                    output += string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}\n", startDt);
                    output += string.Format("DTEND:{0:yyyyMMddTHHmmssZ}\n", endDt);
                    output += "LOCATION:" + recHoje + "\n";
                    output += "SEQUENCE:0\n";
                    output += "TRANSP:OPAQUE\n";
                    SHA256 sha      = SHA256.Create();
                    byte[] uidarray = sha.ComputeHash(Encoding.Unicode.GetBytes(aula.DescricaoAtividade + startDt.ToString() + shortTitle + endDt.ToString()));
                    string uid      = Convert.ToBase64String(uidarray);
                    output += "UID:" + uid + "\n";
                    output += "END:VEVENT\n";
                }
            }
            dgAulas.DataSource     = tabela;
            dgAulas.ItemDataBound += new DataGridItemEventHandler(dgAux_ItemDataBound);
            dgAulas.DataBind();

            output += "END:VCALENDAR\n";
            Response.AppendHeader("Content-Disposition", "attachment; filename=" + st + ".ics");
            Response.ContentType = "text/calendar";
            Response.Write(output);

            Response.End();
        }
    }
Exemplo n.º 7
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            aulaBo = new AulaBO();
            reqBo  = new RequisicoesBO();
            try
            {
                cal = (Calendario)Session["Calendario"];

                // Obtém as requisições do semestre (todas)
                IList <Requisicao> listaReq = reqBo.GetRequisicoesPorCalendario(cal);

                // Cria um conjunto para armazenar os números das turmas com pedidos de recursos
                reqTurmas = new HashSet <Guid>();
                foreach (Requisicao req in listaReq)
                {
                    reqTurmas.Add(req.Aula.TurmaId.Id);
                }

                TurmaBO      turma      = new TurmaBO();
                List <Turma> listaTurma = turma.GetTurmas(cal);
                listaTurma.Sort();
                if (listaTurma.Count == 0)
                {
                    lblStatus.Text    = "Nenhuma turma cadastrada.";
                    lblStatus.Visible = true;
                }
                else
                {
                    // Turmas sem solicitações de recursos, não teóricas e não de pós
                    List <TurmaVerifica> turmasRecursos = new List <TurmaVerifica>();
                    // Turmas restantes (todas as outras)
                    List <TurmaVerifica> turmasRestante = new List <TurmaVerifica>();
                    // Total de turmas restantes
                    int totalTurmasRestante = 0;
                    // Total de turmas que deveriam solicitar recursos
                    int totalTurmasRecursos = 0;
                    // Total de turmas com falta de preenchimento em algum aspecto
                    int totalRestanteFalta = 0;
                    // Total de turmas sem solicitação de recursos
                    int totalRecursosFalta = 0;
                    foreach (Turma t in listaTurma)
                    {
                        TurmaVerifica nova = new TurmaVerifica
                        {
                            Id         = t.Id,
                            Numero     = t.Numero,
                            Calendario = t.Calendario,
                            Disciplina = t.Disciplina,
                            DataHora   = t.DataHora,
                            Professor  = t.Professor,
                            Curso      = t.Curso
                        };
                        // "teorica" representa turmas teóricas ou de algum pós
                        bool teorica = nova.Disciplina.Categoria.Descricao.Contains("Teórica") ||
                                       nova.Disciplina.Categoria.Descricao.Contains("PPG") ||
                                       nova.Curso.Nome.Contains("PPG") ||
                                       nova.Disciplina.Categoria.Descricao == "AGES";

                        // Se a turma não é "teórica", ela deveria solicitar recursos
                        if (!teorica)
                        {
                            totalTurmasRecursos++;
                        }
                        else
                        {
                            // Caso contrário, conta nas demais
                            totalTurmasRestante++;
                        }

                        // Verifica o preenchimento dos dados, retorna true se
                        // a turma está incompleta
                        if (verificaTurma(ref nova, t.Disciplina.G2))
                        {
                            // Se a turma deveria solicitar recursos e não o fez,
                            // conta mais uma e adiciona na lista de pendentes
                            if (nova.RecursosOK == "NÃO" && !teorica)
                            {
                                turmasRecursos.Add(nova);
                                totalRecursosFalta++;
                            }
                            // Se a turma não precisa solicitar recursos, conta
                            // nas restantes e adiciona na lista
                            if (teorica)
                            {
                                turmasRestante.Add(nova);
                                totalRestanteFalta++;
                            }
                        }
                    }

                    // Calcula os percentuais
                    double percRecursos = totalRecursosFalta / (double)totalTurmasRecursos;
                    lblPercentualRecursos.Text = String.Format("Turmas sem solicitações de recursos (excluindo teóricas e pós): {1} de {2} ({0:P})", percRecursos, totalRecursosFalta, totalTurmasRecursos);

                    double percPreench = totalRestanteFalta / (double)totalTurmasRestante;
                    lblPercentualGeral.Text = String.Format("Demais turmas com pendências: {1} de {2} ({0:P})", percPreench, totalRestanteFalta, totalTurmasRestante);

                    grvListaTurmas.RowDataBound += grvListaTurmas_RowDataBound;
                    grvListaTurmas.DataSource    = turmasRecursos;
                    grvListaTurmas.DataBind();

                    grvListaTurmasGeral.RowDataBound += grvListaTurmasGeral_RowDataBound;
                    grvListaTurmasGeral.DataSource    = turmasRestante;
                    grvListaTurmasGeral.DataBind();
                }
            }
            catch (BusinessData.DataAccess.DataAccessException ex)
            {
                Response.Redirect("~/Default/Erro.aspx?Erro=" + ex.Message);
            }
            catch (Exception ex)
            {
                Response.Redirect("~/Default/Erro.aspx?Erro=" + ex.Message);
            }
        }
    }
Exemplo n.º 8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["DownHtml"] == null)
        {
            Server.Transfer("~/Docentes/SelecionaTurma.aspx");
            return;
        }

        if (Session["TurmaId"] == null)
        {
            // FIXME: nem sempre o usuário estava na ListaEventos.
            Server.Transfer("~/Docentes/ListaEventos.aspx");
            return;
        }

        dgAulas.ItemDataBound += new DataGridItemEventHandler(dgAux_ItemDataBound);
        dgAulas.DataSource     = Session["DownHtml"] as DataTable;
        dgAulas.DataBind();

        MemoryStream   ms       = new MemoryStream();
        StreamWriter   sw       = new StreamWriter(ms, Encoding.UTF8);
        HtmlTextWriter txtSaida = new HtmlTextWriter(sw);

        Guid   idturma = (Guid)Session["TurmaId"];
        string titulo  = "***";

        try
        {
            AulaBO      AulaBO     = new AulaBO();
            List <Aula> listaAulas = null;
            try
            {
                listaAulas = AulaBO.GetAulas(idturma);
            }
            catch (Exception)
            {
                Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
                return;
            }
            Turma      turma      = listaAulas[0].TurmaId;
            Disciplina disciplina = turma.Disciplina;
            titulo = disciplina.Cod + "-" + disciplina.Cred + " " + disciplina.Nome + " (" + turma.Numero + ") - " + Regex.Replace(turma.Sala, "32/A", "32");

            txtSaida.Write("<html>\n");
            txtSaida.Write("<head>\n</head>\n");
            txtSaida.Write("<body>\n");
            txtSaida.Write("<H1>\n" + titulo + "</H1>\n");
            dgAulas.RenderControl(txtSaida);
            txtSaida.Write("\n</body>\n</html>");
        }
        catch (System.IO.IOException)
        {
            Response.Redirect("~/Default/Erro.aspx");
            return;
        }
        finally
        {
            sw.Dispose();
        }

        Response.AddHeader("Content-disposition",
                           "attachment; filename=cronograma.html");
        Response.ContentType     = "text/html";
        Response.ContentEncoding = Encoding.UTF8;

        try
        {
            Response.BinaryWrite(ms.ToArray());
            Response.End();
        }
        finally
        {
            ms.Close();
        }
    }
Exemplo n.º 9
0
    protected void dgTurmas_ItemCommand(object sender, DataGridCommandEventArgs e)
    {
        if (e.CommandName == "Transferir")
        {
            if (rblRecursos.SelectedValue != "")
            {
                DateTime data     = Convert.ToDateTime(Session["Data"]);
                Guid     eventoId = new Guid(Session["EventoId"].ToString());
                string   horario  = (string)Session["Horario"];

                Guid         recId       = new Guid(rblRecursos.SelectedValue);
                List <Troca> listaTrocas = trocaBO.GetNaoVisualizadasByEvento(eventoId, data, horario);

                bool controle = false;
                //verifica se o recurso n esta envolvido em alguma troca
                if (listaTrocas.Count != 0)
                {
                    foreach (Troca t in listaTrocas)
                    {
                        if (t.AlocacaoAtual.Recurso.Id == recId || t.AlocacaoDesejada.Recurso.Id == recId)
                        {
                            controle = true;
                        }
                    }
                }
                if (!controle)
                {
                    Alocacao aloc = alocBO.GetAlocacao(recId, data, horario);

                    Label lblAulaId  = (Label)e.Item.FindControl("lblAulaId");
                    Label lblTurmaId = (Label)e.Item.FindControl("lblTurmaId");

                    Turma turmaRecebeu = turmaBO.GetTurmaById(new Guid(lblTurmaId.Text));
                    Turma turmaTrans   = null;

                    Guid   eventoTransId = new Guid(Session["EventoId"].ToString());
                    Evento eventoTrans   = eventoBO.GetEventoById(eventoTransId);
                    Evento eventoRec     = null;

                    Transferencia trans = new Transferencia(Guid.NewGuid(), aloc.Recurso, data, horario, turmaRecebeu, turmaTrans, false, eventoRec, eventoTrans);

                    aloc.Horario = horario;

                    AulaBO aulaBO = new AulaBO();
                    aloc.Aula   = aulaBO.GetAulaById(new Guid(lblAulaId.Text));
                    aloc.Evento = null;

                    alocBO.UpdateAlocacao(aloc);

                    transBO.InsereTransferencia(trans);

                    FechaJanela();
                }
                else
                {
                    lblStatus.Text = "Este recurso não pode ser transferido por estar envolvido numa troca.";
                    ddlResponsavel.SelectedIndex = 0;
                    dgTurmas.Visible             = false;
                }
            }
            else
            {
                lblStatus.Text = "Selecione um recurso para efetuar a transferência";
            }
        }
    }
Exemplo n.º 10
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string cs = ConfigurationManager.ConnectionStrings["SARCFACINcs"].ConnectionString;

        if (cs.Contains("SARCDEV"))
        {
            semRecursos = false;
        }
        try
        {
            if (!IsPostBack)
            {
                if (Session["AppState"] != null && ((AppState)Session["AppState"]) == AppState.Admin)
                {
                    Server.Transfer("~/Default/Erro.aspx?Erro=O sistema está bloqueado.");
                }
                //else if ((AppState)Session["AppState"] != AppState.Requisicoes)
                //    Server.Transfer("~/Default/Erro.aspx?Erro=Os recursos já foram distribuídos.");
                else
                {
                    if (Session["Calendario"] == null)
                    {
                        Response.Redirect("../Default/SelecionarCalendario.aspx");
                    }
                    Guid idturma = new Guid();
                    if (Request.QueryString["GUID"] != null)
                    {
                        try
                        {
                            idturma = new Guid(Request.QueryString["GUID"]);
                        }
                        catch (FormatException)
                        {
                            Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
                        }
                        Session["TurmaId"] = idturma;
                        cal = (Calendario)Session["Calendario"];

                        CategoriaAtividadeBO cateBO = new CategoriaAtividadeBO();
                        listaAtividades = cateBO.GetCategoriaAtividade();
                        AulaBO      AulaBO     = new AulaBO();
                        List <Aula> listaAulas = null;
                        try
                        {
                            listaAulas = AulaBO.GetAulas(idturma);
                        }
                        catch (Exception)
                        {
                            Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
                        }

                        foreach (Aula a in listaAulas)
                        {
                            categorias.Add(a.CategoriaAtividade.Id);
                            argb.Add(a.CategoriaAtividade.Cor);
                        }

                        Disciplina          disc = listaAulas[0].TurmaId.Disciplina;
                        CategoriaDisciplina cat  = disc.Categoria;
                        //lblTitulo.text += " " + cat.Descricao;

                        // Mega gambiarra master extended++
                        // TODO: retirar assim que possível!
                        if (cat.Descricao.IndexOf("Outras Unidades") != -1)
                        {
                            facin = false;
                        }

                        Disciplina d = listaAulas[0].TurmaId.Disciplina;
                        lblTitulo.Text   = listaAulas[0].TurmaId.Disciplina.NomeCodCred + " - Turma " + listaAulas[0].TurmaId.Numero + " - " + Regex.Replace(listaAulas[0].TurmaId.Sala, "32/A", "32");
                        Session["facin"] = facin;

                        int horasRelogioEsperadas = d.Cred * 15;
                        int durPeriodo            = 45;

                        /*                    if (listaAulas[0].Hora == "JK" || listaAulas[0].Hora == "LM" || listaAulas[0].Hora == "NP"
                        || listaAulas[1].Hora == "JK" || listaAulas[1].Hora == "LM" || listaAulas[1].Hora == "NP"
                        || listaAulas[1].Hora == "JK" || listaAulas[2].Hora == "LM" || listaAulas[2].Hora == "NP")
                        ||                      durPeriodo = 45;*/

                        int  totalAulas    = 0;
                        bool emG2          = false;
                        bool haG2          = false;
                        int  totalFeriados = 0;
                        foreach (Aula a in listaAulas)
                        {
                            categorias.Add(a.CategoriaAtividade.Id);
                            argb.Add(a.CategoriaAtividade.Cor);
                            if (a.Data >= cal.InicioG2)
                            {
                                //if (a.CategoriaAtividade.Descricao == "Prova de G2")
                                //Debug.WriteLine("EM G2");
                                emG2 = true;
                            }
                            if (a.DescricaoAtividade.StartsWith("Feriado") || a.DescricaoAtividade.StartsWith("Suspensão"))
                            {
                                totalFeriados++;
                            }
                            if (a.CategoriaAtividade.Descricao == "Prova de G2")
                            {
                                haG2 = true;
                            }
                            if (!a.DescricaoAtividade.StartsWith("Feriado") && !a.DescricaoAtividade.StartsWith("Suspensão") &&
                                a.CategoriaAtividade.Descricao != "Prova de G2" && !emG2)
                            {
                                totalAulas++;
                            }
                        }
                        // Contando mais uma aula por causa da G2 que pulamos antes
//                        if (haG2)
//                            totalAulas++;
                        int totalEfetivo   = totalAulas * 2 * durPeriodo / 60;
                        int complementares = horasRelogioEsperadas - totalEfetivo;
                        if (complementares < 0)
                        {
                            complementares = 0;
                        }
                        //lblHoras.Text = "Duração do período: " + durPeriodo + " - Horas esperadas: " + horasRelogioEsperadas + " - Horas efetivas: " + totalEfetivo
                        //    + " - <b>Previsão de horas extraclasse: " + (horasRelogioEsperadas - totalEfetivo) + "</B>";

                        //                    int minutosEsperados = horasRelogioEsperadas * 60;
                        int minutosFeriado   = durPeriodo * totalFeriados * 2;
                        int minutosEsperados = durPeriodo * 2 * 18 * d.Cred / 2;
                        minutosFeriado = 0;
                        int horasMinistradas = (minutosEsperados - minutosFeriado) / 60;
                        int extraClasse      = horasRelogioEsperadas - horasMinistradas;
                        Debug.WriteLine("Total aulas: " + totalAulas);
                        Debug.WriteLine("Minutos feriado: " + minutosFeriado);
                        Debug.WriteLine("Minutos esperados: " + minutosEsperados);

                        lblHoras.Text = "- Horas esperadas: " + horasRelogioEsperadas + " - Horas efetivas: " + totalEfetivo
                                        + " - <b>Previsão de horas para TDE: " + complementares + "</B>";

                        dgAulas.DataSource = listaAulas;
                        dgAulas.DataBind();
                    }
                }
            }
        }
        catch (DataAccessException ex)
        {
            Response.Redirect("~/Default/Erro.aspx?Erro=" + ex.Message);
        }
    }
Exemplo n.º 11
0
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                if (Session["AppState"] != null && ((AppState)Session["AppState"]) == AppState.Admin)
                {
                    Server.Transfer("~/Default/Erro.aspx?Erro=O sistema está bloqueado.");
                }
                //else if ((AppState)Session["AppState"] != AppState.Requisicoes)
                //    Server.Transfer("~/Default/Erro.aspx?Erro=Os recursos já foram distribuídos.");
                else
                {
                    if (Session["Calendario"] == null)
                    {
                        Response.Redirect("../Default/SelecionarCalendario.aspx");
                    }
                    Guid idturma = new Guid();
                    if (Request.QueryString["GUID"] != null)
                    {
                        try
                        {
                            idturma = new Guid(Request.QueryString["GUID"]);
                        }
                        catch (FormatException)
                        {
                            Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
                        }
                        Session["TurmaId"] = idturma;
                        cal = (Calendario)Session["Calendario"];

                        CategoriaAtividadeBO cateBO = new CategoriaAtividadeBO();
                        listaAtividades = cateBO.GetCategoriaAtividade();
                        AulaBO      AulaBO     = new AulaBO();
                        List <Aula> listaAulas = null;
                        try
                        {
                            listaAulas = AulaBO.GetAulas(idturma);
                        }
                        catch (Exception)
                        {
                            Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
                        }

                        foreach (Aula a in listaAulas)
                        {
                            categorias.Add(a.CategoriaAtividade.Id);
                            argb.Add(a.CategoriaAtividade.Cor);
                        }

                        Disciplina          disc = listaAulas[0].TurmaId.Disciplina;
                        CategoriaDisciplina cat  = disc.Categoria;
                        //lblTitulo.text += " " + cat.Descricao;

                        // Mega gambiarra master extended++
                        // TODO: retirar assim que possível!
                        if (cat.Descricao.IndexOf("Outras Unidades") != -1)
                        {
                            facin = false;
                        }
                        lblTitulo.Text   = listaAulas[0].TurmaId.Disciplina.Nome + " - Turma " + listaAulas[0].TurmaId.Numero;                      //+ " " + facin;
                        Session["facin"] = facin;

                        dgAulas.DataSource = listaAulas;
                        dgAulas.DataBind();
                    }
                }
            }
        }
        catch (DataAccessException ex)
        {
            Response.Redirect("~/Default/Erro.aspx?Erro=" + ex.Message);
        }
    }
Exemplo n.º 12
0
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (IsPostBack)
            {
                return;
            }

            if (Session["AppState"] != null && ((AppState)Session["AppState"]) == AppState.Admin)
            {
                Server.Transfer("~/Default/Erro.aspx?Erro=O sistema está bloqueado.");
            }
            else if (Session["AppState"] != null && (AppState)Session["AppState"] != AppState.AtivoSemestre)
            {
                Server.Transfer("~/Default/Erro.aspx?Erro=O semestre ainda não foi iniciado.");
            }
            else
            {
                if (Session["Calendario"] == null)
                {
                    Response.Redirect("../Default/SelecionarCalendario.aspx");
                }
                //FIXME: falta um else aqui?
                Guid idturma = new Guid();
                if (Request.QueryString["GUID"] != null)
                {
                    try
                    {
                        idturma = new Guid(Request.QueryString["GUID"]);
                    }
                    catch (FormatException)
                    {
                        Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
                    }

                    Session["TurmaId"] = idturma;
                    cal = (Calendario)Session["Calendario"];

                    CategoriaAtividadeBO cateBO = new CategoriaAtividadeBO();
                    listaAtividades = cateBO.GetCategoriaAtividade();
                    AulaBO      AulaBO     = new AulaBO();
                    List <Aula> listaAulas = null;
                    try
                    {
                        listaAulas = AulaBO.GetAulas(idturma);
                    }
                    catch (Exception)
                    {
                        Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
                    }
                    Disciplina          d   = listaAulas[0].TurmaId.Disciplina;
                    CategoriaDisciplina cat = d.Categoria;

                    // Mega gambiarra master extended++
                    // TODO: retirar assim que possível!
                    if (cat.Descricao.IndexOf("Outras Unidades") != -1)
                    {
                        facin = false;
                    }
                    Session["facin"] = facin;

                    lblTitulo.Text = d.Cod + "-" + d.Cred + " " + d.Nome + ", turma " + listaAulas[0].TurmaId.Numero;//" "+facin;

                    foreach (Aula a in listaAulas)
                    {
                        categorias.Add(a.CategoriaAtividade.Id);
                        argb.Add(a.CategoriaAtividade.Cor);
                    }
                    dgAulas.DataSource = listaAulas;
                    dgAulas.DataBind();

                    // Monta dicionário com bloqueio de recursos devido a uso de outros
                    // Movido para Global.asax (Application_Start)
                    //Dictionary<Guid, Tuple<Guid,Guid>> blocks = new Dictionary<Guid, Tuple<Guid,Guid>>();
                    //List<Recurso> listRec = recursosBO.GetRecursos();
                    //foreach (Recurso r in listRec) {
                    //    if(r.Bloqueia1 != Guid.Empty || r.Bloqueia2 != Guid.Empty)
                    //    {
                    //        //System.Diagnostics.Debug.WriteLine("block: " + r.Id + " -> " + r.Bloqueia1 + ", " + r.Bloqueia2);
                    //        blocks.Add(r.Id, new Tuple<Guid,Guid>(r.Bloqueia1, r.Bloqueia2));
                    //    }
                    //}
                    //Session["blocks"] = blocks;
                }
            }
        }
        catch (DataAccessException ex)
        {
            Response.Redirect("~/Default/Erro.aspx?Erro=" + ex.Message);
        }
    }
Exemplo n.º 13
0
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (IsPostBack)
            {
                return;
            }

            if (Session["AppState"] != null && ((AppState)Session["AppState"]) == AppState.Admin)
            {
                Server.Transfer("~/Default/Erro.aspx?Erro=O sistema está bloqueado.");
            }
            else if (Session["AppState"] != null && (AppState)Session["AppState"] != AppState.AtivoSemestre)
            {
                Server.Transfer("~/Default/Erro.aspx?Erro=O semestre ainda não foi iniciado.");
            }
            else
            {
                if (Session["Calendario"] == null)
                {
                    Response.Redirect("../Default/SelecionarCalendario.aspx");
                }
                //FIXME: falta um else aqui?
                Guid idturma = new Guid();
                if (Request.QueryString["GUID"] != null)
                {
                    try
                    {
                        idturma = new Guid(Request.QueryString["GUID"]);
                    }
                    catch (FormatException)
                    {
                        Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
                    }

                    Session["TurmaId"] = idturma;
                    cal = (Calendario)Session["Calendario"];

                    CategoriaAtividadeBO cateBO = new CategoriaAtividadeBO();
                    listaAtividades = cateBO.GetCategoriaAtividade();
                    AulaBO      AulaBO     = new AulaBO();
                    List <Aula> listaAulas = null;
                    try
                    {
                        listaAulas = AulaBO.GetAulas(idturma);
                    }
                    catch (Exception)
                    {
                        Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
                    }
                    Disciplina          d   = listaAulas[0].TurmaId.Disciplina;
                    CategoriaDisciplina cat = d.Categoria;

                    // Mega gambiarra master extended++
                    // TODO: retirar assim que possível!
                    if (cat.Descricao.IndexOf("Outras Unidades") != -1)
                    {
                        facin = false;
                    }
                    Session["facin"] = facin;

                    lblTitulo.Text = d.Cod + "-" + d.Cred + " " + d.Nome + ", turma " + listaAulas[0].TurmaId.Numero + " - " + Regex.Replace(listaAulas[0].TurmaId.Sala, "32/A", "32");//" "+facin;

                    int horasRelogioEsperadas = d.Cred * 15;
                    int durPeriodo            = 45;

/*                    if (listaAulas[0].Hora == "JK" || listaAulas[0].Hora == "LM" || listaAulas[0].Hora == "NP"
|| listaAulas[1].Hora == "JK" || listaAulas[1].Hora == "LM" || listaAulas[1].Hora == "NP"
|| listaAulas[1].Hora == "JK" || listaAulas[2].Hora == "LM" || listaAulas[2].Hora == "NP")
||                      durPeriodo = 45;*/

                    int  totalAulas    = 0;
                    bool emG2          = false;
                    bool haG2          = false;
                    int  totalFeriados = 0;
                    foreach (Aula a in listaAulas)
                    {
                        categorias.Add(a.CategoriaAtividade.Id);
                        argb.Add(a.CategoriaAtividade.Cor);
                        if (a.Data >= cal.InicioG2)
                        {
                            //if (a.CategoriaAtividade.Descricao == "Prova de G2")
                            //Debug.WriteLine("EM G2");
                            emG2 = true;
                        }
                        if (a.DescricaoAtividade.StartsWith("Feriado") || a.DescricaoAtividade.StartsWith("Suspensão"))
                        {
                            totalFeriados++;
                        }
                        if (a.CategoriaAtividade.Descricao == "Prova de G2")
                        {
                            haG2 = true;
                        }
                        if (!a.DescricaoAtividade.StartsWith("Feriado") && !a.DescricaoAtividade.StartsWith("Suspensão") &&
                            a.CategoriaAtividade.Descricao != "Prova de G2" && !emG2)
                        {
                            totalAulas++;
                        }
                    }
                    // Contando mais uma aula por causa da G2 que pulamos antes
                    //if(haG2)
                    //    totalAulas++;
                    int totalEfetivo   = totalAulas * 2 * durPeriodo / 60;
                    int complementares = horasRelogioEsperadas - totalEfetivo;
                    if (complementares < 0)
                    {
                        complementares = 0;
                    }
                    //lblHoras.Text = "Duração do período: " + durPeriodo + " - Horas esperadas: " + horasRelogioEsperadas + " - Horas efetivas: " + totalEfetivo
                    //    + " - <b>Previsão de horas extraclasse: " + (horasRelogioEsperadas - totalEfetivo) + "</B>";

//                    int minutosEsperados = horasRelogioEsperadas * 60;
                    int minutosFeriado   = durPeriodo * totalFeriados * 2;
                    int minutosEsperados = durPeriodo * 2 * 18 * d.Cred / 2;
                    int horasMinistradas = (minutosEsperados - minutosFeriado) / 60;
                    int extraClasse      = horasRelogioEsperadas - horasMinistradas;
                    Debug.WriteLine("Minutos feriado: " + minutosFeriado);
                    Debug.WriteLine("Minutos esperados: " + minutosEsperados);

                    //lblHoras.Text = "Duração do período: " + durPeriodo + " - Horas esperadas: " + horasRelogioEsperadas + " - Horas efetivas: " + horasMinistradas
                    //    + " - <b>Previsão de horas extraclasse: " + extraClasse + "</B>";

                    lblHoras.Text = "- Horas esperadas: " + horasRelogioEsperadas + " - Horas efetivas: " + totalEfetivo
                                    + " - <b>Previsão de horas para TDE: " + complementares + "</B>";

                    dgAulas.DataSource = listaAulas;
                    dgAulas.DataBind();


                    if (Session["blocks"] == null)
                    {
                        //BusinessData.BusinessLogic.RecursosBO recursosBO = new BusinessData.BusinessLogic.RecursosBO();
                        // Monta dicionário com bloqueio de recursos devido a uso de outros
                        Dictionary <Guid, BusinessData.Entities.Recurso> todos   = new Dictionary <Guid, BusinessData.Entities.Recurso>();
                        Dictionary <Guid, Tuple <Guid, Guid> >           blocks  = new Dictionary <Guid, Tuple <Guid, Guid> >();
                        List <BusinessData.Entities.Recurso>             listRec = recursosBO.GetRecursos();
                        foreach (BusinessData.Entities.Recurso r in listRec)
                        {
                            todos.Add(r.Id, r);
                        }
                        foreach (BusinessData.Entities.Recurso r in listRec)
                        {
                            if (r.Bloqueia1 != Guid.Empty || r.Bloqueia2 != Guid.Empty)
                            {
                                //System.Diagnostics.Debug.WriteLine("block: " + r.Id + " -> " + r.Bloqueia1 + ", " + r.Bloqueia2);
                                blocks.Add(r.Id, new Tuple <Guid, Guid>(r.Bloqueia1, r.Bloqueia2));
                            }
                        }
                        Session["blocks"] = blocks;
                    }

                    // Gera link para HTML
                    Link1.NavigateUrl = "~/Default/Export.aspx?id=" + idturma + "&ano=" + cal.Ano + "&sem=" + cal.Semestre;
                    string navlink = "/Default/ExportIcal.aspx?id=" + idturma + "&ano=" + cal.Ano + "&sem=" + cal.Semestre;
                    Link2.NavigateUrl = "https://www.google.com/calendar/render?cid=" +
                                        Server.UrlEncode("http://" + Request.Url.Host + navlink);
                    Link3.NavigateUrl = "webcal://" + Request.Url.Host + navlink;
                    Link4.NavigateUrl = "~" + navlink;

                    // Monta dicionário com bloqueio de recursos devido a uso de outros
                    // Movido para Global.asax (Application_Start)
                    //Dictionary<Guid, Tuple<Guid,Guid>> blocks = new Dictionary<Guid, Tuple<Guid,Guid>>();
                    //List<Recurso> listRec = recursosBO.GetRecursos();
                    //foreach (Recurso r in listRec) {
                    //    if(r.Bloqueia1 != Guid.Empty || r.Bloqueia2 != Guid.Empty)
                    //    {
                    //        //System.Diagnostics.Debug.WriteLine("block: " + r.Id + " -> " + r.Bloqueia1 + ", " + r.Bloqueia2);
                    //        blocks.Add(r.Id, new Tuple<Guid,Guid>(r.Bloqueia1, r.Bloqueia2));
                    //    }
                    //}
                    //Session["blocks"] = blocks;
                }
            }
        }
        catch (DataAccessException ex)
        {
            Response.Redirect("~/Default/Erro.aspx?Erro=" + ex.Message);
        }
    }
Exemplo n.º 14
0
    protected void Page_Load(object sender, EventArgs e)
    {
        cal = null;
        Guid idturma    = new Guid();
        bool mostraProx = true;

        if (Request.QueryString["id"] != null)
        {
            listCData = cdataBo.GetCategoriaDatas();
            try
            {
                idturma = new Guid(Request.QueryString["id"]);
                int           ano      = int.Parse(Request.QueryString["ano"]);
                int           semestre = int.Parse(Request.QueryString["sem"]);
                CalendariosBO calBO    = new CalendariosBO();
                cal = calBO.GetCalendarioByAnoSemestre(ano, semestre);
                string strProx = Request.QueryString["prox"];
                if (string.IsNullOrEmpty(strProx))
                {
                    mostraProx = false;
                }
            }
            catch (FormatException)
            {
                Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
            }

            Session["TurmaId"] = idturma;
            CategoriaAtividadeBO      cateBO          = new CategoriaAtividadeBO();
            List <CategoriaAtividade> listaAtividades = cateBO.GetCategoriaAtividade();
            AulaBO      AulaBO     = new AulaBO();
            List <Aula> listaAulas = null;
            try
            {
                listaAulas = AulaBO.GetAulas(idturma);
            }
            catch (Exception)
            {
                Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
            }
            Disciplina          d   = listaAulas[0].TurmaId.Disciplina;
            CategoriaDisciplina cat = d.Categoria;

            string sala   = Regex.Replace(listaAulas[0].TurmaId.Sala, "32/A", "32");
            string titulo = d.Cod + "-" + d.Cred + " " + d.Nome + " (" + listaAulas[0].TurmaId.Numero + ") - " + sala;//" "+facin;
            lblTitulo.Text = titulo;

            DateTime hoje = DateTime.Now;
            //           if (mostraProx)
            //               lblProx.Text = "26/08/2019 [QUA LM] - Apresentação (Sala de aula)";

            DataTable tabela = new DataTable();

            AlocacaoBO alocBO = new AlocacaoBO();

            foreach (DataGridColumn coluna in dgAulas.Columns)
            {
                tabela.Columns.Add(coluna.HeaderText);
            }
            //            tabela.Columns.Add("Recursos");

            int     totalAulas = 1;
            DataRow dr;
            bool    notset = true;
            foreach (Aula aula in listaAulas)
            {
                string hi = Horarios.ParseToDateTime(aula.Hora).TimeOfDay.ToString().Substring(0, 5);
                string hf = Horarios.ParseToDateTime(aula.Hora).TimeOfDay.Add(TimeSpan.FromMinutes(90)).ToString().Substring(0, 5);
                dr              = tabela.NewRow();
                dr["#"]         = totalAulas++;
                dr["Dia"]       = DataHelper.GetDia(aula.Data.DayOfWeek);
                dr["Data"]      = aula.Data.Date.ToShortDateString();
                dr["Hora"]      = aula.Hora + "<br>" + hi + " - " + hf;
                dr["Descrição"] = aula.DescricaoAtividade;
                dr["Atividade"] = aula.CategoriaAtividade.Descricao;
                dr["Prox"]      = "";

                List <BusinessData.Entities.Recurso> recAlocados = alocBO.GetRecursoAlocadoByAula(aula.Data, aula.Hora, (Guid)aula.Id);
                //                dr["Recursos"] = "";
                string aux     = "";
                string recHoje = "";
                foreach (var rec in recAlocados)
                {
                    if (aux != String.Empty)
                    {
                        aux += "<br/>" + rec.Descricao;
                    }
                    else
                    {
                        aux = rec.Descricao;
                        //Debug.WriteLine("Tipo recurso:" + rec.Tipo);
                        if (rec.Tipo == 'L' || rec.Tipo == 'A' || rec.Tipo == 'D' || rec.Tipo == 'X')
                        {
                            recHoje = rec.Descricao;
                        }
                    }
                }
                dr["Recursos"]  = aux;
                dr["CorDaData"] = aula.CategoriaAtividade.Cor.ToArgb();

                if (aula.Data.Date >= cal.InicioG2)
                {
                    dr["#"] = "";
                    totalAulas--;
                }

                Data data = VerificaData(aula.Data.Date);
                if (data != null)
                {
                    foreach (CategoriaData c in listCData)
                    {
                        if (c.Id == data.Categoria.Id)
                        {
                            if (!c.DiaLetivo)
                            {
                                dr["Descrição"] = c.Descricao + (aula.DescricaoAtividade != "Feriado" ? " (era " + aula.DescricaoAtividade + ")" : "");
                                dr["#"]         = "";
                                totalAulas--;
                                break;
                            }
                        }
                    }
                }
                //Debug.WriteLine("Cor aula: " + aula.CategoriaAtividade.Cor.ToString());
                tabela.Rows.Add(dr);

                if (recHoje == string.Empty)
                {
                    recHoje = sala;
                }

                if (notset)
                {// && hoje.Date == aula.Data.Date)
                    //Debug.WriteLine("Aula: " + aula.Data.ToString() + " - hoje: "+hoje.ToString());
                    switch (aula.Hora)
                    {
                    case "AB":
                        aula.Data = aula.Data.AddHours(8);
                        break;

                    case "CD":
                        aula.Data = aula.Data.AddHours(9).AddMinutes(45);
                        break;

                    case "EX":
                        aula.Data = aula.Data.AddHours(11).AddMinutes(30);
                        break;

                    case "FG":
                        aula.Data = aula.Data.AddHours(14);
                        break;

                    case "HI":
                        aula.Data = aula.Data.AddHours(15).AddMinutes(45);
                        break;

                    case "JK":
                        aula.Data = aula.Data.AddHours(17).AddMinutes(30);
                        break;

                    case "LM":
                        aula.Data = aula.Data.AddHours(19).AddMinutes(15);
                        break;

                    case "NP":
                        aula.Data = aula.Data.AddHours(21).AddMinutes(0);
                        break;
                    }
                    long tickDiff = aula.Data.Ticks - hoje.Ticks;
                    //Debug.WriteLine("Tickdiff: "+tickDiff);
//                    hoje.
                    TimeSpan ts = TimeSpan.FromTicks(tickDiff);
                    //Debug.WriteLine("Timespan diff: " + ts.Duration().TotalHours);
                    if (tickDiff >= 0 || ts.Duration().TotalHours < 1)
                    {
                        lblProx.Text = aula.Data.Date.ToShortDateString() + " [" + dr["Dia"] + " " + aula.Hora + "] - " + aula.DescricaoAtividade
                                       + " (" + recHoje + ")";
                        TimeSpan diff        = aula.Data.Subtract(hoje);
                        int      roundedDays = (int)Math.Round(diff.TotalDays);
//                        lblProx.Text += diff.TotalDays + " - " + diff.TotalHours + " - " + diff.TotalMinutes + " -> "+Math.Round(diff.TotalDays);
                        //lblProx.Text += " -> " + aula.Data.ToString() + " - " + hoje.ToString();
                        /**/
                        if (roundedDays > 0)
                        {
                            if (roundedDays == 1)
                            {
                                lblProx.Text += " - amanhã";
                            }
                            else
                            {
                                lblProx.Text += " - daqui a " + roundedDays + " dias";
                            }
                        }
                        else if (diff.Hours > 0)
                        {
                            lblProx.Text += " - começa em " + diff.Hours + " hora" + (diff.Hours > 1 ? "s" : "");
                        }
                        else if (diff.Minutes > 0)
                        {
                            lblProx.Text += " - começa em " + diff.Minutes + " minuto" + (diff.Minutes > 1 ? "s" : "");
                        }
                        else if (diff.Minutes < 0)
                        {
                            lblProx.Text += " - começou há " + (-diff.Minutes) + " minuto" + (diff.Minutes < 1 ? "s" : "");
                        }
                        /**/

                        //lblProx.Text += " - " + diff.Days + " dias, " + diff.Hours + " horas, " + diff.Minutes + " minutos";
                        dr["Prox"] = "X"; // marca como a próxima aula na tabela
                        if (!mostraProx)
                        {
                            lblProx.Text = "";
                        }
                        else
                        {
                            // Se prox estiver ativo, oculta a grade e o título
                            dgAulas.Visible   = false;
                            lblTitulo.Visible = false;
                            break;
                        }
                        notset = false;
                    }
                }
            }
            if (lblProx.Text == String.Empty && mostraProx)
            {
                dgAulas.Visible   = false;
                lblTitulo.Visible = false;
                lblProx.Text      = "Não há mais atividades";
            }
            dgAulas.DataSource     = tabela;
            dgAulas.ItemDataBound += new DataGridItemEventHandler(dgAux_ItemDataBound);
            dgAulas.DataBind();
        }
    }