示例#1
0
        public async Task <bool> Executar(FiltroRelatorioNotasEConceitosFinaisDto filtro)
        {
            var usuarioLogado = await mediator.Send(new ObterUsuarioLogadoQuery());

            if (usuarioLogado == null)
            {
                throw new NegocioException("Não foi possível localizar o usuário.");
            }

            filtro.UsuarioNome = usuarioLogado.Nome;
            filtro.UsuarioRf   = usuarioLogado.CodigoRf;

            if (filtro.Bimestres.Any(c => c == -99))
            {
                filtro.Bimestres = new List <int>();
                switch (filtro.Modalidade)
                {
                case Modalidade.Fundamental:
                case Modalidade.Medio:
                    filtro.Bimestres.AddRange(new int[] { 0, 1, 2, 3, 4 });
                    break;

                case Modalidade.EJA:
                    filtro.Bimestres.AddRange(new int[] { 0, 1, 2 });
                    break;
                }
            }

            return(await mediator.Send(new GerarRelatorioCommand(TipoRelatorio.NotasEConceitosFinais, filtro, usuarioLogado, filtro.TipoFormatoRelatorio)));
        }
        private async void MontarCabecalho(FiltroRelatorioNotasEConceitosFinaisDto filtros, RelatorioNotasEConceitosFinaisDto relatorioNotasEConceitosFinaisDto, IEnumerable <ComponenteCurricularPorTurma> componentes)
        {
            if (string.IsNullOrEmpty(filtros.DreCodigo))
            {
                relatorioNotasEConceitosFinaisDto.DreNome = "Todas";
            }
            else
            {
                var dre = await mediator.Send(new ObterDrePorCodigoQuery()
                {
                    DreCodigo = filtros.DreCodigo
                });

                relatorioNotasEConceitosFinaisDto.DreNome = dre.Abreviacao;
            }


            if (string.IsNullOrEmpty(filtros.UeCodigo))
            {
                relatorioNotasEConceitosFinaisDto.UeNome = "Todas";
            }
            else
            {
                var ue = await mediator.Send(new ObterUePorCodigoQuery(filtros.UeCodigo));

                relatorioNotasEConceitosFinaisDto.UeNome = ue.Nome;
            }

            if (filtros.ComponentesCurriculares == null || filtros.ComponentesCurriculares.Length == 0)
            {
                relatorioNotasEConceitosFinaisDto.ComponenteCurricular = "Todos";
            }
            else if (filtros.ComponentesCurriculares.Length == 1)
            {
                relatorioNotasEConceitosFinaisDto.ComponenteCurricular = componentes.FirstOrDefault(a => a.CodDisciplina == filtros.ComponentesCurriculares[0])?.Disciplina;
            }

            if (filtros.Bimestres == null || filtros.Bimestres.Count > 1)
            {
                relatorioNotasEConceitosFinaisDto.Bimestre = "Todos";
            }
            else if (filtros.Bimestres != null && filtros.Bimestres.Count == 1)
            {
                relatorioNotasEConceitosFinaisDto.Bimestre = $"{filtros.Bimestres[0]}º";
            }

            if (filtros.Anos == null || filtros.Anos.Length == 0)
            {
                relatorioNotasEConceitosFinaisDto.Ano = "Todos";
            }
            else if (filtros.Anos.Length == 1)
            {
                relatorioNotasEConceitosFinaisDto.Ano = filtros.Anos[0];
            }

            relatorioNotasEConceitosFinaisDto.UsuarioNome = filtros.UsuarioNome;
            relatorioNotasEConceitosFinaisDto.UsuarioRF   = filtros.UsuarioRf;
        }
        private async Task <List <Dre> > AplicarFiltroPorDre(FiltroRelatorioNotasEConceitosFinaisDto filtros)
        {
            var dres = new List <Dre>();

            if (!string.IsNullOrEmpty(filtros.DreCodigo))
            {
                var dre = await mediator.Send(new ObterDrePorCodigoQuery()
                {
                    DreCodigo = filtros.DreCodigo
                });

                if (dre == null)
                {
                    throw new NegocioException("Não foi possível obter a Dre.");
                }

                dres.Add(dre);
            }

            return(dres);
        }
        private async Task <string[]> AplicarFiltroPorUe(FiltroRelatorioNotasEConceitosFinaisDto filtros, IEnumerable <UePorDresIdResultDto> ues)
        {
            string[] uesCodigos;
            if (!string.IsNullOrEmpty(filtros.UeCodigo))
            {
                var ue = await mediator.Send(new ObterUePorCodigoQuery(filtros.UeCodigo));

                if (ue == null)
                {
                    throw new NegocioException("Não foi possível obter a Ue.");
                }

                var codigos = new List <string>
                {
                    filtros.UeCodigo
                };
                uesCodigos = codigos.ToArray();
            }
            else
            {
                uesCodigos = ues.Select(u => u.Codigo).ToArray();
            }
            return(uesCodigos);
        }
        private IEnumerable <RetornoNotaConceitoBimestreComponenteDto> AplicarFiltroPorCondicoesEValores(FiltroRelatorioNotasEConceitosFinaisDto filtros, IEnumerable <RetornoNotaConceitoBimestreComponenteDto> notas)
        {
            if (filtros.TipoNota == TipoNota.Conceito)
            {
                return(notas.Where(a => a.ConceitoId == filtros.ValorCondicao && a.SinteseId == null).ToList());
            }

            if (filtros.TipoNota == TipoNota.Sintese)
            {
                return(notas.Where(a => a.SinteseId == filtros.ValorCondicao).ToList());
            }

            if (filtros.TipoNota != TipoNota.Todas)
            {
                switch (filtros.Condicao)
                {
                case CondicoesRelatorioNotasEConceitosFinais.Igual:
                    return(notas.Where(a => a.Nota == filtros.ValorCondicao && a.ConceitoId == null && a.SinteseId == null).ToList());

                case CondicoesRelatorioNotasEConceitosFinais.Maior:
                    return(notas.Where(a => a.Nota > filtros.ValorCondicao && a.ConceitoId == null && a.SinteseId == null).ToList());

                case CondicoesRelatorioNotasEConceitosFinais.Menor:
                    return(notas.Where(a => a.Nota < filtros.ValorCondicao && a.ConceitoId == null && a.SinteseId == null).ToList());

                default:
                    break;
                }
            }

            return(notas);
        }
示例#6
0
 public ObterRelatorioNotasEConceitosFinaisPdfQuery(FiltroRelatorioNotasEConceitosFinaisDto filtroRelatorioNotasEConceitosFinais)
 {
     this.FiltroRelatorioNotasEConceitosFinais = filtroRelatorioNotasEConceitosFinais;
 }
 public async Task <IActionResult> Gerar(FiltroRelatorioNotasEConceitosFinaisDto filtro, [FromServices] IRelatorioNotasEConceitosFinaisUseCase relatorioNotasEConceitosFinaisUseCase)
 {
     return(Ok(await relatorioNotasEConceitosFinaisUseCase.Executar(filtro)));
 }