public IActionResult FiltrarRepassesNivelDois([FromBody] FiltroRepasseNivelDoisDto <AprovarRepasseNivelDoisDto> filtroDto) { try { var resultBD = _repasseNivelUmService.FiltrarRepassesNivelDois(filtroDto); return(Ok(resultBD)); } catch (Exception ex) { return(BadRequest()); } }
public FiltroRepasseNivelDoisDto <AprovarRepasseNivelDoisDto> Filtrar(FiltroRepasseNivelDoisDto <AprovarRepasseNivelDoisDto> filtro) { var query = DbSet.AsQueryable().AsNoTracking(); var periodoVigente = _context.PeriodoRepasses.LastOrDefault(); //query = query.Where(x => x.PeriodoRepasse.Id == filtro.IdPeriodoRepasse); query = query.Where(x => x.DataRepasse <= periodoVigente.DtLancamentoFim && x.Status == SharedEnuns.StatusRepasseEacesso.APROVADO_NIVEL_UM.GetDescription()); if (filtro.IdsCelulasOrigem.Length > 0 && filtro.IdsCelulasDestino.Length > 0) { query = query.Where(x => filtro.IdsCelulasOrigem.Contains(x.IdCelulaOrigem) || filtro.IdsCelulasDestino.Contains(x.IdCelulaDestino)); } else if (filtro.IdsCelulasOrigem.Length > 0 && filtro.IdsCelulasDestino.Length == 0) { query = query.Where(x => filtro.IdsCelulasOrigem.Contains(x.IdCelulaOrigem)); } else if (filtro.IdsCelulasOrigem.Length == 0 && filtro.IdsCelulasDestino.Length > 0) { query = query.Where(x => filtro.IdsCelulasDestino.Contains(x.IdCelulaDestino)); } if (!string.IsNullOrEmpty(filtro.FiltroGenerico)) { query = query.Where(x => x.NomeClienteOrigem.ToUpper().Contains(filtro.FiltroGenerico.ToUpper()) || x.NomeClienteDestino.ToString().Contains(filtro.FiltroGenerico.ToUpper()) || x.NomeServicoOrigem.ToString().Contains(filtro.FiltroGenerico.ToUpper()) || x.NomeServicoDestino.ToUpper().Contains(filtro.FiltroGenerico.ToUpper())); } var dados = query.Select(p => new AprovarRepasseNivelDoisDto { Id = p.Id, Aprovado = ObterStatusAprovacaoNivelDois(p.Status), Status = p.Status, StatusDesc = ObterNomeStatus(p.Status), IdCelulaDestino = p.IdCelulaDestino, IdCelulaOrigem = p.IdCelulaOrigem, ClienteOrigem = p.NomeClienteOrigem, ClienteDestino = p.NomeClienteDestino, DataAlteracao = p.DataAlteracao, QuantidadeHoras = p.QuantidadeItens, ServicoOrigem = p.NomeServicoOrigem, ServicoDestino = p.NomeServicoDestino, Usuario = p.Usuario, DataRepasse = p.DataRepasse, ValorTotal = p.ValorTotal, ValorUnitario = p.ValorUnitario, EstaNoPeriodoVigente = DataRepasseEstaDentroDoUltimoPeriodoCadastrado(p.DataRepasse, periodoVigente), ValorCustoProfissional = p.ValorCustoProfissional, Descricao = p.DescricaoProjeto }); filtro.Total = dados.Count(); filtro.CampoOrdenacao = filtro.CampoOrdenacao.First().ToString().ToUpper() + filtro.CampoOrdenacao.Substring(1); if (filtro.OrdemOrdenacao == "asc") { dados = dados.OrderBy(x => x.GetType().GetProperty(filtro.CampoOrdenacao).GetValue(x)); } else if (filtro.OrdemOrdenacao == "desc") { dados = dados.OrderByDescending(x => x.GetType().GetProperty(filtro.CampoOrdenacao).GetValue(x)); } else { dados = dados.OrderBy(x => x.Status).ThenBy(x => x.IdCelulaOrigem).ThenBy(y => y.ClienteDestino); } filtro.Valores = dados.Skip((filtro.Pagina) * filtro.QuantidadePorPagina).Take(filtro.QuantidadePorPagina).ToList(); return(filtro); }
public FiltroRepasseNivelDoisDto <AprovarRepasseNivelDoisDto> FiltrarRepassesNivelDois(FiltroRepasseNivelDoisDto <AprovarRepasseNivelDoisDto> filtro) => _repasseNivelUmRepository.Filtrar(filtro);