Пример #1
0
        public IList <DTODesempenhoAcademico> ConsultarDesempenhoAcademico(DTOFiltroDesempenhoAcademico dTOFiltroDesempenhoAcademico)
        {
            RegistrarLogExecucao();

            return(new ManterMatricula().ConsultarDesempenhoAcademico(dTOFiltroDesempenhoAcademico.GetParams()));
        }
        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            using (var relDa = new RelatorioDesempenhoAcademico())
            {
                DateTime?dataInicio          = null;
                DateTime?dataFim             = null;
                DateTime?dataInicioTermino   = null;
                DateTime?dataFimTermino      = null;
                DateTime?dataDataInicioTurma = null;
                DateTime?dataDataFinalTurma  = null;
                DateTime dataTmp;

                if (!string.IsNullOrWhiteSpace(txtDataInicio.Text))
                {
                    if (DateTime.TryParse(txtDataInicio.Text, out dataTmp))
                    {
                        dataInicio = dataTmp;
                    }
                    else
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Data inicial inválida");
                        return;
                    }
                }

                if (!string.IsNullOrWhiteSpace(txtDataFinal.Text))
                {
                    if (DateTime.TryParse(txtDataFinal.Text, out dataTmp))
                    {
                        dataFim = dataTmp;
                    }
                    else
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Data final inválida");
                        return;
                    }
                }

                if (dataFim.HasValue && dataInicio.HasValue && dataFim < dataInicio)
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "A data final deve ser maior que a inicial");
                    return;
                }

                if (!string.IsNullOrWhiteSpace(txtDataTerminoInicio.Text))
                {
                    if (DateTime.TryParse(txtDataTerminoInicio.Text, out dataTmp))
                    {
                        dataInicioTermino = dataTmp;
                    }
                    else
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Data inicial inválida");
                        return;
                    }
                }

                if (!string.IsNullOrWhiteSpace(txtDataTerminoFim.Text))
                {
                    if (DateTime.TryParse(txtDataTerminoFim.Text, out dataTmp))
                    {
                        dataFimTermino = dataTmp;
                    }
                    else
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Data final inválida");
                        return;
                    }
                }

                if (!string.IsNullOrWhiteSpace(txtDataInicioTurma.Text))
                {
                    if (DateTime.TryParse(txtDataInicioTurma.Text, out dataTmp))
                    {
                        dataDataInicioTurma = dataTmp;
                    }
                    else
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Data inicial turma inválida");
                        return;
                    }
                }

                if (!string.IsNullOrWhiteSpace(txtDataFinalTurma.Text))
                {
                    if (DateTime.TryParse(txtDataFinalTurma.Text, out dataTmp))
                    {
                        dataDataFinalTurma = dataTmp;
                    }
                    else
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Data fim de turma inválida");
                        return;
                    }
                }

                var categorias = ucCategorias1.IdsCategoriasMarcadas.Any()
                    ? ucCategorias1.IdsCategoriasMarcadas
                    : ucCategorias1.IdsCategoriasExistentes;

                var dTOFiltroDesempenhoAcademico = new DTOFiltroDesempenhoAcademico(
                    txtNome.Text,
                    txtCPF.Text,
                    ListBoxesNivelOcupacional.RecuperarIdsSelecionados <int>(),
                    ListBoxesUF.RecuperarIdsSelecionados <int>(),
                    ListBoxesPublicoAlvo.RecuperarIdsSelecionados <int>(),
                    dataInicio,
                    dataFim,
                    dataInicioTermino,
                    dataFimTermino,
                    dataDataInicioTurma,
                    dataDataFinalTurma,
                    ListBoxesStatus.RecuperarIdsSelecionados <int>(),
                    string.IsNullOrWhiteSpace(txtSolucaoEducacional.Text) ? 0 : int.Parse(txtSolucaoEducacional.Text),
                    string.IsNullOrWhiteSpace(txtOferta.Text) ? 0 : int.Parse(txtOferta.Text),
                    string.IsNullOrWhiteSpace(txtTurma.Text) ? 0 : int.Parse(txtTurma.Text),
                    categorias,
                    ListBoxesFormaDeAquisicao.RecuperarIdsSelecionados <int>(),
                    ListBoxesUFResponsavel.RecuperarIdsSelecionados <int>()
                    );

                var lstDa = relDa.ConsultarDesempenhoAcademico(dTOFiltroDesempenhoAcademico);

                // Insere a lista completa na sessão para não levar somente os resultados da página atual para a impressão.
                Session["dsRelatorio"] = lstDa;

                var resultado = SelecionarPagina();

                if (resultado.Any())
                {
                    var totalizadores = new List <DTOTotalizador>();

                    if (lstDa.Any())
                    {
                        // Caso não possua filtro de SE, Oferta ou Turma, exibe o totalizador que conta a quantidade de matrículas.
                        if (string.IsNullOrWhiteSpace(txtSolucaoEducacional.Text) &&
                            string.IsNullOrWhiteSpace(txtOferta.Text) && string.IsNullOrWhiteSpace(txtTurma.Text))
                        {
                            totalizadores.Add(
                                TotalizadorUtil.GetTotalizador(lstDa, "Total da quantidade de alunos registros", "CPF",
                                                               enumTotalizacaoRelatorio.Contar, false));
                        }

                        totalizadores.AddRange(new List <DTOTotalizador>
                        {
                            TotalizadorUtil.GetTotalizador(lstDa, "Total da quantidade de alunos CPF", "CPF", enumTotalizacaoRelatorio.ContarDistintos, false),
                            TotalizadorUtil.GetTotalizadorComposto(lstDa, "Total da quantidade por nível ocupacional", "StatusMatricula", "NivelOcupacional"),
                            TotalizadorUtil.GetTotalizador(lstDa, "Total da quantidade por status", "StatusMatricula", enumTotalizacaoRelatorio.Contar),
                            TotalizadorUtil.GetTotalizadorComposto(lstDa, "Total da quantidade de alunos UF", "StatusMatricula", "UF")
                        });

                        ucTotalizadorRelatorio.PreencherTabela(totalizadores);
                    }

                    componenteGeracaoRelatorio.Visible = true;
                    ucFormatoSaidaRelatorio.Visible    = true;
                    btnPesquisar.CssClass = "btn btn-default mostrarload";
                    Filtros.CssClass      = "panel-collapse collapse";
                }
                else
                {
                    ucTotalizadorRelatorio.LimparTotalizadores();
                    componenteGeracaoRelatorio.Visible = false;
                    ucFormatoSaidaRelatorio.Visible    = false;
                }

                WebFormHelper.ValidarVisibilidadeCamposGrid(dgRelatorio, chkListaCamposVisiveis.Items);
            }
        }