Example #1
0
        public PaginacaoModel2 <Venda, PreVenda, FiltroVenda> FiltrarVenda(PaginacaoModel2 <Venda, PreVenda, FiltroVenda> paginacao)
        {
            if (paginacao.Filtro == null)
            {
                paginacao.Filtro = new FiltroVenda(paginacao.Parametro1, paginacao.Parametro12, paginacao.Parametro13);
            }
            else
            {
                paginacao.Parametro1  = paginacao?.Filtro?.NomeCliente;
                paginacao.Parametro12 = paginacao?.Filtro?.CodigoCliente;
                paginacao.Parametro13 = paginacao?.Filtro?.ApelidoCliente;
            }
            var dataCaixa = CaixaAplicacao.ObterDataCaixaAtivo();

            if (dataCaixa == DateTime.MinValue)
            {
                dataCaixa = DateTime.Now;
            }
            var query = VendaRepositorio.Query().Where(d => d.DataVenda >= dataCaixa);

            if (paginacao.Filtro.NomeCliente.TemValor())
            {
                query = query.Where(d => d.Cliente.Nome.Contains(paginacao.Filtro.NomeCliente));
            }
            if (paginacao.Filtro.CodigoCliente.TemValor())
            {
                query = query.Where(d => d.Cliente.Codigo.Contains(paginacao.Filtro.CodigoCliente));
            }
            if (paginacao.Filtro.ApelidoCliente.TemValor())
            {
                query = query.Where(d => d.Cliente.Apelido.Contains(paginacao.Filtro.ApelidoCliente));
            }
            paginacao.ListaModel = query.OrderBy(d => d.Id).Skip(((paginacao.Pagina - 1) * 10)).Take(10).ToList();
            paginacao.QtdPaginas = query.Count().CalculaQtdPaginas().TransformaEmLista();
            foreach (var item in paginacao.ListaModel)
            {
                if (item?.Cliente == null)
                {
                    item.Cliente = ClienteAplicacao.BuscarClientePorId(item.IdCliente);
                }
            }
            return(paginacao);
        }