public async Task <List <PedidoViewModel> > GetUltimosPedidos(string loginUsuario) { var impressoraComanda = ParametroRepository.GetEnderecoImpressoraComanda(); var pedidos = await _contexto.Pedidos.Where(p => p.Usuario == loginUsuario && !p.PedidoExterno) .Include(s => s.Situacao) .Include(s => s.Itens) .Include(s => s.Itens.Select(i => i.ItemCardapio)) .Include(c => c.Itens.Select(i => i.Observacoes)) .Include(c => c.Itens.Select(i => i.Observacoes.Select(o => o.Observacao))) .Include(c => c.Itens.Select(i => i.Extras)) .Include(c => c.Itens.Select(i => i.Extras.Select(e => e.OpcaoExtra))) .Select(p => new PedidoViewModel { FormaPagamento = p.FormaPagamento, DataPedido = p.DataHora, CodPedido = p.CodPedido, Situacao = p.CodSituacao, DescricaoSituacao = p.Situacao.Descricao, ValorTotal = p.ValorTotal, TaxaEntrega = p.TaxaEntrega, MotivoCancelamento = p.MotivoCancelamento, FeedbackCliente = p.FeedbackCliente, ValorDesconto = p.ValorDesconto, PercentualDesconto = p.PercentualDesconto, MotivoDesconto = p.MotivoDesconto, PortaImpressaoComandaEntrega = impressoraComanda, Itens = p.Itens.Select(i => new ItemPedidoViewModel { CodItem = i.CodItemCardapio, SeqItem = i.SeqItem, DescricaoItem = i.ItemCardapio.Nome, Quantidade = i.Quantidade, PrecoUnitario = i.PrecoUnitario, ValorExtras = i.ValorExtras, ValorTotalItem = i.ValorTotal, ObservacaoLivre = i.ObservacaoLivre, Obs = i.Observacoes.Select(o => new ObservacaoItemPedidoViewModel { CodObservacao = o.CodObservacao, DescricaoObservacao = o.Observacao.DescricaoObservacao }).ToList().Union(new List <ObservacaoItemPedidoViewModel> { new ObservacaoItemPedidoViewModel { CodObservacao = (i.ObservacaoLivre != "" && i.ObservacaoLivre != null ? -1 : -2), DescricaoObservacao = i.ObservacaoLivre } }).ToList().Where(o => o.CodObservacao >= -1).ToList(), extras = i.Extras.Select(e => new ExtraItemPedidoViewModel { CodOpcaoExtra = e.CodOpcaoExtra, DescricaoOpcaoExtra = e.OpcaoExtra.DescricaoOpcaoExtra, Preco = e.Preco }).ToList() }).ToList().OrderBy(i => i.SeqItem).ToList() }) .OrderByDescending(p => p.DataPedido) .ToListAsync(); return(pedidos); }
public async Task <PedidoViewModel> GetPedidoAberto(string loginUsuario, string telefone) { var impressoraComanda = ParametroRepository.GetEnderecoImpressoraComanda(); var tempoMedioEspera = ParametroRepository.GetTempoMedioEspera(); return(await _contexto.Pedidos.Where(p => new List <int> { (int)SituacaoPedidoEnum.AguardandoConfirmacao, (int)SituacaoPedidoEnum.Confirmado, (int)SituacaoPedidoEnum.EmPreparacao, (int)SituacaoPedidoEnum.EmProcessoEntrega }.Contains(p.CodSituacao) && p.Usuario == (loginUsuario != "" ? loginUsuario : p.Usuario) && p.TelefoneCliente == (telefone != "" ? telefone : p.TelefoneCliente) && (!p.PedidoExterno || telefone != "")) .Include(c => c.Itens) .Include(c => c.Itens.Select(i => i.Observacoes)) .Include(c => c.Itens.Select(i => i.Observacoes.Select(o => o.Observacao))) .Include(c => c.Itens.Select(i => i.Extras)) .Include(c => c.Itens.Select(i => i.Extras.Select(e => e.OpcaoExtra))) .Select(p => new PedidoViewModel { DataPedido = p.DataHora, BandeiraCartao = p.BandeiraCartao, FormaPagamento = p.FormaPagamento, CodPedido = p.CodPedido, Situacao = p.CodSituacao, TaxaEntrega = p.TaxaEntrega, Troco = p.Troco, TrocoPara = p.TrocoPara, ValorTotal = p.ValorTotal, FeedbackCliente = p.FeedbackCliente, MotivoCancelamento = p.MotivoCancelamento, ValorDesconto = p.ValorDesconto, PercentualDesconto = p.PercentualDesconto, MotivoDesconto = p.MotivoDesconto, PortaImpressaoComandaEntrega = impressoraComanda, TempoMedioEspera = tempoMedioEspera, DadosCliente = new DadosClientePedidoViewModel { Bairro = p.BairroEntrega, Cidade = p.CidadeEntrega, Complemento = p.ComplementoEntrega, Estado = p.UFEntrega, Logradouro = p.LogradouroEntrega, Nome = p.NomeCliente, Numero = p.NumeroEntrega, Referencia = p.ReferenciaEntrega, Telefone = p.TelefoneCliente } }) .FirstOrDefaultAsync()); }
public async Task <List <PedidoViewModel> > GetPedidosAbertos(int?codPedido) { var dataHora = DateTime.Now.AddDays(-2); var impressoraComanda = ParametroRepository.GetEnderecoImpressoraComanda(); var pedidos = await _contexto.Pedidos.Where(p => !(new List <int> { 5, 9 }).Contains(p.CodSituacao) && (p.DataHora > dataHora || p.CodSituacao < 4) && p.CodPedido == (codPedido != null ? codPedido.Value : p.CodPedido)) .Include(s => s.Situacao) .Include(s => s.Itens) .Include(s => s.Itens.Select(i => i.ItemCardapio)) .Include(s => s.Itens.Select(i => i.ItemCardapio.ImpressorasAssociadas)) .Include(s => s.Itens.Select(i => i.ItemCardapio.ImpressorasAssociadas.Select(a => a.ImpressoraProducao))) .Include(c => c.Itens.Select(i => i.Observacoes)) .Include(c => c.Itens.Select(i => i.Observacoes.Select(o => o.Observacao))) .Include(c => c.Itens.Select(i => i.Extras)) .Include(c => c.Itens.Select(i => i.Extras.Select(e => e.OpcaoExtra))) .Select(p => new PedidoViewModel { FormaPagamento = p.FormaPagamento, DataPedido = p.DataHora, CodPedido = p.CodPedido, Situacao = p.CodSituacao, DescricaoSituacao = p.Situacao.Descricao, ValorTotal = p.ValorTotal, TaxaEntrega = p.TaxaEntrega, BandeiraCartao = p.BandeiraCartao, Troco = p.Troco, TrocoPara = p.TrocoPara, Usuario = p.Usuario, PedidoExterno = p.PedidoExterno, MotivoCancelamento = p.MotivoCancelamento, FeedbackCliente = p.FeedbackCliente, ValorDesconto = p.ValorDesconto, PercentualDesconto = p.PercentualDesconto, MotivoDesconto = p.MotivoDesconto, PortaImpressaoComandaEntrega = impressoraComanda, DadosCliente = new DadosClientePedidoViewModel { Bairro = p.BairroEntrega, Cidade = p.CidadeEntrega, Complemento = p.ComplementoEntrega, Estado = p.UFEntrega, Logradouro = p.LogradouroEntrega, Nome = p.NomeCliente, Numero = p.NumeroEntrega, Referencia = p.ReferenciaEntrega, Telefone = p.TelefoneCliente }, Itens = p.Itens.Where(i => !i.Cancelado).Select(i => new ItemPedidoViewModel { CodItem = i.CodItemCardapio, SeqItem = i.SeqItem, DescricaoItem = i.ItemCardapio.Nome, Quantidade = i.Quantidade, PrecoUnitario = i.PrecoUnitario, ValorExtras = i.ValorExtras, ValorTotalItem = i.ValorTotal, ObservacaoLivre = i.ObservacaoLivre, AcaoRegistro = (int)Comum.AcaoRegistro.Nenhuma, PortasImpressaoProducao = i.ItemCardapio.ImpressorasAssociadas.Select(a => a.ImpressoraProducao.Porta).ToList(), Obs = i.Observacoes.Select(o => new ObservacaoItemPedidoViewModel { CodObservacao = o.CodObservacao, DescricaoObservacao = o.Observacao.DescricaoObservacao }).ToList().Union(new List <ObservacaoItemPedidoViewModel> { new ObservacaoItemPedidoViewModel { CodObservacao = (i.ObservacaoLivre != "" && i.ObservacaoLivre != null ? -1 : -2), DescricaoObservacao = i.ObservacaoLivre } }).ToList().Where(o => o.CodObservacao >= -1).ToList(), extras = i.Extras.Select(e => new ExtraItemPedidoViewModel { CodOpcaoExtra = e.CodOpcaoExtra, DescricaoOpcaoExtra = e.OpcaoExtra.DescricaoOpcaoExtra, Preco = e.Preco }).ToList() }).ToList().OrderBy(i => i.SeqItem).ToList() }) .OrderBy(p => p.DataPedido) .ToListAsync(); return(pedidos); }