public async Task <Guid> RelatorioFaltasFrequencias([FromBody] FiltroRelatorioFaltasFrequenciasDto filtro, [FromServices] IRelatorioFaltasFrequenciasUseCase relatorioFaltasFrequenciasUseCase) { var codigoCorrelacao = Guid.NewGuid(); await relatorioFaltasFrequenciasUseCase.Executar(new FiltroRelatorioDto() { CodigoCorrelacao = codigoCorrelacao, Mensagem = JsonConvert.SerializeObject(filtro) }); return(codigoCorrelacao); }
private static void DefinirNomeBimestre(RelatorioFaltasFrequenciaDto model, FiltroRelatorioFaltasFrequenciasDto filtro) { var selecionouTodosBimestres = filtro.Bimestres.Any(c => c == -99); var selecionouBimestreFinal = filtro.Bimestres.Any(c => c == 0); model.Bimestre = selecionouTodosBimestres ? "Todos" : filtro.Bimestres.Count() > 1 ? string.Empty : selecionouBimestreFinal ? "Final" : filtro.Bimestres.FirstOrDefault().ToString(); }
private static void OrdenarAlunos(FiltroRelatorioFaltasFrequenciasDto filtro, Dictionary <CondicoesRelatorioFaltasFrequencia, Func <double, double, bool> > operacao, RelatorioFaltaFrequenciaComponenteDto componente) { if (filtro.Condicao != CondicoesRelatorioFaltasFrequencia.TodosEstudantes) { componente.Alunos = (from a in componente.Alunos where ((filtro.TipoRelatorio == TipoRelatorioFaltasFrequencia.Faltas || filtro.TipoRelatorio == TipoRelatorioFaltasFrequencia.Ambos) ? operacao[filtro.Condicao](a.NumeroFaltasNaoCompensadas, filtro.ValorCondicao) : operacao[filtro.Condicao](a.Frequencia, filtro.ValorCondicao)) select a) .OrderByDescending(c => !string.IsNullOrWhiteSpace(c.NumeroChamada)) .ThenBy(c => c.NomeTurma) .ThenBy(c => c.NomeAluno) .ToList(); } else { componente.Alunos = (from a in componente.Alunos select a).OrderByDescending(c => !string.IsNullOrWhiteSpace(c.NumeroChamada)) .ThenBy(c => c.NomeTurma) .ThenBy(c => c.NomeAluno) .ToList(); } }
private static void DefinirNomeComponente(RelatorioFaltasFrequenciaDto model, FiltroRelatorioFaltasFrequenciasDto filtro, IEnumerable <Data.ComponenteCurricular> componentes) { var selecionouTodosComponentes = filtro.ComponentesCurriculares.Any(c => c == "-99"); var primeiroComponente = filtro.ComponentesCurriculares.FirstOrDefault(); model.ComponenteCurricular = selecionouTodosComponentes ? "Todos" : filtro.ComponentesCurriculares.Count() == 1 ? componentes.FirstOrDefault(c => c.Codigo.ToString() == primeiroComponente).Descricao : string.Empty; }
private static void DefinirCabecalho(ObterRelatorioFaltasFrequenciaPdfQuery request, RelatorioFaltasFrequenciaDto model, FiltroRelatorioFaltasFrequenciasDto filtro, IEnumerable <RelatorioFaltaFrequenciaDreDto> dres, IEnumerable <Data.ComponenteCurricular> componentes) { var selecionouTodasDres = string.IsNullOrWhiteSpace(filtro.CodigoDre) || filtro.CodigoDre == "-99"; var selecionouTodasUes = string.IsNullOrWhiteSpace(filtro.CodigoUe) || filtro.CodigoUe == "-99"; model.Dres = dres.ToList(); model.Dres.RemoveAll(c => !c.Ues.Any()); model.Dre = selecionouTodasDres ? "Todas" : dres.FirstOrDefault().NomeDre; model.Ue = selecionouTodasUes ? "Todas" : dres.FirstOrDefault().Ues.FirstOrDefault().NomeUe; var selecionouTodosAnos = filtro.AnosEscolares.Any(c => c == "-99"); var ano = filtro.AnosEscolares.FirstOrDefault(); model.Ano = selecionouTodosAnos && !(filtro.Modalidade == Modalidade.EJA) ? "Todos" : filtro.AnosEscolares.Count() > 1 ? string.Empty : ano == "-99" ? "Todos" : ano; DefinirNomeBimestre(model, filtro); DefinirNomeComponente(model, filtro, componentes); model.Usuario = request.Filtro.NomeUsuario; model.RF = request.Filtro.CodigoRf; model.Data = DateTime.Now.ToString("dd/MM/yyyy"); model.ExibeFaltas = filtro.TipoRelatorio == TipoRelatorioFaltasFrequencia.Faltas || filtro.TipoRelatorio == TipoRelatorioFaltasFrequencia.Ambos; model.ExibeFrequencia = filtro.TipoRelatorio == TipoRelatorioFaltasFrequencia.Frequencia || filtro.TipoRelatorio == TipoRelatorioFaltasFrequencia.Ambos; var semestreEja = ""; if (filtro.Modalidade == Modalidade.EJA) { semestreEja = $"{filtro.Semestre} Semestre"; } model.Modalidade = $"{filtro.Modalidade.Name()} {semestreEja}"; }
private List <RelatorioFaltaFrequenciaDreDto> FiltrarFaltasFrequencia(List <RelatorioFaltaFrequenciaDreDto> dres, FiltroRelatorioFaltasFrequenciasDto filtro) { Dictionary <CondicoesRelatorioFaltasFrequencia, Func <double, double, bool> > operacao = new Dictionary <CondicoesRelatorioFaltasFrequencia, Func <double, double, bool> >(); operacao.Add(CondicoesRelatorioFaltasFrequencia.Igual, (valor, valorFiltro) => valor == valorFiltro); operacao.Add(CondicoesRelatorioFaltasFrequencia.Maior, (valor, valorFiltro) => valor > valorFiltro); operacao.Add(CondicoesRelatorioFaltasFrequencia.Menor, (valor, valorFiltro) => valor < valorFiltro); if (dres != null) { foreach (var dre in dres) { if (dre.Ues != null) { dre.Ues = dre.Ues.OrderBy(c => c.NomeUe).ToList(); } foreach (var ue in dre.Ues) { foreach (var ano in ue.Anos) { foreach (var bimestre in ano.Bimestres) { foreach (var componente in bimestre.Componentes) { OrdenarAlunos(filtro, operacao, componente); } bimestre.Componentes.RemoveAll(c => !c.Alunos.Any()); bimestre.Componentes = bimestre.Componentes.OrderBy(c => c.NomeComponente).ToList(); } ano.Bimestres.RemoveAll(c => !c.Componentes.Any()); } ue.Anos.RemoveAll(c => !c.Bimestres.Any()); } dre.Ues.RemoveAll(c => !c.Anos.Any()); } dres.RemoveAll(c => !c.Ues.Any()); dres = dres.OrderBy(c => c.NomeDre).ToList(); } return(dres); }
public ObterRelatorioFaltasFrequenciaPdfQuery(FiltroRelatorioFaltasFrequenciasDto filtro) { Filtro = filtro; }