public static MesaStatusViewModel AgregarPedidos(IList <PedidoViewModel> pedidos) { var pedidosAServir = new List <PedidoItemViewModel>(); var pedidosComidaEmPreparacao = new List <PedidoItemViewModel>(); var pedidosServidos = new List <PedidoItemViewModel>(); foreach (var pedido in pedidos) { foreach (var item in pedido.PedidoBebidaItens.Where(x => string.IsNullOrEmpty(x.Servido))) { pedidosAServir.Add(item); } } foreach (var pedido in pedidos) { foreach (var item in pedido.PedidoComidaItens.Where(x => !string.IsNullOrEmpty(x.EmPreparacao) && string.IsNullOrEmpty(x.Servido) && !x.MenuItem.Bebida)) { pedidosComidaEmPreparacao.Add(item); } } foreach (var pedido in pedidos) { foreach (var item in pedido.PedidoBebidaItens.Where(x => !string.IsNullOrEmpty(x.Servido))) { pedidosServidos.Add(item); } foreach (var item in pedido.PedidoComidaItens.Where(x => !string.IsNullOrEmpty(x.Servido))) { pedidosServidos.Add(item); } } var pedidosItensConsolidados = new MesaStatusViewModel { PedidosAServir = pedidosAServir, PedidosEmPreparacao = pedidosComidaEmPreparacao, PedidosServidos = pedidosServidos }; return(pedidosItensConsolidados); }
public MesaStatusViewModel Status(int id) { using (var mesaAberta = new MesaAbertaQueryHandler()) { var mesa = mesaAberta.Handle(new MesaAbertaQuery(id, 0)); var pedidos = mesa.Pedidos.Select(x => new PedidoViewModel { Id = x.Id, NumMesa = mesa.NumMesa, PedidoBebidaItens = x.ItensPedidos.Where(b => b.MenuItem.Bebida).Select(i => new PedidoItemViewModel { Id = i.Id, MenuItem = new MenuItemViewModel { Id = i.MenuItem.Id, NumMenuItem = i.MenuItem.NumMenuItem, Descricao = i.MenuItem.Descricao, Valor = i.MenuItem.Valor, Bebida = i.MenuItem.Bebida }, Descricao = i.Descricao, Quantidade = i.Quantidade, Valor = (i.Quantidade * (double)i.MenuItem.Valor), AServir = i.AServir.HasValue ? i.AServir.Value.ToString("d") : "", EmPreparacao = i.EmPreparacao.HasValue ? i.EmPreparacao.Value.ToString("d") : "", Servido = i.Servido.HasValue ? i.Servido.Value.ToString("d") : "" }).ToList(), PedidoComidaItens = x.ItensPedidos .Where(b => !b.MenuItem.Bebida) //.Where(b => !b.Servido.HasValue) .Select(i => new PedidoItemViewModel { Id = i.Id, MenuItem = new MenuItemViewModel { Id = i.MenuItem.Id, NumMenuItem = i.MenuItem.NumMenuItem, Descricao = i.MenuItem.Descricao, Valor = i.MenuItem.Valor, Bebida = i.MenuItem.Bebida }, Descricao = i.Descricao, Quantidade = i.Quantidade, AServir = i.AServir.HasValue ? i.AServir.Value.ToString("d") : "", EmPreparacao = i.EmPreparacao.HasValue ? i.EmPreparacao.Value.ToString("d") : "", Servido = i.Servido.HasValue ? i.Servido.Value.ToString("d") : "" }).ToList() }).ToList(); var pedidosItensAgregados = Util.AgregarPedidos(pedidos); var mesaStatus = new MesaStatusViewModel { MesaId = mesa.Id, NumMesa = mesa.NumMesa, PedidosAServir = pedidosItensAgregados.PedidosAServir, PedidosEmPreparacao = pedidosItensAgregados.PedidosEmPreparacao, PedidosServidos = pedidosItensAgregados.PedidosServidos }; return(mesaStatus); } }