Exemple #1
0
    protected void ddlRecurso_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList ddlRecurso = (DropDownList)sender;
        string       recString  = ddlRecurso.SelectedValue;

        TableCell    cell     = (TableCell)ddlRecurso.Parent;
        DataGridItem gridItem = (DataGridItem)cell.Parent;

        // Salva dados digitados

        SalvarTodos();
//        SalvaDados(gridItem);

        // abre a popup de selecao de recursos
        //string id = lblaulaId.Text;
        //ScriptManager.RegisterClientScriptBlock(this, GetType(), "onClick", "popitup('SelecaoRecursos.aspx?AulaId=" + id + "');", true);

        Label lblaulaId = (Label)gridItem.FindControl("lblAulaId");
        Guid  idAula    = new Guid(lblaulaId.Text);
        Aula  aulaAtual = aulaBo.GetAulaById(idAula);

        RequisicoesBO      controleRequisicoes   = new RequisicoesBO();
        IList <Requisicao> requisicoesExistentes = controleRequisicoes.GetRequisicoesPorAula(idAula, cal);
        int pri = 0;

        foreach (Requisicao req in requisicoesExistentes)
        {
            if (req.Prioridade > pri)
            {
                pri = req.Prioridade;
            }
        }

        CategoriaRecursoBO controladorCategorias = new CategoriaRecursoBO();
        Guid             catId     = new Guid(ddlRecurso.SelectedValue);
        CategoriaRecurso categoria = controladorCategorias.GetCategoriaRecursoById(catId);
        Requisicao       novaReq   = Requisicao.NewRequisicao(aulaAtual, categoria, pri + 1); // teste! sempre prioridade + 1

        // Insere a nova requisição
        controleRequisicoes.InsereRequisicao(novaReq);
        requisicoesExistentes.Add(novaReq);

        // Atualiza label com os recursos selecionados
        Label  lblRecursosSelecionados = (Label)gridItem.FindControl("lblRecursosSelecionados");
        string recursos = "";

        foreach (Requisicao r in requisicoesExistentes)
        {
            if (recursos != String.Empty)
            {
                recursos += "<br/>";
            }
            recursos += r.Prioridade + ": " + r.CategoriaRecurso.Descricao;
        }
        lblRecursosSelecionados.Text = recursos;

        // Remove a categoria selecionada do drop down list
        ddlRecurso.Items.Remove(ddlRecurso.Items.FindByValue(ddlRecurso.SelectedValue));
        ddlRecurso.SelectedIndex = 0;
    }
    protected void btnConfirmar_Click(object sender, EventArgs e)
    {
        RequisicoesBO req = new RequisicoesBO();

        foreach (DecoratorRequisicoes dec in listaRequisicoes)
        {
            switch (dec.EstadoAtual)
            {
            case DecoratorRequisicoes.EstadoRequisicao.Inserida:
                req.InsereRequisicao(dec);
                break;

            case DecoratorRequisicoes.EstadoRequisicao.Removida:
                req.DeletaRequisicao(dec.IdRequisicao);
                break;

            case DecoratorRequisicoes.EstadoRequisicao.Atualizada:
                req.UpdateRequisicoes(dec);
                break;
            }
        }
        limparSessao = true;
        FechaJanela();
    }
    private void GetRequisicoes()
    {
        RequisicoesBO      controleRequisicoes   = new RequisicoesBO();
        IList <Requisicao> requisicoesExistentes = controleRequisicoes.GetRequisicoesPorAula(aulaAtual.Id, calendarioAtual);

        foreach (Requisicao req in requisicoesExistentes)
        {
            DecoratorRequisicoes.EstadoRequisicao estado = DecoratorRequisicoes.EstadoRequisicao.Original;
            listaRequisicoes.Add(new DecoratorRequisicoes(req, estado));

            if (req.Prioridade == Convert.ToInt32(ddlPrioridadeRequisicao.SelectedValue))
            {
                ddlCategoriaRecurso.SelectedValue = req.CategoriaRecurso.Id.ToString();
            }
            if (req.Prioridade > ddlPrioridadeRequisicao.Items.Count)
            {
                if (!estado.ToString().Equals("Removida"))
                {
                    AdicionaOpcao();
                }
            }
        }
        Session.Add("listaRequisicoes", listaRequisicoes);
    }
    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);
            }
        }
    }