public async Task Executar(FiltroRelatorioDto filtroRelatorioDto)
        {
            SentrySdk.AddBreadcrumb($"Obtendo dados do relatório", "8 - MonitorarStatusRelatorioUseCase");

            var dadosRelatorio = filtroRelatorioDto.ObterObjetoFiltro <DadosRelatorioDto>();

            var detalhesRelatorio = await mediator.Send(new ObterDetalhesRelatorioQuery(dadosRelatorio.RequisicaoId, dadosRelatorio.JSessionId));

            SentrySdk.AddBreadcrumb($"dados do relatório OK", "8 - MonitorarStatusRelatorioUseCase");


            if (detalhesRelatorio != null && detalhesRelatorio.Pronto)
            {
                SentrySdk.AddBreadcrumb($"Indo publicar na fila Prontos..", "8 - MonitorarStatusRelatorioUseCase");

                //TODO: Aplicar Polly ??
                if (await mediator.Send(new SalvarRelatorioJasperLocalCommand(dadosRelatorio.JSessionId, dadosRelatorio.RequisicaoId, dadosRelatorio.ExportacaoId, dadosRelatorio.CodigoCorrelacao)))
                {
                    servicoFila.PublicaFila(new PublicaFilaDto(dadosRelatorio, RotasRabbit.RotaRelatoriosProntosSgp, RotasRabbit.ExchangeSgp, filtroRelatorioDto.CodigoCorrelacao));
                    SentrySdk.CaptureMessage("8 - MonitorarStatusRelatorioUseCase - Publicado na fila PRONTO OK!");
                }
                else
                {
                    PublicarNovamenteNaFila(filtroRelatorioDto, dadosRelatorio);
                }
            }
            else
            {
                PublicarNovamenteNaFila(filtroRelatorioDto, dadosRelatorio);
            }
        }
        public async Task Executar(FiltroRelatorioDto request)
        {
            var relatorioFiltros = request.ObterObjetoFiltro <AdesaoAEFiltroDto>();

            if (relatorioFiltros.DreCodigo == "-99")
            {
                relatorioFiltros.DreCodigo = string.Empty;
            }

            if (relatorioFiltros.UeCodigo == "-99")
            {
                relatorioFiltros.UeCodigo = string.Empty;
            }

            var listaConsolida = await mediator.Send(new ObterValoresConsolidadosAdesaoAppQuery(relatorioFiltros.DreCodigo, relatorioFiltros.UeCodigo));

            if (!listaConsolida.Any())
            {
                throw new NegocioException("Não foram encontrados dados com os filtros informados.");
            }


            var relatorioDto = await mediator.Send(new ObterListaRelatorioAdessaoAEQuery(listaConsolida, relatorioFiltros));

            await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioAEAdesao", relatorioDto, request.CodigoCorrelacao));
        }
