private async Task ObterFiltroRelatorio(RelatorioLeituraComunicadosDto relatorioDto, FiltroRelatorioLeituraComunicadosDto filtro, string usuarioLogadoRF) { var filtroRelatorio = new FiltroLeituraComunicadosDto(); filtroRelatorio.Dre = await ObterNomeDre(filtro.CodigoDre); filtroRelatorio.Ue = await ObterNomeUe(filtro.CodigoUe); filtroRelatorio.Usuario = filtro.NomeUsuario; filtroRelatorio.RF = usuarioLogadoRF; if (filtro.DataInicio == null) { filtro.DataInicio = new DateTime(filtro.Ano, 1, 1); } if (filtro.DataFim == null) { filtro.DataFim = new DateTime(filtro.Ano, 12, 31); } relatorioDto.Filtro = filtroRelatorio; }
public async Task <IEnumerable <LeituraComunicadoDto> > ObterComunicadosPorFiltro(FiltroRelatorioLeituraComunicadosDto filtro) { var query = @"select comunicado.id as ComunicadoId, comunicado.titulo as Comunicado, comunicado.data_envio as DataEnvio, comunicado.data_expiracao as DataExpiracao from comunicado "; if (filtro.Grupos != null && filtro.Grupos.Any()) { query += $@" INNER JOIN comunidado_grupo cg ON comunicado.id = cg.comunicado_id "; } if (!string.IsNullOrEmpty(filtro.Turma)) { query += $@" INNER JOIN comunicado_turma ct ON comunicado.id = ct.comunicado_id "; } query += " where comunicado.ano_letivo = @AnoLetivo "; if (filtro.Grupos != null && filtro.Grupos.Any()) { query += $@" AND cg.grupo_comunicado_id = ANY(@Grupos) "; } if (!string.IsNullOrEmpty(filtro.NotificacaoId)) { query += " and comunicado.id = @NotificacaoId "; } if (!string.IsNullOrEmpty(filtro.CodigoDre) && filtro.CodigoDre != "-99") { query += " and codigo_dre = @CodigoDre "; } if (filtro.CodigoDre == "-99") { query += " and codigo_dre is null "; } if (!string.IsNullOrEmpty(filtro.CodigoUe) && filtro.CodigoUe != "-99") { query += " and codigo_ue = @CodigoUe "; } if (filtro.CodigoUe == "-99") { query += " and codigo_ue is null "; } if (filtro.Semestre > 0) { query += " and semestre = @Semestre "; } if (!filtro.ListarComunicadosExpirados) { query += " and data_expiracao >= @DataExpiracao "; } query += " and date(data_envio) between @DataInicio and @DataFim and not comunicado.excluido "; if (!string.IsNullOrEmpty(filtro.Turma)) { query += " and ct.turma_codigo = @Turma "; } using var conexao = new NpgsqlConnection(variaveisAmbiente.ConnectionStringSgp); return(await conexao.QueryAsync <LeituraComunicadoDto>(query.ToString(), new { NotificacaoId = long.Parse(!string.IsNullOrEmpty(filtro.NotificacaoId) ? filtro.NotificacaoId : "0"), filtro.AnoLetivo, filtro.CodigoDre, filtro.CodigoUe, filtro.Semestre, filtro.Grupos, filtro.Turma, DataInicio = filtro.DataInicio.GetValueOrDefault().Date, DataFim = filtro.DataFim.GetValueOrDefault().Date, DataExpiracao = DateTime.Now.Date })); }
private async Task ObterDadosRelatorio(RelatorioLeituraComunicadosDto relatorioDto, FiltroRelatorioLeituraComunicadosDto filtro) { relatorioDto.LeituraComunicadoDto = await mediator.Send(new ObterDadosLeituraComunicadosQuery(filtro)); }
public ObterDadosLeituraComunicadosQuery(FiltroRelatorioLeituraComunicadosDto filtro) { Filtro = filtro; }