public ComposicaoProduto VerificaComposicao(ComposicaoProduto composicao) { var ret = VerificaProdutoCobranca(composicao.Composicao); var key = ret.Keys.ToList()[0]; // Pega a o produto da lista de composição pelo índice. var prod = composicao.Composicao[key]; decimal valor; ret.TryGetValue(key, out valor); composicao.Produto = prod.Produto; composicao.Valor = composicao.Quantidade * valor; composicao.ValorUnitario = valor; return(composicao); }
private void AjustarPrecoComposicao(ComposicaoProduto composicao) { var ret = VerificaProdutoCobranca(composicao.Composicao); if (ret.Count == 0) { return; } var prod = composicao.Composicao[ret.Keys.ToArray()[0]]; var valor = ret[0]; composicao.Produto = prod.Produto; composicao.Valor = composicao.Quantidade * valor; composicao.ValorUnitario = valor; }
public void RemoveProduto(ComposicaoProduto composicao) { var result = MessageBox.Show("Deseja realmente excluir este item", "Excluir produto", MessageBoxButton.YesNo, MessageBoxImage.Asterisk, MessageBoxResult.No); if (result == MessageBoxResult.Yes) { if (composicao != null) { Produtos.Remove(composicao); } } ProdutoAtual = null; CalculaPedido(); }
public StatusComando AdicionarItemMesa(int mesa, ComposicaoProduto composicao) { try { if (ComposicaoProdutoRepository.Validate(composicao)) { var m = GetMesa(mesa); if (m == null) { throw new Exception(string.Format("A mesa {0} não foi encontrada.", mesa)); } AjustarPrecoComposicao(composicao); m.Produtos.Add(composicao); 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 void AddProduto(ComposicaoProduto composicao) { Produtos.Add(composicao); CalculaPedido(); }