//OK public void adicionarItemNaVenda2(int numeroMesa, Produto pro, int qtdConsumo) { //bool validacaoEstoque; //double valorProduto, calculaPreco; //validacaoEstoque = validarEstoque(qtdConsumo, pro.CodigoProduto); //if (validacaoEstoque) { ItensDaVenda item = new ItensDaVenda(); item.CodigoVenda = buscarVendaAtiva(numeroMesa); //item.CodigoProduto = pro.CodigoProduto; item.QtdeConsumida = qtdConsumo; item.HoraDoPedido = DateTime.Now.ToShortTimeString(); //verificando qual é a instância do objeto. //Hora ele pode ser apenas um produto hora ele pode ser uma porção //que herda de produto. if (pro is Produto && !(pro is Porcao)) { item.HoraDaEntrega = DateTime.Now.ToShortTimeString(); } else { //lista com as porcoes que ainda estão na cozinha. //O tempo de entrega ainda nao foi setado aqui. porcoesNaCozinha.Add(item); } adicionarItemNaVenda(item); //valorProduto = buscarPrecoProduto(pro.CodigoProduto); //calculaPreco = valorProduto * qtdConsumo; //atualizarValorTotalVenda(item.CodigoVenda, calculaPreco); travarTela(); }
// usado na comparacao de porcao pedida com outras porcoes pedidas de outras mesas. public ItensDaVenda retornarItemDaVenda(int codProduto) { ItensDaVenda item = null; //percorrendo os itens das vendas ativas for (int i = 0; i < itensVenda.Count; i++) { //Pegando o objeto itemDaVenda que tem o código igual o codigo passado por parâmetro. if (codProduto == itensVenda[i].CodigoProduto) { item = itensVenda[i]; } } return(item); }
// PODE-SE TAMBÉM DEIXAR ESTA LISTA NA PRÓPRIA CLASSE ITEM DA VENDA // SERÁ CRIADA UMA LISTA ÚNICA PARA CADA VENDA A CADA INSERÇÃO. // AQUI É UMA LISTA CONTENDO TODAS OS ITENS DE TODAS AS VENDAS EM UMA ÚNICA LISTA. public void adicionarItemNaVenda(ItensDaVenda item) { itensVenda.Add(item); }
private void btnMesa6_Click(object sender, EventArgs e) { int qtdeDesejada, qtdEstoque, codProduto; double precoProduto; if (tfQtd.TextLength > 0) { qtdeDesejada = Convert.ToInt32(tfQtd.Text); } else { qtdeDesejada = 0; } qtdEstoque = Convert.ToInt32(dgvListarProdutos.CurrentRow.Cells[2].Value);//pegando a qtd do produto da linha da tabela. precoProduto = Convert.ToDouble(dgvListarProdutos.CurrentRow.Cells[3].Value); if (qtdeDesejada > 0 && qtdeDesejada <= qtdEstoque) // verificando se o estoque do produto escolhido é válido { qtdEstoque = (qtdEstoque - qtdeDesejada); // atualizando estoque ItensDaVenda item = new ItensDaVenda(); for (int i = 0; i < vendasAtivas.Count; i++) //pegando a venda desta mesa. { if (vendasAtivas[i].CodigoDaMesa == 6) { //atualizando o valor total da venda. vendasAtivas[i].ValorTotalVenda = (vendasAtivas[i].ValorTotalVenda + (qtdeDesejada * precoProduto)); item.CodigoVenda = vendasAtivas[i].CodigoDaVenda; break; // quando ele encontrar esta venda, aqui ele sai da estrutura for. } } //pegando o codigo do produto direto da tabela codProduto = Convert.ToInt32(dgvListarProdutos.CurrentRow.Cells[0].Value); ItensDaVendaDAO itemdao = new ItensDaVendaDAO(); Produto p = new Produto(); p.CodigoProduto = codProduto; //usando o codProduto da tabela para setar no objeto. p.NomeDoProduto = dgvListarProdutos.CurrentRow.Cells[1].Value.ToString(); p.QtdeProduto = qtdEstoque; p.ValorUnitarioDoProduto = Convert.ToDouble(dgvListarProdutos.CurrentRow.Cells[3].Value); if (rbProduto.Checked) { p.TipoDoProduto = "comum"; item.HoraDaEntrega = DateTime.Now.ToShortTimeString();//get somente na hora q entregou o prodt na mesa. } else { p.TipoDoProduto = "porcao"; item.HoraDaEntrega = ""; } ProdutoDAO dao = new ProdutoDAO(); dao.alterarProduto(p); item.CodigoProduto = codProduto; //codProduto; item.QtdeConsumida = Convert.ToInt32(tfQtd.Text); item.HoraDoPedido = DateTime.Now.ToShortTimeString(); //get somente na hora itemdao.cadastrarItemDaVenda(item); dgvListarProdutos.Rows.Clear(); carregarTabela(); dgvListarProdutos.ClearSelection(); // deixando a tabela sem nenhuma linha selecionada tfQtd.Clear(); tfQtd.Enabled = false; MessageBox.Show("O produto foi inserido na venda!"); for (int i = 0; i < mesasVisuais.Count; i++) //deixando todas as mesas com os botoes desabilitados { mesasVisuais[i].desabilitarComponentesDaMesaVisual(); } } else { MessageBox.Show("Estoque insuficiente para esta quantidade do produto."); mesasVisuais[5].desabilitarComponentesDaMesaVisual(); tfQtd.Clear(); } }