public void carregarPorcoesParaEntregarDaMesa(int nroMesa) { string nomePorcao; double valorUnitario; List <ItensDaVenda> itensDaVenda = new List <ItensDaVenda>(); List <Produto> porcoes = new List <Produto>(); ProdutoDAO dao2 = new ProdutoDAO(); porcoes = dao2.buscarPorcoes(); ItensDaVendaDAO dao = new ItensDaVendaDAO(); for (int i = 0; i < vendasAtivas.Count; i++) { if (vendasAtivas[i].CodigoDaMesa == nroMesa) //pegando a venda desta mesa. { itensDaVenda = dao.buscarItensDeUmaVenda(vendasAtivas[i].CodigoDaVenda); for (int j = 0; j < itensDaVenda.Count; j++) // verificando quais produtos são desta venda. { if (vendasAtivas[i].CodigoDaVenda == itensDaVenda[j].CodigoVenda) { if (itensDaVenda[j].HoraDaEntrega == "") //verificando se é o produto é uma porção. { for (int k = 0; k < porcoes.Count; k++) // pegando o nome e o valor unitário desta porção { if (porcoes[k].CodigoProduto == itensDaVenda[j].CodigoProduto) { nomePorcao = porcoes[k].NomeDoProduto; valorUnitario = porcoes[k].ValorUnitarioDoProduto; dgvListarPorcoes.Rows.Add(itensDaVenda[j].CodigoProduto, nomePorcao, itensDaVenda[j].QtdeConsumida, valorUnitario.ToString("c")); //aqui adiciono na linha da tabela } } } } } break; } } }
// OK private void btnConfirmarEntrega_Click(object sender, EventArgs e) { int codPorcao; codPorcao = Convert.ToInt32(dgvListarPorcoes.CurrentRow.Cells[0].Value);//codigo da porcao da linha da tabela. List <ItensDaVenda> itensDaVenda = new List <ItensDaVenda>(); ItensDaVendaDAO dao = new ItensDaVendaDAO(); for (int i = 0; i < vendasAtivas.Count; i++) { if (vendasAtivas[i].CodigoDaMesa == nroMesa) //pegando a venda desta mesa. { itensDaVenda = dao.buscarItensDeUmaVenda(vendasAtivas[i].CodigoDaVenda); for (int j = 0; j < itensDaVenda.Count; j++) //pegando o item correto da venda para alterar { if (itensDaVenda[j].CodigoProduto == codPorcao) //se for igual ao codigo da porcao que vem da tabela. { itensDaVenda[j].HoraDaEntrega = DateTime.Now.ToShortTimeString(); //setando a hr de entrega da porcao. dao.alterarItemDaVenda(itensDaVenda[j], itensDaVenda[j].CodigoVenda, codPorcao); //alterando a hr de entrega da porcao. MessageBox.Show("A porção foi entregue!"); dgvListarPorcoes.Rows.Clear(); //dgvListarPorcoes.ClearSelection(); // deixando a tabela sem nenhuma linha selecionada btnConfirmarEntrega.Enabled = false; // desabilitando o botao de confirmar entrega. carregarPorcoesParaEntregarDaMesa(nroMesa); break; //sai da segunda estrutura for } } break; //sai da primeira estrutura for } } }
public void carregarItensVendaDaMesa(string tipoDaConsulta) { switch (tipoDaConsulta) { case "apenasVendasAbertas": for (int i = 0; i < vendasAtivas.Count; i++) { if (vendasAtivas[i].CodigoDaMesa == codMesa) //pegando esta venda da lista de vendas ativas //executa todos os comandos e depois da o break. { ItensDaVendaDAO dao = new ItensDaVendaDAO(); itensDaVenda = dao.buscarItensDeUmaVenda(codVenda); foreach (ItensDaVenda item in itensDaVenda) { String nomeProduto = ""; double valorUnitario = 0; //um produto comum tem o pedido entregue na hora. Entao a horaPedido é = a da horaEntrega if (item.HoraDoPedido.Equals(item.HoraDaEntrega)) { for (int k = 0; k < produtos.Count; k++) //percorrendo a lista de produtos para recuperar o nome // e o valor unitário do produto para setar na tabela { if (produtos[k].CodigoProduto == item.CodigoProduto) { nomeProduto = produtos[k].NomeDoProduto; valorUnitario = produtos[k].ValorUnitarioDoProduto; break; } } dgvItensDaVenda.Rows.Add(codVenda, codMesa, "Comum", nomeProduto, item.QtdeConsumida, valorUnitario.ToString("c")); } else { for (int k = 0; k < porcoes.Count; k++) //percorrendo a lista de produtos para recuperar o nome // e o valor unitário do produto para setar na tabela { if (porcoes[k].CodigoProduto == item.CodigoProduto) { nomeProduto = porcoes[k].NomeDoProduto; valorUnitario = porcoes[k].ValorUnitarioDoProduto; break; } } dgvItensDaVenda.Rows.Add(codVenda, codMesa, "Porção", nomeProduto, item.QtdeConsumida, valorUnitario.ToString("c")); } } break; //saindo da estrutura for. } } break; case "apenasVendasFinalizadas": for (int i = 0; i < vendasFinalizadasBD.Count; i++) { if (vendasFinalizadasBD[i].CodigoDaVenda == codVenda) //pegando a venda com o codigo vindo // da tabela do frm anterior a esse. { ItensDaVendaDAO dao = new ItensDaVendaDAO(); itensDaVenda = dao.buscarItensDeUmaVenda(codVenda); foreach (ItensDaVenda item in itensDaVenda) { String nomeProduto = ""; double valorUnitario = 0; //um produto comum tem o pedido entregue na hora. Entao a horaPedido é = a da horaEntrega if (item.HoraDoPedido.Equals(item.HoraDaEntrega)) { for (int k = 0; k < produtos.Count; k++) //percorrendo a lista de produtos para recuperar o nome // e o valor unitário do produto para setar na tabela { if (produtos[k].CodigoProduto == item.CodigoProduto) { nomeProduto = produtos[k].NomeDoProduto; valorUnitario = produtos[k].ValorUnitarioDoProduto; break; } } dgvItensDaVenda.Rows.Add(codVenda, codMesa, "Comum", nomeProduto, item.QtdeConsumida, valorUnitario.ToString("c")); } else { for (int k = 0; k < porcoes.Count; k++) //percorrendo a lista de produtos para recuperar o nome // e o valor unitário do produto para setar na tabela { if (porcoes[k].CodigoProduto == item.CodigoProduto) { nomeProduto = porcoes[k].NomeDoProduto; valorUnitario = porcoes[k].ValorUnitarioDoProduto; break; } } dgvItensDaVenda.Rows.Add(codVenda, codMesa, "Porção", nomeProduto, item.QtdeConsumida, valorUnitario.ToString("c")); } } break; //saindo da estrutura for. } } break; } }
private void btnEscolherMesa1_Click(object sender, EventArgs e) { switch (estadoDaChamada) { case "abrirVenda": Venda v = new Venda(); v.CodigoDaMesa = 1; v.DataDaVenda = DateTime.Now.ToShortDateString(); //get somente na data v.HoraDeAbreVenda = DateTime.Now.ToShortTimeString(); //get somente na hora. v.ValorTotalVenda = 0; vendasAtivas.Add(v); VendaDAO dao = new VendaDAO(); dao.cadastrarVenda(v); //Esse laço serve para recuperar o código da venda que acabou de ser aberta e setar dentro da lista. for (int i = 0; i < vendasAtivas.Count; i++) { if (vendasAtivas[i].CodigoDaMesa == 1) { vendasAtivas[i].CodigoDaVenda = dao.buscarCodigoDaVenda(); break; // saindo dessa estrutura for. } } MessageBox.Show("Venda aberta com sucesso!"); mesasVisuais[0].alterarEstadoDaMesa("abrirVenda"); // funcionando ok ! this.Close(); // fechando formulário atual break; // saindo do case. case "fecharVenda": for (int i = 0; i < vendasAtivas.Count; i++) // percorrendo a lista das vendas ativas. { if (vendasAtivas[i].CodigoDaMesa == 1) // pegando a venda desta mesa. //Agora recupera os itens dessa venda para verificar se ainda existe alguma porção nao entregue. //Não pode deixar fechar uma venda se ainda existir porções sendo feitas na cozinha para a mesa. { List <ItensDaVenda> itensVenda = new List <ItensDaVenda>(); ItensDaVendaDAO itensDAO = new ItensDaVendaDAO(); itensVenda = itensDAO.buscarItensDeUmaVenda(vendasAtivas[i].CodigoDaVenda); bool existePorcoesDaMesaNaCozinha = false; //Percorrendo a lista de itens da venda para verificar se existe alguma porção não entregue. for (int j = 0; j < itensVenda.Count; j++) { if (itensVenda[j].HoraDaEntrega == "") { existePorcoesDaMesaNaCozinha = true; break; } } if (!existePorcoesDaMesaNaCozinha) { vendasAtivas[i].HoraDeFechaVenda = DateTime.Now.ToShortTimeString(); //setando a hora vendasFinalizadas.Add(vendasAtivas[i]); VendaDAO dao2 = new VendaDAO(); //Aqui só serve para alterar a hora em que a venda foi dao2.alterarVenda(vendasAtivas[i]); //finalizada pq qdo abre a venda, ela ja é salva no banco. vendasAtivas.Remove(vendasAtivas[i]); // removendo esta venda da lista de vendas ativas. MessageBox.Show("Venda finalizada com sucesso!"); mesasVisuais[0].alterarEstadoDaMesa("fecharVenda"); //deixando a mesa livre novamente. this.Close(); } else { MessageBox.Show("Não é possível fechar a venda. " + "Existe alguma porção na cozinha que ainda não foi entregue " + "para essa mesa no momento."); } } } break; // saindo do case. case "vendasEmAberto": int codigoMesa = 1; FrmItensDaVenda f = new FrmItensDaVenda(vendasAtivas, codigoMesa); f.StartPosition = FormStartPosition.CenterScreen; // centralizando o formulário na tela. f.ShowDialog(); break; } }
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(); } }