Exemplo n.º 3
0
        public async Task Executar(FiltroRelatorioDto request)
        {
            try
            {
                var filtros = request.ObterObjetoFiltro <RelatorioControleGradeFiltroDto>();

                // TODO carregar dados do relatório sintético / analítico
                switch (filtros.Modelo)
                {
                case ModeloRelatorio.Sintetico:
                    await mediator.Send(new GerarRelatorioControleGradeSinteticoCommand(filtros, request.CodigoCorrelacao));

                    break;

                case ModeloRelatorio.Analitico:
                    await mediator.Send(new GerarRelatorioControleGradeAnaliticoCommand(filtros, request.CodigoCorrelacao));

                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public async Task Executar(FiltroRelatorioDto request)
        {
            var filtros = request.ObterObjetoFiltro <ObterPlanoAulaFiltroQuery>();

            var planoAula = await mediator.Send(new ObterPlanoAulaQuery(filtros.PlanoAulaId));

            if (planoAula == null)
            {
                throw new NegocioException("Plano de aula não encontrado.");
            }

            var componenteCurricular = await mediator.Send(new ObterComponentesCurricularesEolPorIdsQuery(planoAula.ComponenteCurricularId));

            planoAula.ComponenteCurricular = componenteCurricular.FirstOrDefault().Disciplina;
            planoAula.Objetivos            = await mediator.Send(new ObterPlanoAulaObjetivoAprendizagemQuery(filtros.PlanoAulaId));

            planoAula.Descricao           = planoAula.Descricao != null ? planoAula.Descricao : "";
            planoAula.LicaoCasa           = planoAula.LicaoCasa != null ? planoAula.LicaoCasa : "";
            planoAula.Recuperacao         = planoAula.Recuperacao != null ? planoAula.Recuperacao : "";
            planoAula.DesenvolvimentoAula = planoAula.DesenvolvimentoAula != null ? planoAula.DesenvolvimentoAula : "";

            planoAula.Usuario = filtros.Usuario.Nome;
            planoAula.RF      = filtros.Usuario.CodigoRf;

            await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioPlanoAula", planoAula, request.CodigoCorrelacao));
        }
        public async Task Executar(FiltroRelatorioDto request)
        {
            try
            {
                var parametros = request.ObterObjetoFiltro <FiltroRelatorioPlanejamentoDiarioDto>();

                var relatorioDto = new RelatorioControlePlanejamentoDiarioDto();

                relatorioDto.Filtro = await ObterFiltroRelatorio(parametros, request.UsuarioLogadoRF);

                if (parametros.ModalidadeTurma == Modalidade.Infantil)
                {
                    // Query DiarioBordo
                    relatorioDto.Turmas = await mediator.Send(new ObterDadosPlanejamentoDiarioBordoQuery(parametros));

                    await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioControlePlanejamentoDiarioInfantil", relatorioDto, request.CodigoCorrelacao));
                }
                else
                {
                    relatorioDto.Turmas = await mediator.Send(new ObterPlanejamentoDiarioPlanoAulaQuery(parametros));

                    await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioControlePlanejamentoDiario", relatorioDto, request.CodigoCorrelacao));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public async Task Executar(FiltroRelatorioDto request)
        {
            var relatorioQuery = request.ObterObjetoFiltro <ObterRelatorioConselhoClasseAlunoQuery>();

            SentrySdk.CaptureMessage("4.09 Obtendo relatorio.. - RelatorioConselhoClasseAlunoUseCase");

            var relatorio = await mediator.Send(relatorioQuery);

            SentrySdk.CaptureMessage("5.1 Obtive relatorio.. - RelatorioConselhoClasseAlunoUseCase");

            var urlRelatorio = "";

            if (relatorio.Relatorio.FirstOrDefault().EhBimestreFinal)
            {
                urlRelatorio = "/sgp/RelatorioConselhoClasse/ConselhoClasseAbaFinal";
            }
            else
            {
                urlRelatorio = "/sgp/RelatorioConselhoClasse/ConselhoClasse";
            }

            var relatorioSerializado = JsonConvert.SerializeObject(relatorio);

            SentrySdk.CaptureMessage("5.2 Serializei relatório.. - RelatorioConselhoClasseAlunoUseCase");

            SentrySdk.AddBreadcrumb("5 - Obtive o relatorio serializado : " + relatorioSerializado, "5 - RelatorioConselhoClasseAlunoUseCase");
            await mediator.Send(new GerarRelatorioAssincronoCommand(urlRelatorio, relatorioSerializado, TipoFormatoRelatorio.Pdf, request.CodigoCorrelacao));

            SentrySdk.CaptureMessage("5 FINAL - RelatorioConselhoClasseAlunoUseCase");
        }
Exemplo n.º 7
0
        public async Task Executar(FiltroRelatorioDto request)
        {
            var filtros = request.ObterObjetoFiltro <FiltroRelatorioPendenciasFechamentoDto>();

            var resultado = await mediator.Send(new ObterRelatorioFechamentoPedenciasQuery()
            {
                filtroRelatorioPendenciasFechamentoDto = filtros
            });

            await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioFechamentoPendencias", resultado, request.CodigoCorrelacao));
        }
 public async Task Executar(FiltroRelatorioDto request)
 {
     try
     {
         var filtros = request.ObterObjetoFiltro <FiltroNotificacaoDto>();
         await mediator.Send(new GerarRelatorioNotificacaoCommand(filtros, request.CodigoCorrelacao));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemplo n.º 9
0
        public async Task Executar(FiltroRelatorioDto request)
        {
            var gamesQuery = request.ObterObjetoFiltro <GamesQuery>();
            var nomeDoGame = await mediator.Send(gamesQuery);

            var conselhoClasse = await mediator.Send(new RelatorioExemploQuery());

            var dadosRelatorio = JsonConvert.SerializeObject(conselhoClasse);

            await mediator.Send(new GerarRelatorioAssincronoCommand("/sme/sgp/RelatorioConselhoClasse/ConselhoClasse",
                                                                    dadosRelatorio,
                                                                    TipoFormatoRelatorio.Pdf,
                                                                    request.CodigoCorrelacao));
        }
        public async Task Executar(FiltroRelatorioDto request)
        {
            var filtros = request.ObterObjetoFiltro <FiltroRelatorioResumoPAPDto>();

            // Obter dados de dre e ue
            var dreUe = await ObterDadosDreUe(filtros);

            // Obter dados de dre e ue
            var turma = await ObterDadosTurma(filtros);

            var ciclo = await ObterCiclo(filtros);

            var periodo = await ObterPeriodo(filtros);

            var totalEstudantes = await ObterTotalEstudantes(filtros);

            var totalFrequencia = await ObterTotalFrequencia(filtros);

            var encaminhamento = await ObterEncaminhamento(filtros);

            var resultado = await ObterResultados(filtros);


            if ((resultado == null || !resultado.Any()) && (encaminhamento == null || !encaminhamento.Any()))
            {
                throw new NegocioException("Não foi possível localizar dados com os filtros informados.");
            }

            var relatorioResumoPAPDto = new ResumoPAPDto()
            {
                Ano                = filtros.Ano != "0" ? filtros.Ano : "Todos",
                AnoLetivo          = filtros.AnoLetivo,
                Ciclo              = ciclo.Descricao,
                Data               = DateTime.Now.ToString("dd/MM/yyyy"),
                DreNome            = dreUe.DreNome,
                EhEncaminhamento   = (filtros.Periodo == (int)PeriodoRecuperacaoParalela.Encaminhamento),
                EncaminhamentoDto  = encaminhamento != null && encaminhamento.Any() ? encaminhamento.ToList() : null,
                FrequenciaDto      = totalFrequencia,
                Periodo            = periodo.Nome,
                ResultadoDto       = resultado != null && resultado.Any() ? resultado.ToList() : null,
                TotalEstudantesDto = totalEstudantes,
                Turma              = turma.Nome,
                UeNome             = dreUe.UeNome,
                UsuarioNome        = filtros.UsuarioNome,
                UsuarioRF          = filtros.UsuarioRf
            };

            await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioResumosPAP", relatorioResumoPAPDto, request.CodigoCorrelacao));
        }
        public async Task Executar(FiltroRelatorioDto request)
        {
            var relatorioQuery = request.ObterObjetoFiltro <ObterRelatorioBoletimEscolarQuery>();
            var relatorio      = await mediator.Send(relatorioQuery);

            var jsonString = JsonConvert.SerializeObject(relatorio, UtilJson.ObterConfigConverterNulosEmVazio());

            if (relatorioQuery.Modalidade == Modalidade.EJA)
            {
                await mediator.Send(new GerarRelatorioAssincronoCommand("/sgp/RelatorioBoletimEscolarEja/BoletimEscolarEja", jsonString, TipoFormatoRelatorio.Pdf, request.CodigoCorrelacao));
            }
            else
            {
                await mediator.Send(new GerarRelatorioAssincronoCommand("/sgp/RelatorioBoletimEscolar/BoletimEscolar", jsonString, TipoFormatoRelatorio.Pdf, request.CodigoCorrelacao));
            }
        }
Exemplo n.º 12
0
        public async Task Executar(FiltroRelatorioDto request)
        {
            var filtros = request.ObterObjetoFiltro <FiltroConselhoClasseAtaFinalDto>();

            var mensagensErro    = new StringBuilder();
            var relatoriosTurmas = await mediator.Send(new ObterRelatorioConselhoClasseAtaFinalPdfQuery(filtros, request.UsuarioLogadoRF, request.PerfilUsuario));

            if (!relatoriosTurmas.Any())
            {
                throw new NegocioException("Não há dados para o relatório de Ata Final de Resultados.");
            }

            switch (filtros.TipoFormatoRelatorio)
            {
            case TipoFormatoRelatorio.Xlsx:
                var relatorioDto = await mediator.Send(new ObterRelatorioConselhoClasseAtaFinalExcelQuery()
                {
                    ObjetoExportacao = relatoriosTurmas
                });

                if (relatorioDto == null)
                {
                    throw new NegocioException("Não foi possível transformar os dados obtidos em dados excel.");
                }

                await mediator.Send(new GerarRelatorioAtaFinalExcelCommand(relatorioDto, relatoriosTurmas, "RelatorioAtasComColunaFinal", request.UsuarioLogadoRF));

                break;

            case TipoFormatoRelatorio.Pdf:
                await mediator.Send(new GerarRelatorioAtaFinalHtmlParaPdfCommand("RelatorioAtasComColunaFinal.html", relatoriosTurmas, request.CodigoCorrelacao, mensagensErro.ToString()));

                break;

            case TipoFormatoRelatorio.Rtf:
            case TipoFormatoRelatorio.Html:
            case TipoFormatoRelatorio.Xls:
            case TipoFormatoRelatorio.Csv:
            case TipoFormatoRelatorio.Xml:
            case TipoFormatoRelatorio.Docx:
            case TipoFormatoRelatorio.Odt:
            case TipoFormatoRelatorio.Ods:
            case TipoFormatoRelatorio.Jrprint:
            default:
                throw new NegocioException($"Não foi possível exportar este relátorio para o formato {filtros.TipoFormatoRelatorio}");
            }
        }
        public async Task Executar(FiltroRelatorioDto request)
        {
            try
            {
                var filtro       = request.ObterObjetoFiltro <FiltroRelatorioUsuariosDto>();
                var relatorioDto = new RelatorioUsuarioDto();

                await ObterFiltroRelatorio(relatorioDto, filtro, request.UsuarioLogadoRF);
                await ObterDadosRelatorioUsuarios(relatorioDto, filtro);

                await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioUsuarios", relatorioDto, request.CodigoCorrelacao));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Exemplo n.º 14
0
        public async Task Executar(FiltroRelatorioDto request)
        {
            var filtros = request.ObterObjetoFiltro <FiltroRelatorioRecuperacaoParalelaDto>();

            // Obter dados de dre e ue
            var dreUe = await ObterDadosDreUe(filtros);

            // Obter dados de aluno
            var alunos = await ObterDadosAlunos(filtros);

            // Obter seções
            var secoes = await mediator.Send(new ObterRelatorioRecuperacaoParalelaAlunoSecaoQuery()
            {
                TurmaCodigo = filtros.TurmaCodigo, AlunoCodigo = filtros.AlunoCodigo, Semestre = filtros.Semestre
            });

            var turma = await mediator.Send(new ObterTurmaQuery(filtros.TurmaCodigo));

            if (turma == null)
            {
                throw new NegocioException($"Não foi possível obter os dados da turma {filtros.TurmaCodigo}");
            }

            var relatorioRecuperacaoParalelaDto = new RelatorioRecuperacaoParalelaDto(dreUe.DreNome, dreUe.UeNome)
            {
                Semestre    = filtros.Semestre,
                UsuarioNome = filtros.UsuarioNome,
                AnoLetivo   = secoes.FirstOrDefault().AnoLetivo,
                UsuarioRF   = filtros.UsuarioRf
            };

            //Obter Dados da turma Regular
            var turmaRegularDaTurmaRec = await mediator.Send(new ObterAlunosTurmasRegularesPorTurmaRecuperacaoCodigoQuery(long.Parse(filtros.TurmaCodigo)));

            if (turmaRegularDaTurmaRec == null || !turmaRegularDaTurmaRec.Any())
            {
                throw new NegocioException($"Não foi possível obter as turmas regulares da turma {filtros.TurmaCodigo}.");
            }


            // Prencher Alunos
            PreencherAlunos(alunos, filtros, secoes, relatorioRecuperacaoParalelaDto, turmaRegularDaTurmaRec, turma);

            await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioRecuperacaoParalela", relatorioRecuperacaoParalelaDto, request.CodigoCorrelacao));
        }
        public async Task Executar(FiltroRelatorioDto request)
        {
            try
            {
                var filtro       = request.ObterObjetoFiltro <FiltroRelatorioLeituraComunicadosDto>();
                var relatorioDto = new RelatorioLeituraComunicadosDto();

                filtro.Turma = filtro.Turma == "-99" ? "" : filtro.Turma;

                await ObterFiltroRelatorio(relatorioDto, filtro, request.UsuarioLogadoRF);
                await ObterDadosRelatorio(relatorioDto, filtro);

                await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioEscolaAquiLeituraComunicados", relatorioDto, request.CodigoCorrelacao));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public async Task Executar(FiltroRelatorioDto request)
        {
            var relatorioFiltros = request.ObterObjetoFiltro <FiltroRelatorioParecerConclusivoDto>();

            var resultado = await mediator.Send(new ObterRelatorioParecerConclusivoQuery()
            {
                filtroRelatorioParecerConclusivoDto = relatorioFiltros, UsuarioRf = request.UsuarioLogadoRF
            });

            switch (relatorioFiltros.TipoFormatoRelatorio)
            {
            case TipoFormatoRelatorio.Xlsx:
                var dadosExcel = await mediator.Send(new ObterRelatorioParecerConclusivoExcelQuery()
                {
                    RelatorioParecerConclusivo = resultado
                });

                if (dadosExcel == null)
                {
                    throw new NegocioException("Não foi possível transformar os dados obtidos em dados excel.");
                }
                await mediator.Send(new GerarExcelGenericoCommand(dadosExcel.ToList <object>(), "RelatorioParecerConclusivo", request.CodigoCorrelacao));

                break;

            case TipoFormatoRelatorio.Pdf:
                await GerarRelatorioPdf(mediator, resultado, request.CodigoCorrelacao);

                break;

            case TipoFormatoRelatorio.Rtf:
            case TipoFormatoRelatorio.Html:
            case TipoFormatoRelatorio.Xls:
            case TipoFormatoRelatorio.Csv:
            case TipoFormatoRelatorio.Xml:
            case TipoFormatoRelatorio.Docx:
            case TipoFormatoRelatorio.Odt:
            case TipoFormatoRelatorio.Ods:
            case TipoFormatoRelatorio.Jrprint:
            default:
                throw new NegocioException($"Não foi possível exportar este relátorio para o formato {relatorioFiltros.TipoFormatoRelatorio}");
            }
        }
        public async Task Executar(FiltroRelatorioDto request)
        {
            var filtros = request.ObterObjetoFiltro <FiltroRelatorioResumoPAPDto>();

            // Obter dados de dre e ue
            var dreUe = await ObterDadosDreUe(filtros);

            // Obter dados de dre e ue
            var turma = await ObterDadosTurma(filtros);

            var ciclo = await ObterCiclo(filtros);

            var periodo = await ObterPeriodo(filtros);

            var totalEstudantes = await ObterTotalEstudantes(filtros);

            var totalFrequencia = await ObterTotalFrequencia(filtros);

            var encaminhamento = await ObterEncaminhamento(filtros);

            var resultado = await ObterResultados(filtros);

            var graficos = ObterGraficos(totalEstudantes, totalFrequencia, encaminhamento, resultado);

            var relatorioGraficoPAPDto = new GraficoPAPDto()
            {
                Ano              = filtros.Ano != "0" ? filtros.Ano : "Todos",
                AnoLetivo        = filtros.AnoLetivo,
                Ciclo            = ciclo.Descricao,
                Data             = DateTime.Now.ToString("dd/MM/yyyy"),
                DreNome          = dreUe.DreNome,
                EhEncaminhamento = (filtros.Periodo == (int)PeriodoRecuperacaoParalela.Encaminhamento),
                Periodo          = periodo.Nome,
                GraficosDto      = graficos,
                Turma            = turma.Nome,
                UeNome           = dreUe.UeNome,
                UsuarioNome      = filtros.UsuarioNome,
                UsuarioRF        = filtros.UsuarioRf
            };

            await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioGraficosPAP", relatorioGraficoPAPDto, request.CodigoCorrelacao));
        }
Exemplo n.º 18
0
        public async Task Executar(FiltroRelatorioDto request)
        {
            var filtros = request.ObterObjetoFiltro <RelatorioImpressaoCalendarioFiltroDto>();

            Dre dre = null;

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

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

            if (!string.IsNullOrEmpty(filtros.UeCodigo))
            {
                ue = await mediator.Send(new ObterUePorCodigoQuery(filtros.UeCodigo));

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

            var tipoCalendario = await mediator.Send(new ObterTipoCalendarioPorIdQuery(filtros.TipoCalendarioId));

            if (tipoCalendario == null)
            {
                throw new NegocioException("Não foi possível localizar o Tipo de Calendário.");
            }

            var relatorio = await mediator.Send(new ObterRelatorioImpressaoCalendarioQuery(dre, ue, tipoCalendario,
                                                                                           filtros.EhSME, filtros.UsuarioRF, filtros.UsuarioPerfil, filtros.ConsideraPendenteAprovacao, filtros.PodeVisualizarEventosOcorrenciaDre));

            await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioImpressaoCalendario", relatorio, request.CodigoCorrelacao));
        }
Exemplo n.º 19
0
        public async Task Executar(FiltroRelatorioDto request)
        {
            try
            {
                var relatorioQuery  = request.ObterObjetoFiltro <ObterRelatorioConselhoClasseTurmaQuery>();
                var relatorioAlunos = await mediator.Send(relatorioQuery);

                relatorioAlunos = relatorioAlunos.OrderBy(a => a.AlunoNome);

                string jsonString;

                if (relatorioAlunos.FirstOrDefault() is RelatorioConselhoClasseBimestre)
                {
                    List <RelatorioConselhoClasseBimestre> listBimestre = relatorioAlunos.Cast <RelatorioConselhoClasseBimestre>().ToList();
                    jsonString = JsonSerializer.Serialize(new { RelatorioConselhoDeClasse = listBimestre });
                }
                else
                {
                    List <RelatorioConselhoClasseFinal> listFinal = relatorioAlunos.Cast <RelatorioConselhoClasseFinal>().ToList();
                    jsonString = JsonSerializer.Serialize(new { RelatorioConselhoDeClasse = listFinal });
                }

                var urlRelatorio = "";

                if (relatorioAlunos.FirstOrDefault().EhBimestreFinal)
                {
                    urlRelatorio = "/sgp/RelatorioConselhoClasse/ConselhoClasseAbaFinal";
                }
                else
                {
                    urlRelatorio = "/sgp/RelatorioConselhoClasse/ConselhoClasse";
                }

                await mediator.Send(new GerarRelatorioAssincronoCommand(urlRelatorio, jsonString, TipoFormatoRelatorio.Pdf, request.CodigoCorrelacao));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 20
0
        public async Task Executar(FiltroRelatorioDto request)
        {
            var filtros = request.ObterObjetoFiltro <FiltroRelatorioNotasEConceitosFinaisDto>();
            var relatorioNotasEConceitosFinaisDto = await mediator.Send(new ObterRelatorioNotasEConceitosFinaisPdfQuery(filtros));

            switch (filtros.TipoFormatoRelatorio)
            {
            case TipoFormatoRelatorio.Xlsx:
                var relatorioDto = await mediator.Send(new ObterRelatorioNotasEConceitosFinaisExcelQuery()
                {
                    RelatorioNotasEConceitosFinais = relatorioNotasEConceitosFinaisDto
                });

                if (relatorioDto == null)
                {
                    throw new NegocioException("Não foi possível transformar os dados obtidos em dados excel.");
                }

                await mediator.Send(new GerarExcelGenericoCommand(relatorioDto.ToList <object>(), "RelatorioNotasEConceitosFinais", request.CodigoCorrelacao));

                break;

            case TipoFormatoRelatorio.Pdf:
                await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioNotasEConceitosFinais", relatorioNotasEConceitosFinaisDto, request.CodigoCorrelacao));

                break;

            case TipoFormatoRelatorio.Rtf:
            case TipoFormatoRelatorio.Html:
            case TipoFormatoRelatorio.Xls:
            case TipoFormatoRelatorio.Csv:
            case TipoFormatoRelatorio.Xml:
            case TipoFormatoRelatorio.Docx:
            case TipoFormatoRelatorio.Odt:
            case TipoFormatoRelatorio.Ods:
            case TipoFormatoRelatorio.Jrprint:
            default:
                throw new NegocioException($"Não foi possível exportar este relátorio para o formato {filtros.TipoFormatoRelatorio}");
            }
        }
Exemplo n.º 21
0
        public async Task Executar(FiltroRelatorioDto request)
        {
            var relatorioFiltros = request.ObterObjetoFiltro <FiltroRelatorioFaltasFrequenciasDto>();

            var dadosRelatorio = await mediator.Send(new ObterRelatorioFaltasFrequenciaPdfQuery(relatorioFiltros));

            switch (relatorioFiltros.TipoFormatoRelatorio)
            {
            case TipoFormatoRelatorio.Xlsx:
                var relatorioDto = await mediator.Send(new ObterRelatorioFaltasFrequenciasExcelQuery()
                {
                    RelatorioFaltasFrequencias = dadosRelatorio, TipoRelatorio = relatorioFiltros.TipoRelatorio
                });

                if (relatorioDto == null)
                {
                    throw new NegocioException("Não foi possível transformar os dados obtidos em dados excel.");
                }

                switch (relatorioFiltros.TipoRelatorio)
                {
                case TipoRelatorioFaltasFrequencia.Ambos:
                    var relatorioAmbos = relatorioDto.OfType <RelatorioFaltasFrequenciasExcelDto>();
                    await mediator.Send(new GerarExcelGenericoCommand(relatorioAmbos.ToList <object>(), "Faltas Frequencias", request.CodigoCorrelacao));

                    break;

                case TipoRelatorioFaltasFrequencia.Faltas:
                    var relatorioFaltas = relatorioDto.OfType <RelatorioFaltasExcelDto>();
                    await mediator.Send(new GerarExcelGenericoCommand(relatorioFaltas.ToList <object>(), "Faltas Frequencias", request.CodigoCorrelacao));

                    break;

                case TipoRelatorioFaltasFrequencia.Frequencia:
                    var relatorioFrequencias = relatorioDto.OfType <RelatorioFrequenciasExcelDto>();
                    await mediator.Send(new GerarExcelGenericoCommand(relatorioFrequencias.ToList <object>(), "Faltas Frequencias", request.CodigoCorrelacao));

                    break;

                default:
                    throw new NegocioException($"Não foi possível exportar este relátorio para o tipo {relatorioFiltros.TipoRelatorio}");
                }
                break;

            case TipoFormatoRelatorio.Pdf:
                await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioFaltasFrequencias", dadosRelatorio, request.CodigoCorrelacao));

                break;

            case TipoFormatoRelatorio.Rtf:
            case TipoFormatoRelatorio.Html:
            case TipoFormatoRelatorio.Xls:
            case TipoFormatoRelatorio.Csv:
            case TipoFormatoRelatorio.Xml:
            case TipoFormatoRelatorio.Docx:
            case TipoFormatoRelatorio.Odt:
            case TipoFormatoRelatorio.Ods:
            case TipoFormatoRelatorio.Jrprint:
            default:
                throw new NegocioException($"Não foi possível exportar este relátorio para o formato {relatorioFiltros.TipoFormatoRelatorio}");
            }
        }
        public async Task Executar(FiltroRelatorioDto request)
        {
            var filtros = request.ObterObjetoFiltro <FiltroHistoricoEscolarDto>();

            var legenda = new LegendaDto(await ObterLegenda());

            var cabecalho = await MontarCabecalho(filtros);

            var alunosTurmas = await MontarAlunosTurmas(filtros);

            var alunosTurmasTransferencia = await MontarAlunosTurmasTransferencia(filtros);

            if ((alunosTurmas == null || !alunosTurmas.Any()) &&
                (alunosTurmasTransferencia == null || !alunosTurmasTransferencia.Any()))
            {
                throw new NegocioException("Não foi encontrado nenhum histórico de promoção e transferência para o(s) aluno(s) da turma.");
            }

            var alunosTransferenciaSemHistorico = alunosTurmasTransferencia.Where(tf => !alunosTurmas.Select(a => a.Aluno.Codigo).Contains(tf.Aluno.Codigo));

            var todosAlunosTurmas = new List <AlunoTurmasHistoricoEscolarDto>();

            if (alunosTransferenciaSemHistorico != null && alunosTransferenciaSemHistorico.Any())
            {
                filtros.AlunosCodigo = alunosTransferenciaSemHistorico.Select(a => a.Aluno.Codigo).ToArray();
                var alunosTransferenciaTurmas = await MontarAlunosTurmas(filtros);

                if (alunosTransferenciaTurmas != null && alunosTransferenciaTurmas.Any())
                {
                    todosAlunosTurmas.AddRange(alunosTransferenciaTurmas);
                }
            }

            if (alunosTurmas != null && alunosTurmas.Any())
            {
                todosAlunosTurmas.AddRange(alunosTurmas);
            }

            if (alunosTurmasTransferencia != null && alunosTurmasTransferencia.Any())
            {
                todosAlunosTurmas.AddRange(alunosTurmasTransferencia);
            }

            var todasTurmas = todosAlunosTurmas.SelectMany(a => a.Turmas).DistinctBy(t => t.Codigo);
            var todosAlunos = todosAlunosTurmas.Select(a => a.Aluno).DistinctBy(t => t.Codigo);

            var turmasCodigo = todasTurmas.Select(a => a.Codigo);
            var alunosCodigo = todosAlunos.Select(a => a.Codigo);

            IEnumerable <IGrouping <long, UeConclusaoPorAlunoAno> > historicoUes = null;

            if (todosAlunos != null && todosAlunos.Any())
            {
                historicoUes = await ObterUesConclusao(alunosCodigo.Select(long.Parse).ToArray(), filtros.Modalidade);
            }

            var componentesCurriculares = await ObterComponentesCurricularesTurmasRelatorio(turmasCodigo.ToArray(), filtros.UeCodigo, filtros.Modalidade, filtros.Usuario);

            var areasDoConhecimento = await ObterAreasConhecimento(componentesCurriculares);

            var dre = await ObterDrePorCodigo(filtros.DreCodigo);

            var ue = await ObterUePorCodigo(filtros.UeCodigo);

            var enderecoAtoUe = await ObterEnderecoAtoUe(filtros.UeCodigo);

            var tipoNotas = await ObterTiposNotaRelatorio();

            var notas = await ObterNotasAlunos(turmasCodigo.ToArray(), alunosCodigo.ToArray());

            var frequencias = await ObterFrequenciasAlunos(turmasCodigo.ToArray(), alunosCodigo.ToArray());

            var mediasFrequencia = await ObterMediasFrequencia();

            var dadosData = await ObterDadosData(filtros.PreencherDataImpressao);

            FuncionarioDto dadosDiretor = null, dadosSecretario = null;

            if (filtros.ImprimirDadosResponsaveis)
            {
                dadosDiretor = await ObterFuncionarioUePorCargo(filtros.UeCodigo, (int)Cargo.Diretor);

                dadosSecretario = await ObterFuncionarioUePorCargo(filtros.UeCodigo, (int)Cargo.Secretario);
            }

            var turmasHistorico     = alunosTurmas.SelectMany(t => t.Turmas).DistinctBy(t => t.Codigo);
            var turmasTransferencia = alunosTurmasTransferencia.SelectMany(t => t.Turmas).DistinctBy(t => t.Codigo);

            var turmasEja       = turmasHistorico.Where(t => t.ModalidadeCodigo == Modalidade.EJA);
            var turmasFundMedio = turmasHistorico.Where(t => t.ModalidadeCodigo != Modalidade.EJA);

            IEnumerable <HistoricoEscolarDTO>    resultadoFundMedio = null, resultadoFinalFundamental = null, resultadoFinalMedio = null;
            IEnumerable <HistoricoEscolarEJADto> resultadoEJA           = null;
            IEnumerable <TransferenciaDto>       resultadoTransferencia = null;

            if (turmasTransferencia != null && turmasTransferencia.Any())
            {
                resultadoTransferencia = await mediator.Send(new MontarHistoricoEscolarTransferenciaQuery(areasDoConhecimento, componentesCurriculares, alunosTurmasTransferencia, mediasFrequencia, notas,
                                                                                                          frequencias, tipoNotas, turmasTransferencia.Select(a => a.Codigo).Distinct().ToArray()));
            }

            if ((turmasFundMedio != null && turmasFundMedio.Any()) || (turmasTransferencia != null && turmasTransferencia.Any(t => t.ModalidadeCodigo != Modalidade.EJA)))
            {
                resultadoFundMedio = await mediator.Send(new MontarHistoricoEscolarQuery(dre, ue, areasDoConhecimento, componentesCurriculares, todosAlunosTurmas, mediasFrequencia, notas,
                                                                                         frequencias, tipoNotas, resultadoTransferencia, turmasFundMedio?.Select(a => a.Codigo).Distinct().ToArray(), cabecalho, legenda, dadosData, dadosDiretor, dadosSecretario,
                                                                                         historicoUes, filtros.PreencherDataImpressao, filtros.ImprimirDadosResponsaveis));
            }
            else if ((turmasEja != null && turmasEja.Any()) || (turmasTransferencia != null && turmasTransferencia.Any(t => t.ModalidadeCodigo == Modalidade.EJA)))
            {
                resultadoEJA = await mediator.Send(new MontarHistoricoEscolarEJAQuery(dre, ue, areasDoConhecimento, componentesCurriculares, todosAlunosTurmas, mediasFrequencia, notas,
                                                                                      frequencias, tipoNotas, resultadoTransferencia, turmasEja?.Select(a => a.Codigo).Distinct().ToArray(), cabecalho, legenda, dadosData, dadosDiretor, dadosSecretario,
                                                                                      historicoUes, filtros.PreencherDataImpressao, filtros.ImprimirDadosResponsaveis));
            }

            if (resultadoFundMedio != null && resultadoFundMedio.Any())
            {
                resultadoFinalFundamental = resultadoFundMedio.Where(a => a.Modalidade == Modalidade.Fundamental);
                resultadoFinalMedio       = resultadoFundMedio.Where(a => a.Modalidade == Modalidade.Medio);

                foreach (var item in resultadoFinalMedio)
                {
                    item.Legenda.Texto = string.Empty;
                }
            }

            if ((resultadoFinalFundamental != null && resultadoFinalFundamental.Any()) ||
                (resultadoFinalMedio != null && resultadoFinalMedio.Any()) ||
                (resultadoEJA != null && resultadoEJA.Any()))
            {
                if (resultadoEJA != null && resultadoEJA.Any())
                {
                    await EnviaRelatorioEJA(resultadoEJA, request.CodigoCorrelacao);
                }

                if (resultadoFinalFundamental != null && resultadoFinalFundamental.Any())
                {
                    await EnviaRelatorioFundamental(resultadoFinalFundamental, request.CodigoCorrelacao);
                }

                if (resultadoFinalMedio != null && resultadoFinalMedio.Any())
                {
                    await EnviaRelatorioMedio(resultadoFinalMedio, request.CodigoCorrelacao);
                }
            }
            else
            {
                throw new NegocioException("Não foi possível localizar informações com os filtros selecionados");
            }
        }
        public async Task Executar(FiltroRelatorioDto request)
        {
            var filtros = request.ObterObjetoFiltro <FiltroRelatorioCompensacaoAusenciaDto>();

            var ue = await mediator.Send(new ObterUePorCodigoQuery(filtros.UeCodigo));

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

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

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

            var turmaCodigo = "";

            if (filtros.TurmasCodigo != null && filtros.TurmasCodigo.Length > 0)
            {
                turmaCodigo = filtros.TurmasCodigo[0];
            }


            var compensacoes = await mediator.Send(new ObterCompensacoesAusenciaPorUeModalidadeSemestreComponenteBimestreQuery(ue.Id, filtros.Modalidade, filtros.Semestre, turmaCodigo, filtros.ComponentesCurriculares, filtros.Bimestre, filtros.AnoLetivo));

            if (!compensacoes.Any())
            {
                throw new NegocioException("Não foi possível obter compensações de ausências com os filtros informados.");
            }

            var alunosCodigos = compensacoes.Select(a => a.AlunoCodigo).Distinct().ToArray();

            var alunos = await mediator.Send(new ObterDadosAlunosPorCodigosQuery(alunosCodigos));

            var turmasCodigo = compensacoes.Select(a => a.TurmaCodigo).Distinct().ToArray();

            var bimestres = compensacoes.Select(a => a.Bimestre).Distinct().ToArray();

            var componetesCurricularesCodigo = compensacoes.Select(a => a.DisciplinaId).Distinct().ToArray();

            var componentesCurriculares = await mediator.Send(new ObterComponentesCurricularesEolPorIdsQuery()
            {
                ComponentesCurricularesIds = componetesCurricularesCodigo
            });

            if (componentesCurriculares == null || !componentesCurriculares.Any())
            {
                throw new NegocioException("Não foi possível obter os componentes curriculares.");
            }


            var frequencias = await mediator.Send(new ObterFrequenciaAlunoPorComponentesBimestresETurmasQuery(turmasCodigo, bimestres, componetesCurricularesCodigo));

            var result = await mediator.Send(new RelatorioCompensacaoAusenciaObterResultadoFinalQuery(filtros, ue, dre, componentesCurriculares, compensacoes, alunos, frequencias));


            await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioCompensacaoAusencia", result, request.CodigoCorrelacao));
        }
Exemplo n.º 24
0
        public async Task Executar(FiltroRelatorioDto request)
        {
            var filtros = request.ObterObjetoFiltro <FiltroRelatorioAtribuicaoCJDto>();

            var relatorio = new RelatorioAtribuicaoCjDto();

            await MontarCabecalho(relatorio, filtros.DreCodigo, filtros.UeCodigo, filtros.Modalidade,
                                  filtros.Semestre, filtros.TurmaCodigo, filtros.UsuarioRf,
                                  request.UsuarioLogadoRF);

            var lstAtribuicaoEsporadica = await mediator.Send(new ObterAtribuicoesEsporadicasPorFiltroQuery(filtros.AnoLetivo,
                                                                                                            filtros.UsuarioRf,
                                                                                                            filtros.DreCodigo,
                                                                                                            filtros.UsuarioRf,
                                                                                                            filtros.UeCodigo));

            var lstAtribuicaoCJ = await mediator.Send(new ObterAtribuicoesCJPorFiltroQuery()
            {
                AnoLetivo  = filtros.AnoLetivo,
                DreCodigo  = filtros.DreCodigo,
                UeId       = filtros.UeCodigo,
                UsuarioRf  = filtros.UsuarioRf,
                TurmaId    = filtros.TurmaCodigo,
                Modalidade = filtros.Modalidade,
                Semestre   = filtros.Semestre
            });

            var lstServidores = new List <string>();

            lstServidores.AddRange(lstAtribuicaoEsporadica.Select(s => s.ProfessorRf));
            lstServidores.AddRange(lstAtribuicaoCJ.Select(cj => cj.ProfessorRf));

            var lstServidoresArray = lstServidores?.Distinct().ToArray();

            var cargosServidores = await mediator.Send(new ObterCargosAtividadesPorRfQuery(lstServidoresArray));

            var lstProfServidorTitulares = await mediator.Send(new ObterProfessorTitularComponenteCurricularPorCodigosRfQuery(lstServidoresArray));

            if (filtros.ExibirAtribuicoesExporadicas)
            {
                AdicionarAtribuicoesEsporadicas(relatorio, lstAtribuicaoEsporadica, cargosServidores);
            }

            var turmasId = lstAtribuicaoCJ.Select(t => t.Turma.Codigo)?.Distinct().ToArray();

            var componentesId = lstAtribuicaoCJ.Select(t => t.ComponenteCurricularId.ToString())?.Distinct().ToArray();

            var lstProfTitulares = await mediator.Send(new ObterProfessorTitularComponenteCurricularPorTurmaQuery(turmasId));

            var aulas = Enumerable.Empty <AulaVinculosDto>();

            if (filtros.ExibirAulas)
            {
                aulas = await mediator.Send(new ObterAulaVinculosPorTurmaComponenteQuery(turmasId, componentesId, true));
            }

            AdicionarAtribuicoesCJ(relatorio, lstAtribuicaoCJ, lstProfTitulares, lstProfServidorTitulares, lstAtribuicaoEsporadica, cargosServidores, aulas,
                                   filtros.TipoVisualizacao, filtros.ExibirAulas, filtros.Modalidade);

            if (string.IsNullOrEmpty(filtros.DreCodigo) || string.IsNullOrEmpty(filtros.UeCodigo))
            {
                relatorio.ExibirDre = true;
                relatorio           = await mediator.Send(new AgruparRelatorioAtribuicaoCJPorDreUeQuery(relatorio));
            }

            OrdernarRelatorio(relatorio, filtros.TipoVisualizacao);

            await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioAtribuioesCj", relatorio, request.CodigoCorrelacao));
        }