public IActionResult FiltrarRepasses([FromBody] FiltroRepasseNivelUmDto <AprovarRepasseDto> filtroDto) { try { var resultBD = _repasseNivelUmService.FiltrarRepassesNivelUm(filtroDto); return(Ok(resultBD)); } catch (Exception ex) { return(BadRequest()); } }
public FiltroRepasseNivelUmDto <AprovarRepasseDto> Filtrar(FiltroRepasseNivelUmDto <AprovarRepasseDto> filtro) { var periodoDoFiltro = _context.PeriodoRepasses.AsNoTracking().LastOrDefault(x => x.Id == filtro.IdPeriodoRepasse); var query = DbSet.AsQueryable().AsNoTracking(); query = query.Where(x => x.DataLancamento.Month == periodoDoFiltro.DtLancamento.Month && x.DataLancamento.Year == periodoDoFiltro.DtLancamento.Year); if (_variables.CelulasComPermissao.Any() && filtro.CelulasEscolhidas.Length == 0) { filtro.CelulasEscolhidas = _variables.CelulasComPermissao.ToArray(); } if (filtro.Id == 1) { //query = query.Where(x => Variables.CelulasComPermissao.Any(y => y == x.IdCelulaDestino)); query = query.Where(x => filtro.CelulasEscolhidas.Contains(x.IdCelulaDestino)); } else { //query = query.Where(x => Variables.CelulasComPermissao.Any(y => y == x.IdCelulaOrigem)); query = query.Where(x => filtro.CelulasEscolhidas.Contains(x.IdCelulaOrigem)); } if (!string.IsNullOrEmpty(filtro.ValorParaFiltrar)) { filtro.ValorParaFiltrar = filtro.ValorParaFiltrar.Trim(); query = query.Where(x => x.NomeClienteDestino.ToUpper().Contains(filtro.ValorParaFiltrar.ToUpper()) || (x.Id.ToString().Contains(filtro.ValorParaFiltrar.ToUpper()) || (x.NomeServicoDestino.ToUpper().Contains(filtro.ValorParaFiltrar.ToUpper())))); } if (filtro.Status != null) { query = query.Where(x => x.Status == filtro.Status.GetDescription()); } var dados = query.Select(p => new AprovarRepasseDto { Id = p.Id, Aprovar = ObterStatusAprovacao(p.Status), Status = p.Status, StatusDesc = ObterNomeStatus(p.Status), IdCelulaDestino = p.IdCelulaDestino, IdCelulaOrigem = p.IdCelulaOrigem, ClienteDestino = p.NomeClienteDestino, DataAlteracao = p.DataAlteracao, QuantidadeHoras = p.QuantidadeItens, ServicoDestino = p.NomeServicoDestino, Usuario = p.Usuario, ValorTotal = p.ValorTotal, ValorUnitario = p.ValorUnitario, ValorCustoProfissional = p.ValorCustoProfissional, Desabilita = p.Status == SharedEnuns.StatusRepasseEacesso.NAO_ANALISADO.GetDescription() ? false : true, Descricao = p.DescricaoProjeto }); var lista = dados.ToList(); filtro.CampoOrdenacao = filtro.CampoOrdenacao.First().ToString().ToUpper() + filtro.CampoOrdenacao.Substring(1); if (filtro.OrdemOrdenacao == "asc") { lista = lista.OrderBy(x => x.GetType().GetProperty(filtro.CampoOrdenacao).GetValue(x)).ToList(); } else if (filtro.OrdemOrdenacao == "desc") { lista = lista.OrderByDescending(x => x.GetType().GetProperty(filtro.CampoOrdenacao).GetValue(x)).ToList(); } else { lista = lista.OrderBy(x => x.Status).ThenBy(x => x.IdCelulaOrigem).ThenBy(y => y.ClienteDestino).ToList(); } filtro.Total = dados.Count(); filtro.Valores = lista.Skip((filtro.Pagina) * filtro.QuantidadePorPagina).Take(filtro.QuantidadePorPagina).ToList(); return(filtro); }
public FiltroRepasseNivelUmDto <AprovarRepasseDto> FiltrarRepassesNivelUm(FiltroRepasseNivelUmDto <AprovarRepasseDto> filtro) => _repasseNivelUmRepository.Filtrar(filtro);