private void btnLocalizar_Click(object sender, EventArgs e)
        {
            frmConsultaCompra f = new frmConsultaCompra();

            f.ShowDialog();
            f.Dispose();
            try
            {
                if (f.codigo != 0)
                {
                    DALConexao       cx     = new DALConexao(DadosDaConexao.stringDeConexao);
                    CompraController comCom = new CompraController(cx);
                    ModeloCompra     modelo = comCom.CarregaModeloCompra(f.codigo);

                    txtCodigo.Text           = modelo.com_cod.ToString();
                    txtNotaFiscal.Text       = modelo.com_nfiscal.ToString();
                    dateCompra.Value         = modelo.com_data;
                    txtCodigoFornecedor.Text = modelo.for_cod.ToString();
                    txtCodigoFornecedor_Leave(sender, e);
                    txtTotal.Text                    = modelo.com_total.ToString();
                    cboNumeroDeParcelas.Text         = modelo.com_nparcelas.ToString();
                    this.totalCompra                 = modelo.com_total;//armazena o valor total da compra
                    cboTipoDePagamento.SelectedValue = modelo.tpa_cod;
                    //itens da compra
                    ItensCompraController itemCompra = new ItensCompraController(cx);
                    DataTable             tabela     = itemCompra.Localizar(modelo.com_cod);
                    for (int i = 0; i < tabela.Rows.Count; i++)
                    {
                        string   icod           = tabela.Rows[i]["pro_cod"].ToString();
                        string   inome          = tabela.Rows[i]["pro_nome"].ToString();
                        string   iqtde          = tabela.Rows[i]["itc_qtde"].ToString();
                        string   ivalorUnitario = tabela.Rows[i]["itc_valor"].ToString();
                        Double   TotalLocal     = Convert.ToDouble(tabela.Rows[i]["itc_qtde"]) * Convert.ToDouble(tabela.Rows[i]["itc_valor"]);
                        String[] it             = new String[] { icod, inome, iqtde, ivalorUnitario, TotalLocal.ToString() };
                        this.dataProdutoItens.Rows.Add(it);
                    }

                    this.alteraBotoes(3);
                }
                else
                {
                    this.limparTela();
                    this.alteraBotoes(1);
                }
                f.Dispose();
            }
            catch //(Exception ex)
            {
                //  throw new Exception(ex.Message);
            }
        }
        private void btnExcluir_Click(object sender, EventArgs e)
        {
            try
            {
                DialogResult d = MessageBox.Show("Deseja excluir esta compra?", "Aviso", MessageBoxButtons.YesNo);
                if (d.ToString().Equals("Yes"))
                {
                    int qtde   = Convert.ToInt32(cboNumeroDeParcelas.Text);
                    int codigo = Convert.ToInt32(txtCodigo.Text);
                    //Conexao
                    DALConexao       cx     = new DALConexao(DadosDaConexao.stringDeConexao);
                    CompraController Compra = new CompraController(cx);
                    qtde -= Compra.QuantidadeParcelasNaoPagas(codigo);
                    if (qtde == 0)//paguei alguma parcelas
                    {
                        //Excluir as parcelas da compra
                        DAOParcelaCompra daoParCom = new DAOParcelaCompra(cx);
                        daoParCom.ExcluirTodasAsParcelas(Convert.ToInt32(txtCodigo.Text));
                        //Excluir itens compra
                        ItensCompraController itensCom = new ItensCompraController(cx);
                        itensCom.ExcluirTodosOsItens(Convert.ToInt32(txtCodigo.Text));
                        //Excluindo a compra

                        Compra.Excluir(Convert.ToInt32(codigo));
                        MessageBox.Show("Compra excluida com sucesso!");
                        this.limparTela();
                        this.alteraBotoes(1);
                    }
                    else
                    {
                        MessageBox.Show("Impossivel excluir o registro.\n O Registro possui parcelas pagas.");
                    }
                }
            }
            catch
            {
                MessageBox.Show("Impossivel excluir o registro \n O registro esta sendo utilido em outro lugar");
                this.alteraBotoes(3);
            }
        }
        private void btnSalvarCompraFinal_Click(object sender, EventArgs e)
        {
            try
            {
                //leitura dos dados
                ModeloCompra modelo = new ModeloCompra();
                modelo.com_data      = dateCompra.Value;
                modelo.com_nfiscal   = Convert.ToInt32(txtNotaFiscal.Text);
                modelo.com_nparcelas = Convert.ToInt32(cboNumeroDeParcelas.Text);
                modelo.com_status    = "ativo";
                modelo.com_total     = this.totalCompra;
                modelo.for_cod       = Convert.ToInt32(txtCodigoFornecedor.Text);
                modelo.tpa_cod       = Convert.ToInt32(cboTipoDePagamento.SelectedValue);

                //obj para gravar no banco
                DALConexao cx     = new DALConexao(DadosDaConexao.stringDeConexao);
                DAOCompra  daoCom = new DAOCompra(cx);

                ModeloItensCompra     mItens = new ModeloItensCompra();
                ItensCompraController cItens = new ItensCompraController(cx);

                ModeloParcelasCompra    mparcerlas  = new ModeloParcelasCompra();
                ParcelaCompraController parControll = new ParcelaCompraController(cx);

                if (this.operacao.Equals("inserir"))
                {
                    //Cadastrar categoria
                    daoCom.Incluir(modelo);
                    //Cadastrar ps itens da compra //cadastrar parcelas da compra
                    for (int i = 0; i < dataProdutoItens.RowCount; i++)
                    {
                        mItens.itc_cod   = i + 1;
                        mItens.com_cod   = modelo.com_cod;
                        mItens.pro_cod   = Convert.ToInt32(dataProdutoItens.Rows[i].Cells[0].Value);
                        mItens.itc_qtde  = Convert.ToInt32(dataProdutoItens.Rows[i].Cells[2].Value);
                        mItens.itc_valor = Convert.ToUInt64(dataProdutoItens.Rows[i].Cells[3].Value);
                        cItens.Incluir(mItens);
                    }
                    //inserir os itens na tabela compra
                    for (int i = 0; i < dataMovimentacao.RowCount; i++)
                    {
                        mparcerlas.com_cod       = mItens.com_cod;
                        mparcerlas.pco_cod       = Convert.ToInt32(dataMovimentacao.Rows[i].Cells[0].Value);
                        mparcerlas.pco_valor     = Convert.ToDouble(dataMovimentacao.Rows[i].Cells[1].Value);
                        mparcerlas.pco_datavecto = Convert.ToDateTime(dataMovimentacao.Rows[i].Cells[2].Value);

                        parControll.Incluir(mparcerlas);
                    }

                    MessageBox.Show("Compra efetuada com sucesso, Código " + modelo.com_cod.ToString());
                }
                else
                {
                    //alterar uma categoria
                    modelo.com_cod = Convert.ToInt32(txtCodigo.Text);
                    daoCom.Alterar(modelo);
                    MessageBox.Show("Compra alterada");
                }
                this.limparTela();
                panel1.Visible   = false;
                pnDados.Visible  = true;
                pnBotoes.Visible = true;
                this.alteraBotoes(1);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro" + ex.Message);
            }
        }