Beispiel #1
0
        private Venda GravarVenda(long idCliente, List <PreVenda> preVendas)
        {
            var venda = new Venda
            {
                Cliente   = ClienteAplicacao.BuscarClientePorId(idCliente),
                DataVenda = DateTime.Now,
                IdUsuario = AutenticacaoAplicacao.ObterUsuarioLogado().Id,
                QtdItem   = RetornaQtdTotalVenda(preVendas.Select(d => d.Quantidade).ToList()),
                Valor     = RetornaValorTotalVenda(preVendas)
            };

            VendaRepositorio.Cadastrar(venda);
            GravarItemVenda(preVendas, venda);
            preVendas.ForEach(d => d.Venda = venda);
            preVendas.ForEach(d => PreVendaRepositorio.Atualizar(d));
            return(venda);
        }
Beispiel #2
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);
        }