private void btEncerrar_Click(object sender, EventArgs e)
        {
            if (troco >= 0)
            {
                int pag;
                if (rbDinheiro.Checked)
                    pag = 1;
                else if (rbCredito.Checked)
                    pag = 2;
                else if (rbDebito.Checked)
                    pag = 3;
                else if (rbCheque.Checked)
                    pag = 4;
                else pag = 5;

                new BancoVenda().receber(pag, cod_venda);
                new BancoVenda().encerrarVenda( subValor,comissao, (valor - desconto), cod_venda, mesas, isBalcao);
                new BancoVenda().atualizaSuper(new BancoVenda().consultaSuper(cod_venda), (valor - desconto));
                VendaFull temp = new BancoVenda().carregaVenda(cod_venda);
                if (rbSim.Checked)
                {
                    Impressao p = new Impressao(temp);
                    p.gerarComandaNaoFiscal(new BancoVenda().formaPagamento(pag), recebimento, troco);
                }

                encerrou = true;
                this.Close();
            }
        }
 private void btParcial_Click(object sender, EventArgs e)
 {
     try
     {
         produto.quantidade = (int)numQuantidade.Value;
         produto.garconImprimir = produto.garcons[0].nome;
         produto.segmentoImprimir = new Banco.Banco().segmentoDoProduto(produto.produto[0].cod_produto);
         VendaFull vf = new BancoVenda().carregaVenda(cod_venda);
         new Impressao(vf).gerarComandaCozinha(new Completa[] { produto }, vf.mesa, true);
     }
     catch { return; }
     this.Close();
 }
        public void atualiza()
        {
            if (retira)
            {
                listVenda.Clear();
                listVenda.LargeImageList = imageList1;

                string[] mesa = new BancoVenda().mesasDaVenda(cod_venda);
                for (int i = 0; i < mesa.Length; i++)
                {
                    conjItem.Add(new ListViewItem(mesa[i], 0));
                    listVenda.Items.Add(conjItem.Last());
                }
                // Allow the user to rearrange columns.
                listVenda.AllowColumnReorder = true;

                // Select the item and subitems when selection is made.
                listVenda.FullRowSelect = true;
                // Display grid lines.
                listVenda.GridLines = true;
                // Sort the items in the list in ascending order.
                //  listMesas.Sorting = SortOrder.Ascending;
                listVenda.CheckBoxes = true;
                this.btConfirmar.BackgroundImage = global::Pizzaria.Properties.Resources.BTnewAvancar;
                //       btConfirmar.BackgroundImage = this.BackgroundImage.
            }
            else
            {
                listVenda.Clear();
                listVenda.LargeImageList = imageList1;

                string[] mesa = new Banco().mesasDisponiveis();
                for (int i = 0; i < mesa.Length; i++)
                {
                    conjItem.Add(new ListViewItem(mesa[i], 4));
                    listVenda.Items.Add(conjItem.Last());
                }
                listVenda.AllowColumnReorder = true;
                listVenda.FullRowSelect = true;
                listVenda.GridLines = true;
                listVenda.CheckBoxes = true;

            }
        }
        public void carregarGridItem()
        {
            try
            {
                DataTable t = new Banco().informacoes(listVenda.FocusedItem.Text);
                lvInfo.Items.Clear();
                for (int i = 0; i < t.Rows.Count; i++)
                {
                    lvInfo.Items.Add(new Banco().informacoes2(Convert.ToInt32(t.Rows[i].ItemArray.GetValue(0))));
                    lvInfo.Items[i].SubItems.Add(t.Rows[i].ItemArray.GetValue(1).ToString());
                    lvInfo.Items[i].SubItems.Add("R$ " + new Tratamento().retornaValorEscrito(Convert.ToDouble(t.Rows[i].ItemArray.GetValue(2))));
                    lvInfo.Items[i].SubItems.Add("" + new BancoInformacao().quantidadeCompletaByCodigo(Convert.ToInt32(t.Rows[i].ItemArray.GetValue(0))).ToString("0.000"));

                    lvInfo.Items[i].SubItems.Add("" +(Convert.ToDouble(t.Rows[i].ItemArray.GetValue(2))* new BancoInformacao().quantidadeCompletaByCodigo(Convert.ToInt32(t.Rows[i].ItemArray.GetValue(0)))).ToString("0.00"));
                }
                VendaFull vf =  new BancoVenda().carregaVenda(new Banco().codVendaSelecionada2(listVenda.FocusedItem.Text));
                lValor.Text = "SUB TOTAL R$ " + new Tratamento().retornaValorEscrito(vf.subValor);

                lValor2.Text ="COUVERT R$ " + new Tratamento().retornaValorEscrito(vf.valorComissao);
                lValor3.Text ="TOTAL PARCIAL R$ "+ new Tratamento().retornaValorEscrito(vf.valorSomado);
                lValor.Visible = true;
                if (vf.valorComissao > 0)
                {

                    lValor.Margin = new Padding(3, 9, 4, 0);
                    lValor2.Visible = true;
                    lValor3.Visible = true;
                }
                else
                {
                    lValor.Margin = new Padding(150, 9, 4, 0);
                    lValor2.Visible = false;
                    lValor3.Visible = false;
                }
            }
            catch { return; }
        }
        // olhar os 3 metodos depois de criar as aberturas das telas usadas pelos metodos !!!!!!!!!!!!!!!!!!!!!!!!!!
        private void MSImprimir_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Confirma Impressão?", "Confirme sua Opcao", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    int cod_venda = new Banco().codigoDaVendaPelaMesa(listVenda.FocusedItem.Text);
                    VendaFull vd = new BancoVenda().carregaVenda(cod_venda);
                    Impressao p = new Impressao();
                    new BancoVenda().imprimiu(cod_venda);
                    p.imprimirComanda(1, vd);
                    new BancoVenda().imprimiu(cod_venda);
                    carregarMesa(true);

                }
            }
            catch { }
        }
 private void btConfirmar_Click(object sender, EventArgs e)
 {
     if (agrupar) {
         if (listVenda.CheckedItems.Count < 2) MessageBox.Show("Selecione duas ou mais vendas para Uni-las", "MENSAGEM");
         else
         {string [] mesas =  new string [listVenda.CheckedItems.Count];
             for (int i = 0; i < listVenda.CheckedItems.Count; i++)
                 mesas [i]= (listVenda.CheckedItems[i].Text);
             new BancoVenda().unirVendas(mesas, (cbMista.Text));
          cod_venda =    new Banco().codigoDaVendaPelaMesa(cbMista.Text);
          new BancoInformacao().unirProdutosIguais(new BancoVenda().carregaVenda(cod_venda));
         }
     }
     else
     if (!troca)
         for (int i = 0; i < listVenda.CheckedItems.Count; i++)
         {
             if (retira) new BancoVenda().removerMesaIntoVenda(cod_venda, new BancoVenda().codMesaPelaDescricao(listVenda.CheckedItems[i].Text));
             else new BancoVenda().inserirMesaIntoVenda(cod_venda, new BancoVenda().codMesaPelaDescricao(listVenda.CheckedItems[i].Text));
         }
     else
     {
         if (listVenda.CheckedItems.Count > 0)
         {
             string[] mesa = new BancoVenda().mesasDaVenda(cod_venda);
             for (int i = 0; i < listVenda.CheckedItems.Count; i++)
                 new BancoVenda().inserirMesaIntoVenda(cod_venda, new BancoVenda().codMesaPelaDescricao(listVenda.CheckedItems[i].Text));
             for (int i = 0; i < mesa.Length; i++)
                 new BancoVenda().removerMesaIntoVenda(cod_venda, new BancoVenda().codMesaPelaDescricao(mesa[i]));
         }
     }
     this.Close();
 }
        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 { };
        }
        private void MSProduto_Click(object sender, EventArgs e)
        {
            ListViewItem t = lvInfo.FocusedItem;
            try
            {
                if (t.Equals(null))
                {
                    return;
                }
            }
            catch
            {
                return;
            }
            int asd =
            venda.Completos[Convert.ToInt16(lvInfo.FocusedItem.SubItems[0].Text) - 1].cod_completo;
            try
            {
                DataTable dttGarcon = new Banco().GarconDaVenda(venda.cod_venda);

                if (dttGarcon.Rows.Count > 1)
                {
                    Garcon g = new Garcon(venda.cod_venda);
                    g.ShowDialog();

                    Completa cc = new BancoVenda().getCompleta(asd, false);
                    new BancoInformacao().addqtdGarconCompleto(g.getRetorno(), asd, 1);// cod_garcon cod_completo quantidade
                    if (cc.needImpress)
                    {
                        cc.garconImprimir = new BancoVenda().nomeGarcon(g.getRetorno());
                        cc.quantidade = 1;
                        cc.segmentoImprimir = new Banco().segmentoDoProduto(cc.produto[0].cod_produto);
                        Impressao p = new Impressao(venda);
                        p.gerarComandaCozinha(new Completa[] { cc }, venda.mesa,false );
                    }
                }
                else
                    {

                        Completa cc = new BancoVenda().getCompleta(asd, false);
                        new BancoInformacao().addqtdGarconCompleto(Convert.ToInt16(dttGarcon.Rows[0].ItemArray.GetValue(0)),
                       asd, 1);
                        if (cc.needImpress)
                        {
                            cc.garconImprimir = cc.garcons[0].nome;
                            cc.quantidade = 1;
                            cc.segmentoImprimir = new Banco().segmentoDoProduto(cc.produto[0].cod_produto);
                            Impressao p = new Impressao(venda);
                            p.gerarComandaCozinha(new Completa[] { cc }, venda.mesa, false);
                        }
                    }

                venda = new BancoVenda().carregaVenda(venda.cod_venda);
                tamanhoMTVALOR(venda);
                carregarListView(venda);
                regularTamanho(lvInfo.Width);
            }
            catch { }
        }
        private void lvInfo_ItemActivate(object sender, EventArgs e)
        {
            try
            {
                ListViewItem t = lvInfo.FocusedItem;
                int asd =
                venda.Completos[Convert.ToInt16(lvInfo.FocusedItem.SubItems[0].Text) - 1].cod_completo;
                DataTable dttGarcon = new Banco().GarconDaVenda(venda.cod_venda);

                if (dttGarcon.Rows.Count > 1)
                {
                    Garcon g = new Garcon(venda.cod_venda);
                    g.ShowDialog();

                    Completa cc = new BancoVenda().getCompleta(asd, false);
                    new BancoInformacao().addqtdGarconCompleto(g.getRetorno(), asd, 1);// cod_garcon cod_completo quantidade
                    if (cc.needImpress)
                    {
                        cc.garconImprimir = new BancoVenda().nomeGarcon(g.getRetorno());
                        cc.quantidade = 1;
                        cc.segmentoImprimir = new Banco().segmentoDoProduto(cc.produto[0].cod_produto);
                        Impressao p = new Impressao(venda);
                        p.gerarComandaCozinha(new Completa[] { cc }, venda.mesa, false);
                    }
                }
                else
                    if (MessageBox.Show("Acrescentar Mais Um ?", "Confirme sua Opcao", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification) == DialogResult.Yes)
                    {
                        Completa cc = new BancoVenda().getCompleta(asd, false);
                        new BancoInformacao().addqtdGarconCompleto(Convert.ToInt16(dttGarcon.Rows[0].ItemArray.GetValue(0)),
                       asd, 1);
                        if (cc.needImpress)
                        {
                            cc.garconImprimir = cc.garcons[0].nome;
                            cc.quantidade = 1;
                            cc.segmentoImprimir = new Banco().segmentoDoProduto(cc.produto[0].cod_produto);
                            Impressao p = new Impressao(venda);
                            p.gerarComandaCozinha(new Completa[] { cc }, venda.mesa, false);
                        }
                    }

                venda = new BancoVenda().carregaVenda(venda.cod_venda);
                tamanhoMTVALOR(venda);
                carregarListView(venda);
                regularTamanho(lvInfo.Width);
            }
            catch { return; }
        }