private void LimpaFilaMesa(int mesa) { var listRem = FilaSalao.Where(x => x.Mesa == mesa); foreach (var m in listRem) { FilaSalao.Remove(m); } }
private void ConfirmarPedido() { try { if (CurrentItem == null) { return; } if (CurrentItem.EntityRestaurante == null) { return; } if (!CurrentItem.EntityRestaurante.Confirmado) { switch (CurrentItem.EntityRestaurante.Local) { case LocalPedidoRestaurante.Mesa: var mesaAberta = GetMesa(CurrentItem.EntityRestaurante.Mesa); if (mesaAberta != null) { foreach (var prod in CurrentItem.Produtos) { mesaAberta.AddProduto(prod); } } else { Collection.Add(CurrentItem); } break; default: switch (CurrentItem.EntityRestaurante.Local) { case LocalPedidoRestaurante.Balcao: FilaSalao.Add(CurrentItem); break; case LocalPedidoRestaurante.Entrega: FilaEntrega.Add(CurrentItem); break; } break; } CurrentItem.ConfirmarPedido(); CurrentItem = null; } } catch (Exception ex) { CustomMessageBox.MensagemErro(ex.Message); Erp.Business.Utils.GerarLog(ex); } }
public StatusComando ConfirmarPedido(PedidoRestaurante pedido) { try { switch (pedido.Local) { case LocalPedidoRestaurante.Mesa: var mesaAberta = GetMesa(pedido.Mesa); if (mesaAberta != null) { // Valida todas as composições que estão entrando para verificar a integridade. foreach (var produto in pedido.Produtos) { ComposicaoProdutoRepository.Validate(produto); } foreach (var prod in pedido.Produtos) { mesaAberta.Produtos.Add(prod); } } else { MesasAbertas.Add(pedido); } break; default: switch (pedido.Local) { case LocalPedidoRestaurante.Balcao: FilaSalao.Add(pedido); break; case LocalPedidoRestaurante.Entrega: FilaEntrega.Add(pedido); break; } break; } pedido.Confirmado = true; return(StatusComando.ConcluidoSucesso); } catch (Exception ex) { LastException = ex.Message; } return(StatusComando.ConcluidoSucesso); }
public StatusComando CancelarItemComposicaoMesa(int mesa, Guid composicao, Guid produto) { try { var mesaAberta = GetMesa(mesa); if (mesaAberta == null) { throw new Exception("A mesa não está aberta"); } foreach (var m in FilaSalao.Where(x => x.Mesa == mesa)) { var comp = m.Produtos.SingleOrDefault(x => x.IdGuid == composicao); if (comp == null) { continue; } if (m.StatusProducao == StatusProducaoPedido.Produzido) { throw new Exception("Pedido já produzido."); } var prod = comp.Composicao.SingleOrDefault(x => x.IdGuid == produto); if (prod != null) { comp.Composicao.Remove(prod); } } var compMesa = mesaAberta.Produtos.SingleOrDefault(x => x.IdGuid == composicao); if (compMesa != null) { var prodMesa = compMesa.Composicao.SingleOrDefault(x => x.IdGuid == produto); if (prodMesa != null) { compMesa.Composicao.Remove(prodMesa); } AjustarPrecoComposicao(compMesa); } return(StatusComando.ConcluidoSucesso); } catch (Exception ex) { LastException = ex.Message; } return(StatusComando.ErroExecucao); }
private void RemoveMesa(PedidoRestauranteModel mesa) { try { if (mesa.EntityRestaurante.Confirmado) { Collection.Remove(mesa); } if (CurrentItem != null && CurrentItem.EntityRestaurante.Mesa == mesa.EntityRestaurante.Mesa) { CurrentItem = null; } FilaSalao.Remove(mesa); } catch (Exception ex) { CustomMessageBox.MensagemErro(ex.Message); Erp.Business.Utils.GerarLog(ex); } }
private void FecharPedido() { try { if (CurrentItem == null) { return; } if (CurrentItem.EntityRestaurante.Local == LocalPedidoRestaurante.Mesa) { var ped = GetMesa(CurrentItem.EntityRestaurante.Mesa); FecharMesa(); if (ped == null) { return; } if (!ped.IsPagamentoCancelado) { Collection.Remove(ped); FilaSalao.Remove(ped); CurrentItem = null; } } else { var ped = GetEntrega(CurrentItem.EntityRestaurante.Controle.Controle); FecharEntrega(); if (!ped.IsPagamentoCancelado) { FilaEntrega.Remove(ped); CurrentItem = null; } } OnAcaoConcluida(); } catch (Exception ex) { CustomMessageBox.MensagemErro(ex.Message); Erp.Business.Utils.GerarLog(ex); } }
public StatusComando CancelarMesa(int mesa) { try { var pedidosProduzidos = FilaSalao.Where(x => x.Mesa == mesa && x.StatusProducao == StatusProducaoPedido.Produzido); if (pedidosProduzidos.Count() != 0) { LastException = "Há pedidos produzidos para esta mesa. Só é possível o cancelamento com a senha do gerênte"; return(StatusComando.SolicitacaoAdministrador); } var m = GetMesa(mesa); if (m != null) { RemoveMesa(m); LimpaFilaMesa(mesa); } return(StatusComando.ConcluidoSucesso); } catch (Exception ex) { LastException = ex.Message; } return(StatusComando.ErroExecucao); }
private void RemoveMesaFila(PedidoRestaurante mesaFilaRem) { FilaSalao.Remove(mesaFilaRem); }
public StatusComando CancelarItemMesa(int mesa, ComposicaoProduto composicao) { try { ComposicaoProduto comp = null; // Cancela o item na fila. PedidoRestaurante mesaFilaRem = null; foreach (var mesaFila in FilaSalao.Where(x => x.Mesa == mesa)) { comp = null; foreach (var prod in mesaFila.Produtos.Where(prod => prod.IdGuid == composicao.IdGuid)) { // Verifica se o pedido já foi produzido. if (mesaFila.StatusProducao == StatusProducaoPedido.Produzido) { LastException = "O ítem já foi produzido. Somente o gerênte pode cancelar o item."; return(StatusComando.SolicitacaoAdministrador); } comp = prod; } if (comp != null) { mesaFila.Produtos.Remove(comp); // Se o pedido na fila não tiver mais produtos remove da fila. if (mesaFila.Produtos.Count == 0) { mesaFilaRem = mesaFila; } } } // Remove o pedido por completo da fila caso tenha sido marcado para exclusão. if (mesaFilaRem != null) { RemoveMesaFila(mesaFilaRem); } var m = GetMesa(mesa); if (m == null) { throw new Exception(string.Format("A mesa {0} não foi encontrada.", mesa)); } // Cancela o item na mesa. foreach (var prod in m.Produtos.Where(prod => prod.IdGuid == composicao.IdGuid)) { comp = prod; } if (comp != null) { m.Produtos.Remove(comp); AjustarPrecoComposicao(comp); } // Se não houver mais produtos na mesa cancela-o. if (m.Produtos.Count == 0) { CancelarMesa(mesa); } return(StatusComando.ConcluidoSucesso); } catch (Exception ex) { LastException = ex.Message; } return(StatusComando.ErroExecucao); }
public IList <PedidoRestaurante> GetPedidosGarcon(int idGarcon) { return(FilaSalao.Where(x => x.Garcon.Id == idGarcon).ToList()); }