public ActionResult PesquisarOrdensCompra(OrdemCompraPesquisaFiltro filtro) { int totalRegistros = 0; List <OrdemCompraDTO> result = ordemCompraAppService.PesquisarOrdensCompraPeloFiltro(filtro, out totalRegistros); if (result.Any()) { var listaViewModel = CreateListaViewModel(filtro, totalRegistros, result); return(PartialView("ListaPesquisaPartial", listaViewModel)); } return(PartialView("_EmptyListPartial")); }
public List <OrdemCompraDTO> PesquisarOrdensCompraPeloFiltro(OrdemCompraPesquisaFiltro filtro, out int totalRegistros) { var specification = (Specification <Domain.Entity.OrdemCompra.OrdemCompra>) new TrueSpecification <Domain.Entity.OrdemCompra.OrdemCompra>(); int?inicio; int?fim; bool EhTipoSelecaoContem = filtro.TipoSelecao == TipoPesquisa.Contem; switch (filtro.Campo) { case "centroCusto": specification &= EhTipoSelecaoContem ? OrdemCompraSpecification.CentroCustoContem(filtro.TextoInicio) : OrdemCompraSpecification.CentroCustoNoIntervalo(filtro.TextoInicio, filtro.TextoFim); break; case "dataOrdemCompra": Nullable <DateTime> datInicio = !string.IsNullOrEmpty(filtro.TextoInicio) ? Convert.ToDateTime(filtro.TextoInicio) : (Nullable <DateTime>)null; Nullable <DateTime> datFim = !string.IsNullOrEmpty(filtro.TextoFim) ? Convert.ToDateTime(filtro.TextoFim) : (Nullable <DateTime>)null; specification &= EhTipoSelecaoContem ? OrdemCompraSpecification.DataOrdemCompraContem(datInicio) : OrdemCompraSpecification.DataOrdemCompraNoIntervalo(datInicio, datFim); break; case "fornecedor": specification &= EhTipoSelecaoContem ? OrdemCompraSpecification.FornecedorContem(filtro.TextoInicio) : OrdemCompraSpecification.FornecedorNoIntervalo(filtro.TextoInicio, filtro.TextoFim); break; case "id": default: inicio = !string.IsNullOrEmpty(filtro.TextoInicio) ? Convert.ToInt32(filtro.TextoInicio) : (int?)null; fim = !string.IsNullOrEmpty(filtro.TextoFim) ? Convert.ToInt32(filtro.TextoFim) : (int?)null; specification &= EhTipoSelecaoContem ? OrdemCompraSpecification.MatchingId(inicio) : OrdemCompraSpecification.IdNoIntervalo(inicio, fim); break; } return(ordemCompraRepository.Pesquisar(specification, filtro.PageIndex, filtro.PageSize, filtro.OrderBy, filtro.Ascending, out totalRegistros, l => l.CentroCusto, l => l.ClienteFornecedor).To <List <OrdemCompraDTO> >()); }