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)); }
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"); }
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; } }
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)); } }
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; } }
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)); }
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)); }
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; } }
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}"); } }
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)); }
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)); }