private void LimpaFilaMesa(int mesa) { var listRem = FilaSalao.Where(x => x.Mesa == mesa); foreach (var m in listRem) { FilaSalao.Remove(m); } }
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); }
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); }
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()); }