public Completa(Produto[] produto, int codCompleto, GarconFisico[] garcons, double valorCompleto) { this.cod_completo = codCompleto; valorUnitario = valorCompleto; this.produto = produto; quantidade = new Banco.BancoInformacao().quantidadeCompletaByCodigo(cod_completo); needImpress = false; for (int i = 0; i < produto.Length; i++ ) { if (produto[i].impresso) { needImpress = true; break; } } this.garcons = garcons; }
public VendaFull carregaVenda(int cod_venda) { Completa[] conjCompleto; DataTable dttVenda = new DataTable(); //--------CARREGAR MESA ------------------ DataTable dttMesa = new DataTable(); NpgsqlDataAdapter a = new NpgsqlDataAdapter (" select m.descricao from mesa m " + " inner join vendaMesa vm on (m.cod_mesa = vm.cod_mesa) " + " inner join venda v on (v.cod_venda = vm.cod_venda) " + " where v.aberta = true and m.status = false and v.cod_venda = " + cod_venda, Conectar()); a.Fill(dttMesa); string[] mesa = new string[dttMesa.Rows.Count]; for (int j = 0; j < dttMesa.Rows.Count; j++) mesa[j] = dttMesa.Rows[j].ItemArray.GetValue(0).ToString(); //------------------------------------------------------------------------------------- DataTable numero = new DataTable(); string queryC = "select count(vc.cod_completo) from vendacompleta vc inner join completo c on (c.cod_completo = vc.cod_completo)" +" where cod_venda =" + cod_venda+" and c.cancelado = false "; new NpgsqlDataAdapter(queryC, Conectar()).Fill(numero); conjCompleto = new Completa[Convert.ToInt32(numero.Rows[0].ItemArray.GetValue(0))]; string queryComplet = "select c.cod_completo from completo c inner join vendaCompleta vc on (vc.cod_completo = c.cod_completo)" + " inner join venda v on (v.cod_venda = vc.cod_venda)" + " where v.cod_venda = " + cod_venda+ " and c.cancelado = false"; numero = new DataTable(); new NpgsqlDataAdapter(queryComplet, Conectar()).Fill(numero); for (int j = 0; j < conjCompleto.Length; j++) { //-----------GARCON DO PRODUTO --------------------------------------------------------- string garconA = "select g.cod_garcon,sum(quantidade) from garcon g inner join garconCompleto gc on(g.cod_garcon = gc.cod_garcon) " + "inner join completo c on(c.cod_completo = gc.cod_completo) where c.cod_completo = " + (int)numero.Rows[j].ItemArray.GetValue(0) +" and cancelado = false " + " group by g.cod_garcon"; DataTable garc = new DataTable(); new NpgsqlDataAdapter(garconA, Conectar()).Fill(garc); string querySubProduto = "select p.cod_produto,cp.porcentagem , c.valorUnitarioCompleto ,cp.cod_tamanho " + " from completo c inner join completoProduto cp on (c.cod_completo = cp.cod_completo)" + " inner join produto p on( p.cod_produto = cp.cod_produto) where c.cod_completo = " + (int)numero.Rows[j].ItemArray.GetValue(0) + " and c.cancelado = false "; DataTable sub = new DataTable(); new NpgsqlDataAdapter(querySubProduto, Conectar()).Fill(sub); GarconFisico[] gf = new GarconFisico[garc.Rows.Count]; for (int k = 0; k < garc.Rows.Count; k++) { gf[k] = new GarconFisico(); gf[k].setGarcon(Convert.ToInt16(garc.Rows[k].ItemArray.GetValue(0)), Convert.ToInt16(garc.Rows[k].ItemArray.GetValue(1))); } Produto[] subProdutos = new Produto[sub.Rows.Count]; for (int k = 0; k < sub.Rows.Count; k++) { double teste = new BancoInformacao().quantidadeCompletaByCodigo ( Convert.ToInt32( numero.Rows[j].ItemArray.GetValue(0).ToString())); subProdutos[k] = new Produto(); subProdutos[k].setLoad( Convert.ToInt32(sub.Rows[k].ItemArray.GetValue(0)), Convert.ToDouble(sub.Rows[k].ItemArray.GetValue(1)), Convert.ToDouble(sub.Rows[k].ItemArray.GetValue(2)), Convert.ToInt32(sub.Rows[k].ItemArray.GetValue(3)), //preciso fazer saber a quantidade de produtos new Banco().isImpressoProduto(Convert.ToInt16(sub.Rows[k].ItemArray.GetValue(0))) ); } conjCompleto[j] = new Completa(subProdutos, (int)numero.Rows[j].ItemArray.GetValue(0),gf, valorItemCompleto((int)numero.Rows[j].ItemArray.GetValue(0))); } //--------------------------------------------------------------- string query = "select subValor, dataVenda,to_char(horario, 'HH24:MI'), cod_caixa, aberta,impressao, cod_pagamento, valorReal from venda where cod_venda =" + cod_venda; numero = new DataTable(); new NpgsqlDataAdapter(query, Conectar()).Fill(numero); double valor = 0; for (int i = 0; i < conjCompleto.Length; i++) { string vlr = "select valorUnitarioCompleto from completo where cod_completo = " + (conjCompleto[i].cod_completo); DataTable vl = new DataTable(); new NpgsqlDataAdapter(vlr, Conectar()).Fill(vl); double info = Convert.ToDouble(vl.Rows[0].ItemArray.GetValue(0)); double quantidade = new BancoInformacao().quantidadeCompletaByCodigo( conjCompleto[i].cod_completo); valor += (info * quantidade); } try { VendaFull saida = new VendaFull( conjCompleto, cod_venda, (int)numero.Rows[0].ItemArray.GetValue(3), valor, numero.Rows[0].ItemArray.GetValue(2).ToString(), numero.Rows[0].ItemArray.GetValue(1).ToString(), mesa,new Banco().comissaoIsPct(), new Banco().getValorComissao(), (double)numero.Rows[0].ItemArray.GetValue(7)); saida.super = retornoSuper(cod_venda); return saida; } catch { VendaFull saida = new VendaFull(conjCompleto, cod_venda, 1, 0, null, null, mesa , new Banco().comissaoIsPct(), new Banco().getValorComissao(), (double)numero.Rows[0].ItemArray.GetValue(7)); saida.super = retornoSuper(cod_venda); return saida; } }
private Produto[] getProduto(int cod_completo) { string query = "select p.cod_produto, cp.porcentagem, c.valorUnitarioCompleto , cp.cod_tamanho " + " from completoProduto cp inner join Produto p on (p.cod_produto = cp.cod_produto)" + " inner join completo c on (c.cod_completo = cp.cod_completo) where c.cod_completo = " + cod_completo+ " and c.cancelado = false"; DataTable t = new DataTable(); new NpgsqlDataAdapter(query, Conectar()).Fill(t); Produto[] conjunto = new Produto[t.Rows.Count]; for (int i = 0; i < t.Rows.Count; i++) { conjunto[i] = new Produto(); conjunto[i].setLoadDividido(Convert.ToInt16(t.Rows[i].ItemArray.GetValue(0)), Convert.ToDouble(t.Rows[i].ItemArray.GetValue(1)), Convert.ToDouble(t.Rows[i].ItemArray.GetValue(2)), Convert.ToInt16(t.Rows[i].ItemArray.GetValue(3)), new Banco().isImpressoProduto(Convert.ToInt16(t.Rows[i].ItemArray.GetValue(0))) ); } return conjunto; }
public Completa getCompleta(int cod_completa, bool cancelado) { string query = "select p.cod_produto,cp.porcentagem, c.valorUnitarioCompleto,cp.cod_tamanho,p.impresso " +"from completo c inner join completoProduto cp on (cp.cod_completo = c.cod_completo) " +"inner join produto p on (p.cod_produto = cp.cod_produto)" +"where c.cod_completo = "+cod_completa+" and c.cancelado = "+cancelado; DataTable dtt = new DataTable(); new NpgsqlDataAdapter(query, Conectar()).Fill(dtt); Produto [] produtos = new Produto[dtt.Rows.Count]; for(int i = 0; i < produtos.Length;i++){ produtos[i] = new Produto(); produtos[i].setLoad( Convert.ToInt16( dtt.Rows[i].ItemArray.GetValue(0)) ,Convert.ToDouble( dtt.Rows[i].ItemArray.GetValue(1)) ,Convert.ToDouble( dtt.Rows[i].ItemArray.GetValue(2)) ,Convert.ToInt16( dtt.Rows[i].ItemArray.GetValue(3)) ,Convert.ToBoolean( dtt.Rows[i].ItemArray.GetValue(4))); } string garconA = "select g.cod_garcon,sum(quantidade) from garcon g inner join garconCompleto gc on(g.cod_garcon = gc.cod_garcon) " + "inner join completo c on(c.cod_completo = gc.cod_completo) where c.cod_completo = " + cod_completa + " and cancelado = false " + " group by g.cod_garcon"; DataTable garc = new DataTable(); new NpgsqlDataAdapter(garconA, Conectar()).Fill(garc); GarconFisico[] gf = new GarconFisico[garc.Rows.Count]; for (int k = 0; k < garc.Rows.Count; k++) { gf[k] = new GarconFisico(); gf[k].setGarcon ( Convert.ToInt16( garc.Rows[k].ItemArray.GetValue(0)), Convert.ToInt16(garc.Rows[k].ItemArray.GetValue(1))); } return new Completa(produtos, cod_completa, gf, valorItemCompleto(cod_completa)); }
//------------------------------------- public int novoCompleto(Produto[] itens, double valor, bool deletado) { bool impresso = true; for (int i = 0; i < itens.Length && impresso; i++) if (!itens[i].impresso) impresso = !impresso; makeCompleto(valor, impresso, deletado); int cod_completo = resgatarUltimaCompleto();//codigo do produto atual for (int i = 0; i < itens.Length; i++) makeCompletoProduto(cod_completo, itens[i].cod_produto, Convert.ToDouble(itens[i].porcentagem), itens[i].cod_tamanho); //ate aqui ta ok return cod_completo; }
private void btEscolhaProduto_Click(object sender, EventArgs e) { try { int cod_tamanho = new Banco().cod_tamanhoDoEscolhido(Convert.ToInt16(mtCodigo.Text), cbTamanho.Text);//cod_tamanho int [] conjuntoCodProduto = new int[qtdProdutos()];//codigos dos produtos conjuntoCodProduto = preencherCodigosProduto(conjuntoCodProduto); if(!codigosAceitos(conjuntoCodProduto)) return; //garantido que os codigos são aceitos double valor = Convert.ToDouble(mtValor.Text);//valor de entrada do produto try { if (mesas.Equals(null)) { } } catch { mesas = new string[1]; mesas[0] = new Banco().trazerNomeMesa(cod_venda); }//mesas int Xcod_garcon; if (new Banco().isVendaBalcao(cod_venda)) Xcod_garcon = new Banco().cod_garconBalcao(); else Xcod_garcon = new Banco().codGarconByNome(getGarcon()); //garcons preenchidos double XquantidadeProduto = Convert.ToDouble( tbQuantidade.Text.Replace('.',',') );// quantidade do produto inserido Produto []produto = new Produto[conjuntoCodProduto.Length]; double [] porcentagem = new Banco().valorPctByDescricao(cbMista.Text); for (int i = 0; i < conjuntoCodProduto.Length;i++ ) { produto[i] = new Produto(); produto[i].setLoad(conjuntoCodProduto[i] ,porcentagem[i] ,valor ,cod_tamanho,new Banco().isImpressoProduto(conjuntoCodProduto[i])) ; } int cod_completo = 1; if ((produto.Length==1) && (new BancoInformacao().existeProdutoNaVenda(cod_venda,produto[0].cod_produto,cod_tamanho,valor))) { cod_completo = new BancoInformacao().codCompletoExistente(cod_venda, produto[0].cod_produto, cod_tamanho, valor); new BancoInformacao().addqtdGarconCompleto(Xcod_garcon, cod_completo, XquantidadeProduto); } else { cod_completo = new BancoInformacao().criarCompleto(cod_venda, Xcod_garcon, valor , XquantidadeProduto, produto[0].impresso, false, produto); //aqui ele deve criar um novo produto } Completa cc = new BancoVenda().getCompleta(cod_completo, false); cc.quantidade = XquantidadeProduto; cc.garconImprimir = getGarcon(); new Banco().inserePrecoCompraEmCompleto(cod_completo, new Banco().valorCompraDoProduto(cc.produto[0].cod_produto, cc.produto[0].cod_tamanho)); cc.segmentoImprimir = new Banco().segmentoDoProduto(Convert.ToInt16( mtCodigo.Text)); if (tbNoticia.TextLength > 0) cc.setNoticia(tbNoticia.Text); if (cc.needImpress) { listaProd[new BancoVenda().codSegmentoByProduto(cc.produto[0].cod_produto) - 1].Add(cc); bool can = true; for (int y = 0; y < conjGarc.ToArray().Length && can; y++) if (conjGarc.ToArray()[y] == getGarcon()) can = !can; if (can) conjGarc.Add(getGarcon()); } // if(MessageBox.Show("DESEJA ACRESCENTAR OUTRO ITEM","INFORMAÇÂO", // MessageBoxButtons.YesNo,MessageBoxIcon.Question,MessageBoxDefaultButton.Button1 // ,MessageBoxOptions.DefaultDesktopOnly) == DialogResult.Yes) // if (MessageBox.Show("ACRESCENTAR OUTRO ITEM??", "CONFIRME SUA OPCAO", MessageBoxButtons.YesNo) == DialogResult.Yes) MessageBox.Show("PRODUTO INSERIDO", "CONFIRMAÇÃO", MessageBoxButtons.OK,MessageBoxIcon.Information); { limpaCampoCodigoProduto(); this.Focus(); mtCodigo.Visible = true; mtCodigo.Focus(); tbQuantidade.Text = 1.ToString("0.00"); this.mtCodigo_KeyPress(sender,new KeyPressEventArgs ('\r')); } if (!(new Banco().isVendaBalcao(cod_venda))) { for (int j = 0; j < listaProd.Length; j++) if (listaProd[j].Count > 0) { new Impressao(new BancoVenda().carregaVenda(cod_venda)).gerarComandaCozinha(listaProd[j].ToArray(), mesas, false); // new Impressao(true, new BancoVenda().carregaVenda(cod_venda)).novoMetodo(listaProd[j].ToArray(), mesas); } } else { try { VendaFull f = (new BancoVenda().carregaVenda(cod_venda)); Pagamento rec = new Pagamento(f.cod_venda,f.subValor,f.valorComissao, f.valorSomado, f.mesa, true); this.Visible = false; rec.ShowDialog(); if (rec.encerrou) { for (int j = 0; j < listaProd.Length; j++) if (listaProd[j].Count > 0) { // new Impressao(new BancoVenda().carregaVenda(cod_venda)).gerarComandaInterna(listaProd[j].ToArray(), mesas); new Impressao( new BancoVenda().carregaVenda(cod_venda)).gerarComandaCozinha(listaProd[j].ToArray(), mesas,false); } MessageBox.Show("VENDA REALIZADA COM SUCESSO", "ATENDIMENDO BALCAO"); } else new BancoVenda().anularVenda(cod_venda, true); this.Visible = true; } catch { } } this.Close(); } catch { }; }