private void btLocalizar_Click(object sender, EventArgs e)
        {
            frmConsultaCompra f = new frmConsultaCompra();
            f.ShowDialog();
            f.Dispose();

            if (f.codigo != 0)
            {
                DALConexao cx = new DALConexao(DadosConexao.StringDeConexao);
                BLLCompra bll = new BLLCompra(cx);
                ModeloCompra modelo = bll.CarregaModeloCompra(f.codigo);

                txtCodigo.Text = modelo.ComCod.ToString();
                txtDataCompra.Text = modelo.ComData;
                txtNota.Text = modelo.ComNfiscal.ToString();
                txtValorTotal.Text = modelo.ComTotal.ToString();
                txtNParcelas.Text = modelo.ComParcelas.ToString();
                txtStatus.Text = modelo.ComStatus.ToString();
                txtFornecedor.Text = modelo.ForCod.ToString();
                txtTipoPagamento.Text = modelo.TpaCod.ToString();

                alteraBotoes(3);
            }
            else
            {
                this.LimpaTela();
                this.alteraBotoes(1);
            }
            f.Dispose();
        }
        private void btExcluir_Click(object sender, EventArgs e)
        {
            try
            {
                DialogResult d = MessageBox.Show("Deseja excluir o registro?", "Aviso", MessageBoxButtons.YesNo);
                if (d.ToString() == "Yes")
                {
                    DALConexao cx = new DALConexao(DadosConexao.StringDeConexao);
                    BLLCompra bll = new BLLCompra(cx);
                    bll.Excluir(Convert.ToInt32(txtCodigo.Text));
                    this.LimpaTela();
                    this.alteraBotoes(1);

                }
            }
            catch
            {
                MessageBox.Show("Impossível excluir o registro. \n O registro está sendo utilizado");
                this.alteraBotoes(2);
            }
        }
        private void btnParcela_Click(object sender, EventArgs e)
        {
            DALConexao cx            = new DALConexao(DadosDaConexao.StringDeConexão);
            BLLCompra  bll           = new BLLCompra(cx);
            int        codigocompra  = Convert.ToInt32(dgvCompras.CurrentRow.Cells["CODIGO"].Value);
            int        parcelacompra = Convert.ToInt32(dgvParcelas.CurrentRow.Cells[0].Value);

            try
            {
                if (btnParcela.Text == "Pagar Parcela")
                {
                    bll.ParcelasCompraPagar(codigocompra, parcelacompra);
                    Mensagem("PAGAMENTO DA PARCELA REALIZADO COM SUCESSO. ", Color.Blue);
                }
                else
                {
                    DialogResult result = MessageBox.Show("DESEJA REALMENTE CANCELAR O PAGAMENTO SELECIONADO? ", "AVISO", MessageBoxButtons.YesNo);
                    if (result.ToString() == "Yes")
                    {
                        bll.ParcelasCompraCancelar(codigocompra, parcelacompra);
                        Mensagem("PAGAMENTO DA PARCELA CANCELADO COM SUCESSO. ", Color.Blue);
                    }
                    else
                    {
                        return;
                    }
                }
            }
            catch (Exception erro)
            {
                Erro("ERRO AO REALIZAR A OPERAÇÃO " + erro.Message);;
            }
            bll.AtualizaStatusCompra(codigocompra);
            ParcelasCompra();
            SelecionarParcelaNaoPaga();
            btnParcela.Text = (dgvParcelas.CurrentRow.Cells["DATA_PAGAMENTO"].Value.ToString() == "") ? "Pagar Parcela" : "Cancelar Pagamento";
        }
Beispiel #4
0
        private void btnLocalizar_Click(object sender, EventArgs e)
        {
            //Localizar a compra e preencher os campos
            frmConsultaCompra f = new frmConsultaCompra();

            f.ShowDialog();
            if (f.codigo != 0)
            {
                this.comcod = f.codigo;
                DALConexao       cx      = new DALConexao(DadosDaConexao.StringDeConexão);
                BLLCompra        bll     = new BLLCompra(cx);
                ModeloCompra     modelo  = bll.CarregaModeloCompra(f.codigo);
                BLLFornecedor    bllf    = new BLLFornecedor(cx);
                ModeloFornecedor modelof = bllf.CarregaModeloFornecedor(modelo.for_cod);
                txtCodigoCompra.Text   = modelo.com_cod.ToString();
                dtpDataPagamento.Value = modelo.com_data;
                txtValor.Text          = modelo.com_total.ToString();
                txtNomeFornecedor.Text = modelof.for_nome;
                //Localizar os itens da compra
                BLLParcelasCompra bllp = new BLLParcelasCompra(cx);
                dgvParcelas.DataSource         = bllp.Localizar(modelo.com_cod);
                dgvParcelas.Columns[4].Visible = false;
            }
        }
Beispiel #5
0
        //-------------------------------------------------------------------------------------------------------------------
        private void btSalvarParcela_Click(object sender, EventArgs e)
        {
            //criei a conexao
            SqlConnection cn = new SqlConnection();

            cn.ConnectionString = DALDadosDoBanco.stringDeConexao;
            cn.Open();
            //triar a transacao
            SqlTransaction tran = cn.BeginTransaction();

            try
            {
                if (this.operacao == "inserir")
                {
                    ModeloCompra compra = new ModeloCompra();
                    compra.com_nfiscal    = Convert.ToInt32(txtNFiscal.Text);
                    compra.for_cod        = Convert.ToInt32(txtForCod.Text);
                    compra.com_data       = dtVenda.Value;
                    compra.com_pagto_data = dtParcela.Value;
                    if ((cbTipoPagamento.Text == "DINHEIRO") || (cbTipoPagamento.Text == "Dinheiro"))
                    {
                        compra.com_pagto_dinheiro = Convert.ToDouble(txtTotal.Text);
                    }
                    if ((cbTipoPagamento.Text == "CARTAO") || (cbTipoPagamento.Text == "CARTÃO") || (cbTipoPagamento.Text == "Cartão") || (cbTipoPagamento.Text == "Cartao"))
                    {
                        compra.com_pagto_cartao = Convert.ToDouble(txtTotal.Text);
                    }
                    compra.com_data        = dtVenda.Value;
                    compra.tpa_cod         = Convert.ToInt32(cbTipoPagamento.SelectedValue);
                    compra.com_nparcela    = Convert.ToInt32(nupParcelas.Value);
                    compra.com_status      = 1;
                    compra.com_pagto_total = Convert.ToDouble(txtTotal.Text);
                    //inserindo a venda
                    BLLCompra BLLcompra = new BLLCompra();
                    //BLLcompra.incluir(compra);
                    BLLcompra.Incluir(compra, cn, tran);
                    //inserir os itens
                    ModeloItensCompra item    = new ModeloItensCompra();
                    BLLItensCompra    BllItem = new BLLItensCompra();
                    for (int i = 0; i < dgvItens.RowCount; i++)
                    {
                        item.itc_cod   = i + 1;
                        item.pro_cod   = Convert.ToInt32(dgvItens.Rows[i].Cells[0].Value);
                        item.com_cod   = Convert.ToInt32(compra.com_cod);
                        item.itc_qtde  = Convert.ToInt32(dgvItens.Rows[i].Cells[2].Value);
                        item.itc_valor = Convert.ToDouble(dgvItens.Rows[i].Cells[3].Value);

                        //BllItem.incluir(item);
                        BllItem.Incluir(item, cn, tran);
                    }
                    ModeloParcelascompra pc    = new ModeloParcelascompra();
                    BLLParcelasCompra    bllpc = new BLLParcelasCompra();
                    for (int i = 0; i < dgvParcelas.RowCount; i++)
                    {
                        pc.pco_cod       = i + 1;
                        pc.com_cod       = compra.com_cod;
                        pc.pco_valor     = Convert.ToDouble(dgvParcelas.Rows[i].Cells[1].Value);
                        pc.pco_datavecto = Convert.ToDateTime(dgvParcelas.Rows[i].Cells[2].Value);

                        //bllpv.incluir(pv);
                        bllpc.Incluir(pc, cn, tran);
                    }
                    tran.Commit();
                    MessageBox.Show("Registro incluido com sucesso \n Código Gerado: " + compra.com_cod, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception erro)
            {
                tran.Rollback();
                MessageBox.Show(erro.Message);
            }
            finally
            {
                cn.Close();
            }
            this.LimpaTela();
            this.alteraBotoes(1);
            pnFinalizaVenda.Visible = false;
        }
        private void btSalvarParcelas_Click(object sender, EventArgs e)
        {
            DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);

            cx.Conectar();
            cx.IniciarTransacao();

            try
            {
                ModeloCompra modeloCompra = new ModeloCompra();
                modeloCompra.ComData      = dtDataCompra.Value;
                modeloCompra.ComNFiscal   = Convert.ToInt32(txtNFiscal.Text);
                modeloCompra.ComNParcelas = Convert.ToInt32(cbNParcelas.Text);
                modeloCompra.ComStatus    = "ativo";
                modeloCompra.ComTotal     = this.totalCompra;
                modeloCompra.ForCod       = Convert.ToInt32(txtForCod.Text);
                modeloCompra.TpaCod       = Convert.ToInt32(cbTPagto.SelectedValue);

                BLLCompra bll = new BLLCompra(cx);

                ModeloItensCompra mitens = new ModeloItensCompra();
                BLLItensCompra    bitens = new BLLItensCompra(cx);

                ModeloParcelaCompra mparcelas = new ModeloParcelaCompra();
                BLLParcelaCompra    bparcelas = new BLLParcelaCompra(cx);

                if (this.operacao == "inserir")
                {
                    //cadastrar compra
                    bll.Incluir(modeloCompra);

                    //cadastrar itens das compras
                    for (int i = 0; i < dgvItens.RowCount; i++)
                    {
                        mitens.ItcCod   = i + 1;
                        mitens.ComCod   = modeloCompra.ComCod;
                        mitens.ProCod   = Convert.ToInt32(dgvItens.Rows[i].Cells[0].Value);
                        mitens.ItcQtde  = Convert.ToInt32(dgvItens.Rows[i].Cells[2].Value);
                        mitens.ItcValor = Convert.ToDouble(dgvItens.Rows[i].Cells[3].Value);
                        bitens.Incluir(mitens);
                        //trigger para alterar estoque foi feito no sqlserver
                    }

                    //inserir os itens na tabela parcelascompra
                    for (int i = 0; i < dgvParcelas.RowCount; i++)
                    {
                        mparcelas.ComCod       = modeloCompra.ComCod;
                        mparcelas.PcoCod       = Convert.ToInt32(dgvParcelas.Rows[i].Cells[0].Value);
                        mparcelas.PcoValor     = Convert.ToDouble(dgvParcelas.Rows[i].Cells[1].Value);
                        mparcelas.PcoDataVecto = Convert.ToDateTime(dgvParcelas.Rows[i].Cells[2].Value);
                        bparcelas.Incluir(mparcelas);
                    }
                    //cadastrar parcelas da compra
                    MessageBox.Show("Compra efetuada: Código " + modeloCompra.ComCod.ToString());
                }
                else
                {
                    //alterar
                    modeloCompra.ComCod = Convert.ToInt32(txtCodCom.Text);
                    bll.Alterar(modeloCompra);

                    bitens.ExcluirTodosOsItens(modeloCompra.ComCod);
                    //cadastrar itens das compras
                    for (int i = 0; i < dgvParcelas.RowCount; i++)
                    {
                        mparcelas.ComCod       = modeloCompra.ComCod;
                        mparcelas.PcoCod       = Convert.ToInt32(dgvParcelas.Rows[i].Cells[0].Value);
                        mparcelas.PcoValor     = Convert.ToDouble(dgvParcelas.Rows[i].Cells[1].Value);
                        mparcelas.PcoDataVecto = Convert.ToDateTime(dgvParcelas.Rows[i].Cells[2].Value);
                        bparcelas.Incluir(mparcelas);
                    }

                    bparcelas.ExcluirTodasAsParcelas(modeloCompra.ComCod);
                    //inserir os itens na tabela parcelascompra
                    for (int i = 0; i < dgvParcelas.RowCount; i++)
                    {
                        mparcelas.ComCod       = modeloCompra.ComCod;
                        mparcelas.PcoCod       = Convert.ToInt32(dgvParcelas.Rows[i].Cells[0].Value);
                        mparcelas.PcoValor     = Convert.ToDouble(dgvParcelas.Rows[i].Cells[1].Value);
                        mparcelas.PcoDataVecto = Convert.ToDateTime(dgvParcelas.Rows[i].Cells[2].Value);
                        bparcelas.Incluir(mparcelas);
                    }
                    MessageBox.Show("Cadastro alterado! ");
                }
                this.LimpaTela();
                pnFinalizaCompra.Visible = false;
                this.alteraBotoes(1);
                cx.TerminarTransacao();
                cx.Desconectar();
            }
            catch (Exception erro)
            {
                MessageBox.Show(erro.Message);
                cx.CancelaTransacao();
                cx.Desconectar();
            }
        }
        private void btSalvar_Click(object sender, EventArgs e)
        {
            try
            {

                //leitura dos dados
                ModeloCompra modelo = new ModeloCompra();

                modelo.ComData          = Convert.ToString(txtDataCompra.Text);
                modelo.ComNfiscal       = Convert.ToInt32(txtNota.Text);
                modelo.TpaCod           = Convert.ToInt32(txtTipoPagamento.SelectedValue);
                modelo.ComStatus        = Convert.ToString(txtStatus.Text);
                modelo.ComTotal         = Convert.ToDecimal(txtValorTotal.Text);
                modelo.ComParcelas      = Convert.ToInt32(txtNParcelas.Text);
                modelo.ForCod           = Convert.ToInt32(txtFornecedor.Text);

                //obj para gravar os dados no banco
                DALConexao cx = new DALConexao(DadosConexao.StringDeConexao);
                BLLCompra bll = new BLLCompra(cx);

                if (this.operacao == "inserir")
                {
                    //cadastrar uma categoria
                    bll.Incluir(modelo);
                    MessageBox.Show("Cadastro efetuado: Código: " + modelo.ComCod.ToString());

                }
                else
                {
                    //alterar uma categoria
                    modelo.ForCod = Convert.ToInt32(txtCodigo.Text);
                    bll.Alterar(modelo);
                    MessageBox.Show("Cadastro alterado");
                }
                this.LimpaTela();
                this.alteraBotoes(1);
            }
            catch (Exception erro)
            {
                MessageBox.Show(erro.Message);
            }
        }
        //Evenoto click salvar
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            if (btnSalvar.Text == "Salvar")
            {
                if (txtNotaFiscal.Text == "" || cbxQuantParcela.Text == "" || cbxStatus.Text == "" || cbxFornecedor.Text == "" || cbxTipoPagamento.Text == "") //Analisando se foi preenchido todos os dados
                {
                    MessageBox.Show("Preencha todos os dados!");
                }
                else if (DateTime.Today > dtpDataCompra.Value.Date) //Analisando se a data informada é maior ou igual a hora atual
                {
                    MessageBox.Show("A Data da compra não pode ser menor que a data atual!");
                }
                else if (dgvProduto.RowCount == 0) //Analisando se foi informado algum produto
                {
                    MessageBox.Show("Adicione os produtos!", "OK");
                }
                else
                {
                    try
                    {
                        //Passando os dados da compra
                        Compra.CompraData       = dtpDataCompra.Value.Date;
                        Compra.CompraNotaFiscal = txtNotaFiscal.Text;
                        Compra.CompraValor      = double.Parse(txtValor.Text);
                        Compra.CompraParcelas   = int.Parse(cbxQuantParcela.Text);
                        Compra.CompraStatus     = cbxStatus.Text;
                        Compra.FornecedorCod    = (int)cbxFornecedor.SelectedValue;
                        Compra.TipoPagCod       = (int)cbxTipoPagamento.SelectedValue;
                        //Salnvando a compra
                        BLLCompra.Incluir(Compra);
                        //Pegando o id da compra salva
                        Compra.CompraCod = int.Parse(DALCompra.PegarId());
                        //Criando um variavel para salvar a data da nova prestação
                        DateTime ProximaPrestação = dtpDataCompra.Value.Date;
                        //Criando e salvando as parcelas
                        for (int i = 0; i < Compra.CompraParcelas; i++)
                        {
                            Compra.Parcelas.Add(new MParcelasCompra(double.Parse(txtValorParcela.Text), ProximaPrestação.AddMonths(i + 1), Compra.CompraCod)); //Instanciando a parcela

                            //Salvando as Parcelas
                            BLLParcelasCompras.Incluir(Compra.Parcelas[i]);
                        }

                        //Salvando os Produtos e consequentemente o item
                        foreach (var item in Compra.Itens)
                        {
                            //Verificar se o produto não já existe, caso sim só será associado ao item compra
                            if (item.Produto.CodigoProduto == 0)
                            {
                                //Analisando  se a compra foi finalizada, pois caso seja o valor do produto será incrementado
                                if (cbxStatus.Text != "FINALIZADA")
                                {
                                    item.Produto.QuantProduto = 0;

                                    //Colando ele fora de Estoque, pois a compra não foi finalizada
                                    item.Produto.StatusProduto = "FORA DE ESTOQUE";
                                }

                                //Chamando o metodo Incluir um produto
                                BLLProduto.Incluir(item.Produto);
                            }
                            else //Significa que o produto já existe
                            {
                                var tabela = DALProduto.PegarDados(item.Produto.CodigoProduto); //Pegando os dados do produto já existente
                                //Passando os dados para as variáveis
                                int    cod    = int.Parse(tabela.Rows[0]["produto_cod"].ToString());
                                string nome   = tabela.Rows[0]["produto_nome"].ToString();
                                string desc   = item.Produto.DescricaoProduto;
                                double valor  = item.Produto.ValorVendaProduto;
                                double quant  = double.Parse(tabela.Rows[0]["produto_qtde"].ToString());
                                string status = item.Produto.StatusProduto;
                                int    codUni = item.Produto.CodigoUnidadeMedida;
                                int    codCat = item.Produto.CodigoCategoria;
                                int    codSub = 0;
                                //Analisado se tem subcategoria
                                if (tabela.Rows[0]["subCategoria_cod"].ToString() != "")
                                {
                                    codSub = int.Parse(tabela.Rows[0]["subCategoria_cod"].ToString());
                                }

                                //Analisando  se a compra foi finalizada, pois caso seja o valor do produto será incrementado
                                if (cbxStatus.Text == "FINALIZADA")
                                {
                                    quant = quant + item.ItemCompraQuant;
                                }
                                else if (quant == 1) //Analizando se ainda tem produto em estoque, caso não ele terá seu status mudado
                                {
                                    //Colando ele fora de Estoque, pois a compra não foi finalizada
                                    item.Produto.StatusProduto = "FORA DE ESTOQUE";
                                }

                                //Instanciando o obj produto
                                MProduto prodExiste = new MProduto(nome, desc, valor, quant, status, codUni, codCat, codSub);
                                prodExiste.CodigoProduto = cod; //Pegando o id
                                //Passando o id do produto
                                item.Produto.CodigoProduto = cod;
                                //Atualizando as informações
                                BLLProduto.Alterar(prodExiste);
                            }

                            //Passando o id da compra
                            item.CompraCodigo = Compra.CompraCod;
                            //Salvando o produto na lista item
                            BLLItensCompra.Incluir(item);
                        }
                        MessageBox.Show("Compra Salva Com Sucesso!");
                        dgvCompra.DataSource = DALCompra.CarregarGrid();
                        //Limpando os campos
                        txtNotaFiscal.Clear();
                        txtValor.Clear();
                        txtValorParcela.Clear();
                        txtValor.Clear();
                        cbxQuantParcela.SelectedIndex  = -1;
                        cbxStatus.SelectedIndex        = -1;
                        cbxFornecedor.SelectedIndex    = -1;
                        cbxTipoPagamento.SelectedIndex = -1;
                        dtpDataCompra.Value            = DateTime.Today;
                        Compra.Itens.Clear(); //Limpando os produtos
                        CarregarGrid();
                    }
                    catch (SqlException erro)
                    {
                        MessageBox.Show(erro.Message, "OK");
                        //Apagando tudo caso haja um erro
                        DALCompra.Excluir(int.Parse(DALCompra.PegarId()));
                    }
                    catch (Exception erro)
                    {
                        MessageBox.Show(erro.Message, "OK");
                        //Apagando tudo caso haja um erro
                        DALCompra.Excluir(int.Parse(DALCompra.PegarId()));
                    }
                }
            }
            else
            {
                if (txtNotaFiscal.Text == "" || cbxQuantParcela.Text == "" || cbxStatus.Text == "" || cbxFornecedor.Text == "" || cbxTipoPagamento.Text == "") //Analisando se foi preenchido todos os dados
                {
                    MessageBox.Show("Preencha todos os dados!");
                }
                else if (DateTime.Today > dtpDataCompra.Value.Date) //Analisando se a data informada é maior ou igual a hora atual
                {
                    MessageBox.Show("A Data da compra não pode ser menor que a data atual!");
                }
                else if (dgvProduto.RowCount == 0) //Analisando se foi informado algum produto
                {
                    MessageBox.Show("Adicione os produtos!", "OK");
                }
                else
                {
                    try
                    {
                        //if Compra.Itens.
                        //Passando os dados da compra
                        Compra.CompraCod        = int.Parse(txtCodigo.Text);
                        Compra.CompraData       = dtpDataCompra.Value.Date;
                        Compra.CompraNotaFiscal = txtNotaFiscal.Text;
                        Compra.CompraValor      = double.Parse(txtValor.Text);
                        Compra.CompraParcelas   = int.Parse(cbxQuantParcela.Text);
                        Compra.CompraStatus     = cbxStatus.Text;
                        Compra.FornecedorCod    = (int)cbxFornecedor.SelectedValue;
                        Compra.TipoPagCod       = (int)cbxTipoPagamento.SelectedValue;
                        //Salnvando a compra
                        BLLCompra.Alterar(Compra);

                        MParcelasCompra parcelas = new MParcelasCompra();
                        parcelas.CompraCodigo = Compra.CompraCod;
                        //Excluindo parcelas salvas
                        BLLParcelasCompras.Excluir(parcelas);

                        //Criando um variavel para salvar a data da nova prestação
                        DateTime ProximaPrestação = dtpDataCompra.Value.Date;
                        //Criando e salvando as parcelas



                        for (int i = 0; i < int.Parse(cbxQuantParcela.Text); i++)
                        {
                            Compra.Parcelas.Add(new MParcelasCompra(double.Parse(txtValorParcela.Text), ProximaPrestação.AddMonths(i), Compra.CompraCod)); //Instanciando a parcela

                            //Salvando as Parcelas
                            BLLParcelasCompras.Incluir(Compra.Parcelas[i]);
                        }

                        //excluindo os itens da lista de excluidos
                        foreach (var lista in ListaItensExcluidos)
                        {
                            //int teste = int.Parse(dgvProduto.CurrentRow.Cells[6].Value.ToString());
                            //BLLProduto.Alterar(int.Parse(dgvProduto.CurrentRow.Cells[6].Value.ToString()));
                            BLLItensCompra.Excluir(lista);
                        }
                        foreach (var lista in ListaProdutosExcluidos)
                        {
                            BLLProduto.Alterar(lista);
                        }

                        //Salvando os Produtos e consequentemente o item
                        foreach (var item in Compra.Itens)
                        {
                            //Analisando  se a compra foi finalizada, pois caso seja o valor do produto será incrementado
                            if (cbxStatus.Text != "FINALIZADA")
                            {
                                item.Produto.QuantProduto = 0;
                            }
                            else
                            {
                                item.Produto.QuantProduto = item.ItemCompraQuant;
                            }
                            if (item.Produto.QuantProduto == 0)
                            {
                                item.Produto.StatusProduto = "FORA DE ESTOQUE";
                            }

                            //Chamando o metodo Alterar um produto
                            BLLProduto.Alterar(item.Produto);


                            //Passando o id da compra
                            item.CompraCodigo = int.Parse(txtCodigo.Text);


                            //Salvando o produto na lista item
                            BLLItensCompra.Alterar(item);
                            //Salva o produto caso durante a alteração tenha sido criado o novo produto
                            if (item.Produto.CodigoProduto == 0)
                            {
                                //Analisando  se a compra foi finalizada, pois caso seja o valor do produto será incrementado
                                if (cbxStatus.Text != "FINALIZADA")
                                {
                                    item.Produto.QuantProduto = 0;


                                    //Colando ele fora de Estoque, pois a compra não foi finalizada
                                    item.Produto.StatusProduto = "FORA DE ESTOQUE";
                                }

                                //Chamando o metodo Incluir um produto
                                BLLProduto.Incluir(item.Produto);
                                //Passando o id da compra
                                item.CompraCodigo = Compra.CompraCod;
                                //Salvando o produto na lista item
                                BLLItensCompra.Incluir(item);
                            }
                            else
                            {
                                bool verificaexistencia = true;
                                foreach (var itensanterior in CompraAnterior.Itens)
                                {
                                    if (itensanterior.ItemCompraCodigo == item.ItemCompraCodigo)
                                    {
                                        verificaexistencia = true;
                                        break;
                                    }
                                    else
                                    {
                                        verificaexistencia = false;
                                    }
                                }
                                if (verificaexistencia == false)
                                {
                                    if (cbxStatus.Text != "FINALIZADA")
                                    {
                                        item.Produto.QuantProduto = 0;


                                        //Colando ele fora de Estoque, pois a compra não foi finalizada
                                        item.Produto.StatusProduto = "FORA DE ESTOQUE";
                                    }

                                    //Chamando o metodo Incluir um produto
                                    BLLProduto.Incluir(item.Produto);
                                    //Passando o id da compra
                                    item.CompraCodigo = Compra.CompraCod;
                                    //Salvando o produto na lista item
                                    BLLItensCompra.Incluir(item);
                                }
                            }
                        }
                        MessageBox.Show("Compra Salva Com Sucesso!");
                        dgvCompra.DataSource = DALCompra.CarregarGrid();
                        //Limpando os campos
                        txtNotaFiscal.Clear();
                        txtValor.Clear();
                        txtValorParcela.Clear();
                        txtValor.Clear();
                        cbxQuantParcela.SelectedIndex  = -1;
                        cbxStatus.SelectedIndex        = -1;
                        cbxFornecedor.SelectedIndex    = -1;
                        cbxTipoPagamento.SelectedIndex = -1;
                        dtpDataCompra.Value            = DateTime.Today;
                        Compra.Itens.Clear(); //Limpando os produtos
                        CarregarGrid();
                        //alterando botões
                        btnSalvar.Text              = "Salvar";
                        btnExcluir.Enabled          = true;
                        btnExcluirProduto.Enabled   = true;
                        btnAdicionarProduto.Enabled = true;
                        //limpando lista
                        ListaProdutosExcluidos.Clear();
                        ListaItensExcluidos.Clear();
                        Compra.Parcelas.Clear();
                    }
                    catch (SqlException erro)
                    {
                        MessageBox.Show(erro.Message, "OK");
                        //Apagando tudo caso haja um erro
                        DALCompra.Excluir(int.Parse(DALCompra.PegarId()));
                    }
                    catch (Exception erro)
                    {
                        MessageBox.Show(erro.Message, "OK");
                        //Apagando tudo caso haja um erro
                        DALCompra.Excluir(int.Parse(DALCompra.PegarId()));
                    }
                }
            }
        }
Beispiel #9
0
        private void btSalvarFinal_Click(object sender, EventArgs e)
        {
            try
            {
                ModeloCompra modeloCompra = new ModeloCompra();

                modeloCompra.ComData      = dtDataCompra.Value;
                modeloCompra.ComNfiscal   = Convert.ToInt32(txtNfiscal.Text);
                modeloCompra.ComNparcelas = Convert.ToInt16(cbNParcelas.Text);
                modeloCompra.ComStatus    = "Ativo";
                modeloCompra.ComTotal     = Convert.ToDouble(txtTotalCompra.Text);    //OU totalCompra;
                modeloCompra.ForCod       = Convert.ToInt32(txtForCod.Text);
                modeloCompra.TpaCod       = Convert.ToInt32(cbTipoPagamento.SelectedValue);


                DALConexao conexao   = new DALConexao(DadosDaConexao.StringDeConexao);
                BLLCompra  bllCompra = new BLLCompra(conexao);


                ModeloItensCompra ItensDaCompra  = new ModeloItensCompra();
                BLLitensCompra    BllItensCompra = new BLLitensCompra(conexao);

                ModeloParcelasCompra parcelasCompra    = new ModeloParcelasCompra();
                BLLparcelasCompra    bllparcelasCompra = new BLLparcelasCompra(conexao);

                if (frm.Operacao == "Inserir")
                {
                    bllCompra.Incluir(modeloCompra);

                    for (int i = 0; i < DgvItens.RowCount; i++)                                    //percorre a grid e joga dentro do modelo, e chama itenscompra
                    {
                        ItensDaCompra.ItcCod   = 1 + 1;                                            //todo codigo começa do valor 1...
                        ItensDaCompra.ComCod   = modeloCompra.ComCod;
                        ItensDaCompra.ProCod   = Convert.ToInt32(DgvItens.Rows[i].Cells[0].Value); //acessar grid, linha i, coluna 0, pega valor, e converte
                        ItensDaCompra.ItcQtde  = Convert.ToInt32(DgvItens.Rows[i].Cells[2].Value);
                        ItensDaCompra.ItcValor = Convert.ToInt32(DgvItens.Rows[i].Cells[3].Value);

                        BllItensCompra.Incluir(ItensDaCompra);
                    }

                    for (int i = 0; i < dgvParcelas.RowCount; i++)       //percorre a grid e joga dentro do modelo, e chama itenscompra
                    {
                        parcelasCompra.ComCod            = modeloCompra.ComCod;
                        parcelasCompra.PcoCod            = Convert.ToInt32(dgvParcelas.Rows[i].Cells[0].Value);
                        parcelasCompra.PcoValor          = Convert.ToDouble(dgvParcelas.Rows[i].Cells[1].Value);
                        parcelasCompra.PcoDataVencimento = Convert.ToDateTime(dgvParcelas.Rows[i].Cells[2].Value);

                        bllparcelasCompra.Incluir(parcelasCompra);
                    }
                    MessageBox.Show($"Compra efetuada com sucesso.\nCódigo:{modeloCompra.ComCod.ToString()}");
                }
                else
                {
                    bllCompra.Alterar(modeloCompra);
                    MessageBox.Show("Cadastro alterado com sucesso !");
                }

                AlterarBotoes(2);
                pnFinalizaCompra.Visible = false;
                LimpaTela();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        //Salvar compra:
        //Vai movimentar dados nas 4 tabelas:
        //select* from compra
        //select* from itenscompra
        //select* from parcelascompra
        //select* from produto -- atualiza Qtd. através de um tigger
        private void btSalvarCompra_Click(object sender, EventArgs e)
        {
            //-----------------------------------------------------------------------------------------------------------------------
            //CONEXAO:
            //-----------------------------------------------------------------------------------------------------------------------
            //Conexão - obj para gravar os dados no banco
            DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); //Recebe a string da conexão da classe DadosDaConexão

            try                                                             // conexao:
            {
                //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                //CONEXAO: INCIAR TRANSAÇÃO
                //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                cx.Conectar();         //CONECTAR NO BANCO - para poder usar a transação, tem que ser usado aénas uma conexao, antes cada tabela teinha seu conetar
                cx.IniciarTransacao(); //inicia transação no banco SQL - Feito para acoes que envolvem mais de uma tabela https://youtu.be/fA_T1ywEXqw

                //-----------------------------------------------------------------------------------------------------------------------
                //SALVAMENTO PROCESSO DA COMPRA:
                //-----------------------------------------------------------------------------------------------------------------------
                try //tratamento de erro
                {
                    //------------------------------------------------------------------------------------------------------------
                    //01 - COMPRA:
                    //------------------------------------------------------------------------------------------------------------
                    //criar o modelo compra:
                    ModeloCompra modeloCompra = new ModeloCompra();//cria uma objeto que representa os dados da tabela catagoria
                    //Criar um BLL DA COMPRA
                    BLLCompra bll = new BLLCompra(cx);
                    //Carregar os campos da compra:
                    modeloCompra.ComData       = dtDataCompra.Value;
                    modeloCompra.ComNfiscal    = Convert.ToInt32(txtNFiscal.Text);
                    modeloCompra.ComNparcelas  = Convert.ToInt32(cbNParcela.Text);
                    modeloCompra.ComStatus     = "ativa";//pode controlar como pedito, e ainda nao finalizou a compra.. ver!!
                    modeloCompra.ComValorTotal = Convert.ToDouble(txtTotalCompra.Text);
                    modeloCompra.ForCod        = Convert.ToInt32(txtForCod.Text);
                    modeloCompra.TpaCod        = Convert.ToInt32(cbTPagto.SelectedValue);

                    //------------------------------------------------------------------------------------------------------------
                    // 02 - ITENS DA COMPRA:
                    //------------------------------------------------------------------------------------------------------------
                    //criar o modelo itens compra:
                    ModeloItensCompra ModItens = new ModeloItensCompra();
                    //Criar um BLL Itens
                    BLLItensCompra bllItensc = new BLLItensCompra(cx);

                    //------------------------------------------------------------------------------------------------------------
                    // 03 - PARCELAS COMPRA:
                    //------------------------------------------------------------------------------------------------------------
                    //criar o modelo itens compra: https://youtu.be/oP5-jHpOhwE?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=255
                    ModeloParcelasCompra ModParcelas = new ModeloParcelasCompra();
                    //Criar um BLL Itens
                    BLLParcelasCompra bllParcelas = new BLLParcelasCompra(cx);

                    //------------------------------------------------------------------------------------------------------------
                    //verificar qual o tipo de operação que vai executar ao gravar
                    if (this.operacao == "inserir")//valida se é um inserção, verificar o valor da variavel operação
                    {
                        //------------------------------------------------------------------------------------------------------------
                        //01 - cadastrar onformações da Compra - ok
                        //------------------------------------------------------------------------------------------------------------
                        bll.Incluir(modeloCompra);//passa o nome para o metodo incluir // https://youtu.be/C6qCveils_o?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=1078

                        //------------------------------------------------------------------------------------------------------------
                        //02 - cadastrar os intens da compra
                        //------------------------------------------------------------------------------------------------------------
                        for (int i = 0; i < dgvItens.RowCount; i++)//pelo numero de linhas de itens //https://youtu.be/TJ_jhtk1yN8?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=395
                        {
                            //Carregar os campos dos iten compra  https://youtu.be/NStzTZnp4nU?t=168
                            ModItens.ItcCod   = i + 1;
                            ModItens.ComCod   = modeloCompra.ComCod;//retorna do Dall
                            ModItens.ProCod   = Convert.ToInt32(dgvItens.Rows[i].Cells[0].Value);
                            ModItens.ItcQtde  = Convert.ToDouble(dgvItens.Rows[i].Cells[2].Value);
                            ModItens.ItcValor = Convert.ToDouble(dgvItens.Rows[i].Cells[3].Value);
                            //incluir itens da compra:
                            bllItensc.Incluir(ModItens);

                            //atualizar a qtd de produtos na tabela de produtos VIA SQL // https://youtu.be/NStzTZnp4nU  +  https://youtu.be/yhWGaBku24U?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=405
                            //trigger:gatilho no Banco, tabela itenscompra Nome: tgiIncrementarEstoqueProduto
                        }

                        //------------------------------------------------------------------------------------------------------------
                        //03 - cadastrar as parcelas da compra https://youtu.be/oP5-jHpOhwE?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=264
                        //------------------------------------------------------------------------------------------------------------
                        for (int i = 0; i < dgvParcelas.RowCount; i++)//pelo numero de linhas das parcelas
                        {
                            //Carregar os campos da parcelas
                            ModParcelas.ComCod       = modeloCompra.ComCod;
                            ModParcelas.PcoCod       = Convert.ToInt32(dgvParcelas.Rows[i].Cells[0].Value);
                            ModParcelas.PcoValor     = Convert.ToDouble(dgvParcelas.Rows[i].Cells[1].Value);
                            ModParcelas.PcoDatavecto = Convert.ToDateTime(dgvParcelas.Rows[i].Cells[2].Value);
                            //incluir parcelas:
                            bllParcelas.Incluir(ModParcelas);
                        }

                        //MENSAGEM DE SUCESSO:
                        MessageBox.Show("Compra efetuada: Código " + modeloCompra.ComCod.ToString());//retorna a mensagem como o codigo do item que foi gerado
                    }
                    else //alterar uma Compra
                    {
                        //------------------------------------------------------------------------------------------------------------
                        //Alterar compra
                        //------------------------------------------------------------------------------------------------------------
                        modeloCompra.ComCod = Convert.ToInt32(txtComCod.Text); //alterar a Compra correspondente ao codigo exixtente na tela
                        bll.Alterar(modeloCompra);                             //alterar conforme codigo da compra na tela

                        //------------------------------------------------------------------------------------------------------------
                        //Alterar os intens da compa
                        //------------------------------------------------------------------------------------------------------------
                        bllItensc.ExcluirTodosOsItens(modeloCompra.ComCod); //excluir todos os itens
                        for (int i = 0; i < dgvItens.RowCount; i++)         //cadastra novamente as parcelas
                        {
                            //inserir os itens da compra na tabela  https://youtu.be/NStzTZnp4nU?t=168
                            ModItens.ItcCod   = i + 1;
                            ModItens.ComCod   = modeloCompra.ComCod;//retorna do Dall
                            ModItens.ProCod   = Convert.ToInt32(dgvItens.Rows[i].Cells[0].Value);
                            ModItens.ItcQtde  = Convert.ToDouble(dgvItens.Rows[i].Cells[2].Value);
                            ModItens.ItcValor = Convert.ToDouble(dgvItens.Rows[i].Cells[3].Value);
                            //incluir dados:
                            bllItensc.Incluir(ModItens);

                            //atualizar a qtd de produtos na tabela de produtos VIA SQL // https://youtu.be/NStzTZnp4nU  +  https://youtu.be/yhWGaBku24U?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=405
                            //trigger:gatilho no Banco, tabela itenscompra Nome: tgiIncrementarEstoqueProduto
                        }

                        //------------------------------------------------------------------------------------------------------------
                        //Alterar as parcelas da compra https://youtu.be/oP5-jHpOhwE?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=264
                        //------------------------------------------------------------------------------------------------------------
                        bllParcelas.ExcluirTodasAsParcelas(modeloCompra.ComCod); //excluir todos as parcelas
                        for (int i = 0; i < dgvParcelas.RowCount; i++)           //cadastra novamente as parcelas
                        {
                            ModParcelas.ComCod       = modeloCompra.ComCod;
                            ModParcelas.PcoCod       = Convert.ToInt32(dgvParcelas.Rows[i].Cells[0].Value);
                            ModParcelas.PcoValor     = Convert.ToDouble(dgvParcelas.Rows[i].Cells[1].Value);
                            ModParcelas.PcoDatavecto = Convert.ToDateTime(dgvParcelas.Rows[i].Cells[2].Value);
                            //incluir:
                            bllParcelas.Incluir(ModParcelas);
                        }
                        MessageBox.Show("Cadastro alterado");//mostrar mensagem de confirmação
                    }

                    // limpar a tela
                    this.LimpaTela();

                    //ocultar o painel de finalização:
                    pnFinalizaCompra.Visible = false;

                    //Mostrar dados da compra:
                    pnDados.Visible = true;

                    //Mostrar botoes:
                    pnBotoes.Visible = true;

                    this.alteraBotoes(1);//volta os botoes para o estado padrão

                    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                    //CONEXAO: TERMINAR TRANSAÇÃO
                    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                    //so vai gravar, se for nas tres tabelas
                    cx.TerminarTransacao();                                                //Efetua um comit, confirmar as alterações no banco
                    cx.Desconectar();                                                      //desconetar do banco
                }
                catch (Exception erro)                                                     // caso der algum erro...(não limpa a tela)
                {
                    MessageBox.Show("Erro ao gravar dados da Compra : \n" + erro.Message); //retorna mensagem do sistema, melhorar mensagem para o usuario
                    cx.Desconectar();                                                      //desconetar do banco
                }
            }
            catch (Exception erro)                                                    // casa der algum erro na conexao
            {
                MessageBox.Show("Erro ao conectar no Banco SQL : \n" + erro.Message); //retorna mensagem do sistema, melhorar mensagem para o usuario
                cx.CancelarTransacao();                                               //caso de erro desfaz todas as ações
                cx.Desconectar();                                                     //desconetar do banco se der erro
            }
        }
        //=============================================================================================================
        private void btLocalizar_Click(object sender, EventArgs e)
        {
            //exiber o formulario de consulta compra:
            frmConsultaCompra f = new frmConsultaCompra();

            f.ShowDialog();

            //verificar se tem um codigo carregado:{diferente de zero}
            if (f.codigo != 0)
            {
                DALConexao   cx     = new DALConexao(DadosDaConexao.StringDeConexao);
                BLLCompra    bll    = new BLLCompra(cx);
                ModeloCompra modelo = bll.CarregaModeloCompra(f.codigo);//carrega o modelo da comprea pelo codigo
                //--------------------------------------------------------------------------------------------------------
                //  CARREGAR OS DADOS DA COMPRA
                //--------------------------------------------------------------------------------------------------------
                txtComCod.Text     = modelo.ComCod.ToString();
                txtNFiscal.Text    = modelo.ComNfiscal.ToString();
                dtDataCompra.Value = modelo.ComData;
                txtForCod.Text     = modelo.ForCod.ToString();
                txtForCod_Leave(sender, e);//evento escrever o nome do fornecedor
                //rodapé:
                cbNParcela.Text     = modelo.ComNparcelas.ToString();
                txtTotalCompra.Text = modelo.ComValorTotal.ToString(); //VALOR TOTAL
                this.totalCompra    = modelo.ComValorTotal;            //armazena o total na variavel

                //fazer um LOCALIZAR - select para trazer o numero de parcela
                //fazer um LOCALIZAR - select para trazer a data da primeira parcela

                //TIPO DE PAGAMENTO.
                cbTPagto.SelectedValue = modelo.TpaCod;


                //carregar itens da compra: https://youtu.be/rMOyapoHTx0?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=204
                BLLItensCompra bLLIt    = new BLLItensCompra(cx);
                DataTable      tabelaIt = bLLIt.Localizar(modelo.ComCod); //passa os itens da compra para uma tabela:
                for (int i = 0; i < tabelaIt.Rows.Count; i++)             //enquanto i for menos que o numero de linhas retornodo
                {
                    //pega os valores: cada loop vai para a prox. linha = i
                    string icod  = tabelaIt.Rows[i]["pro_cod"].ToString();
                    string inome = tabelaIt.Rows[i]["pro_nome"].ToString();
                    string iqtd  = tabelaIt.Rows[i]["itc_qtde"].ToString();
                    string ivund = tabelaIt.Rows[i]["itc_valor"].ToString();

                    //calcula o valor total de cada intem:
                    Double TotalLocalx = Convert.ToDouble(tabelaIt.Rows[i]["itc_qtde"]) * Convert.ToDouble(tabelaIt.Rows[i]["itc_valor"]);

                    //monta uma matriz da linha com os calores de cada coluna:
                    String[] iten = new String[] { icod, inome, iqtd, ivund, txtTotalCompra.Text, TotalLocalx.ToString() };
                    this.dgvItens.Rows.Add(iten);//adicoina os itens da linha no datagrdi...
                }

                alteraBotoes(3);
            }
            else
            {
                this.LimpaTela();
                this.alteraBotoes(1);
            }

            //destroi o obejto
            f.Dispose();
        }
        //=============================================================================================================
        private void btExcluir_Click(object sender, EventArgs e) // https://youtu.be/U_JhTWIVRro?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA
        {
            //tem que excluir os itens relacionados em todas as tabelas em um sequencia logica:
            //tem que excluir na sequencia inversa em que se gravou a compra

            //-----------------------------------------------------------------------------------------------------------------------
            //CONEXAO:
            //-----------------------------------------------------------------------------------------------------------------------
            DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); //Recebe a string da conexão da classe DadosDaConexão

            try                                                             //CONEXAO:
            {
                //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                //CONEXAO: INCIAR TRANSAÇÃO
                //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                cx.Conectar();         //CONECTAR NO BANCO - para poder usar a transação, tem que ser usado aénas uma conexao, antes cada tabela teinha seu conetar
                cx.IniciarTransacao(); //inicia transação no banco SQL - Feito para acoes que envolvem mais de uma tabela https://youtu.be/fA_T1ywEXqw

                //Validar, excluir compra se ja tiver sido efetuado alguma pagamento:
                try
                {
                    DialogResult d = MessageBox.Show("Deseja excluir o registro?", "Aviso", MessageBoxButtons.YesNo);//confirmar antes de excluir
                    //caso responder sim...
                    if (d.ToString() == "Yes")
                    {
                        //pega o codigo da compra:
                        int CodigoCompra = Convert.ToInt32(txtComCod.Text);

                        //criar objetos BLL:
                        BLLParcelasCompra bllPar  = new BLLParcelasCompra(cx);
                        BLLItensCompra    bllITen = new BLLItensCompra(cx);
                        BLLCompra         bllCP   = new BLLCompra(cx); //passa a string de conexao

                        //verificar se tem parcelas pagas:
                        int Qtde = bllCP.QuantidadeParcePagas(CodigoCompra);

                        if (Qtde > 0)                                                                                                                                      //se tiver parcelas pagas
                        {
                            DialogResult g = MessageBox.Show("Esta Compra possui Parcelas Pagas Deseja! \n Deseja excluir o registro?", "Aviso", MessageBoxButtons.YesNo); //confirmar antes de excluir
                            //caso responder sim...
                            if (g.ToString() == "No")
                            {
                                //cancela esta ação:
                                cx.TerminarTransacao(); //Efetua um comit, confirmar as alterações no banco
                                cx.Desconectar();       //desconetar do banco
                                return;
                            }
                        }

                        //---------------------------------------------------------------------------------------------------------------------------
                        //03 - Excluir as parcelas da compra:
                        //---------------------------------------------------------------------------------------------------------------------------
                        bllPar.ExcluirTodasAsParcelas(CodigoCompra);

                        //---------------------------------------------------------------------------------------------------------------------------
                        //02 - Excluir itens da compra:
                        //---------------------------------------------------------------------------------------------------------------------------
                        bllITen.ExcluirTodosOsItens(CodigoCompra);

                        //---------------------------------------------------------------------------------------------------------------------------
                        //01 - Excluir compra:
                        //---------------------------------------------------------------------------------------------------------------------------
                        bllCP.Excluir(Convert.ToInt32(txtComCod.Text));//retorna erro se este codigo ja estiver sendo utilizado como chave em outra tabela

                        //Mensagem de sucesso:
                        MessageBox.Show("Cadastro excluido com sucesso!");
                    }
                }
                catch // sem o Exception, qualquer tipo de erro
                {
                    MessageBox.Show("Impossível excluir o registro. \n O registro esta sendo utilizado em outro local.");
                    this.alteraBotoes(3);
                    cx.CancelarTransacao(); //caso de erro desfaz todas as ações
                    cx.Desconectar();       //desconetar do banco
                }

                this.LimpaTela();
                this.alteraBotoes(1);

                //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                //CONEXAO: TERMINAR TRANSAÇÃO
                //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                //so vai gravar, se for nas tres tabelas
                cx.TerminarTransacao();                                                //Efetua um comit, confirmar as alterações no banco
                cx.Desconectar();                                                      //desconetar do banco
            }
            catch (Exception erro)                                                     // caso der algum erro...(não limpa a tela)
            {
                MessageBox.Show("Erro ao gravar dados da Compra : \n" + erro.Message); //retorna mensagem do sistema, melhorar mensagem para o usuario
                cx.CancelarTransacao();                                                //caso de erro desfaz todas as ações
                cx.Desconectar();                                                      //desconetar do banco
            }
        }
        //=============================================================================================================
        private void btAlterar_Click(object sender, EventArgs e) //https://youtu.be/NRKmeODwsB4?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=277
        {
            //-----------------------------------------------------------------------------------------------------------------------
            //CONEXAO:
            //-----------------------------------------------------------------------------------------------------------------------
            DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); //Recebe a string da conexão da classe DadosDaConexão

            try                                                             //CONEXAO:
            {
                //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                //CONEXAO: INCIAR TRANSAÇÃO
                //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                cx.Conectar();         //CONECTAR NO BANCO - para poder usar a transação, tem que ser usado aénas uma conexao, antes cada tabela teinha seu conetar
                cx.IniciarTransacao(); //inicia transação no banco SQL - Feito para acoes que envolvem mais de uma tabela https://youtu.be/fA_T1ywEXqw

                //nao deixar alterar compra se ja tiver sido efetuado alguma pagamento:
                try
                {
                    //pega o codigo da compra:
                    int CodigoCompra = Convert.ToInt32(txtComCod.Text);

                    //criar objetos BLL:
                    BLLCompra bllCP = new BLLCompra(cx); //passa a string de conexao

                    //Validar se tem parcelas pagas:
                    int Qtde = bllCP.QuantidadeParcePagas(CodigoCompra);
                    //se tiver parcelas pagas
                    if (Qtde > 0)
                    {
                        DialogResult g = MessageBox.Show("Esta Compra possui Parcelas Pagas! \n Deseja alterar o registro?", "Aviso", MessageBoxButtons.YesNo);//confirmar antes de excluir
                        //caso responder sim...
                        if (g.ToString() == "No")
                        {
                            cx.TerminarTransacao(); //Efetua um comit, confirmar as alterações no banco
                            cx.Desconectar();       //desconetar do banco
                            return;
                        }
                    }
                }
                catch // sem o Exception, qualquer tipo de erro
                {
                    MessageBox.Show("Impossível excluir o registro. \n O registro esta sendo utilizado em outro local.");
                    this.alteraBotoes(3);
                }

                //Liberar alterar
                this.operacao = "alterar";
                this.alteraBotoes(2);

                //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                //CONEXAO: TERMINAR TRANSAÇÃO
                //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                //so vai gravar, se for nas tres tabelas
                cx.TerminarTransacao();                                                //Efetua um comit, confirmar as alterações no banco
                cx.Desconectar();                                                      //desconetar do banco
            }
            catch (Exception erro)                                                     // caso der algum erro...(não limpa a tela)
            {
                MessageBox.Show("Erro ao gravar dados da Compra : \n" + erro.Message); //retorna mensagem do sistema, melhorar mensagem para o usuario
                cx.CancelarTransacao();                                                //caso de erro desfaz todas as ações
                cx.Desconectar();                                                      //desconetar do banco
            }
        }
Beispiel #14
0
        private void btnSalvarPagamento_Click(object sender, EventArgs e)
        {
            DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexão);

            cx.Conectar();
            cx.IniciaTransacao();
            try
            {
                //Leitura de dados
                ModeloCompra modeloCompra = new ModeloCompra()
                {
                    com_data      = DateTime.Now,
                    com_nfiscal   = Convert.ToInt32(txtNFiscal.Text),
                    com_total     = Convert.ToDouble(lblTotalCompra.Text),
                    com_nparcelas = Convert.ToInt32(nudNumeroParcelas.Text),
                    for_cod       = Convert.ToInt32(cbxFornecedor.SelectedValue),
                    tpa_cod       = Convert.ToInt32(cbxTipoPagamento.SelectedValue)
                };
                //Objeto para gravar dados no banco
                BLLCompra bll = new BLLCompra(cx);
                //Cria o objeto Itens
                ModeloItensCompra mItens = new ModeloItensCompra();
                BLLItensCompra    bItens = new BLLItensCompra(cx);
                //Cria o objeto parcelas
                ModeloParcelasCompra mParcelas = new ModeloParcelasCompra();
                BLLParcelasCompra    bParcelas = new BLLParcelasCompra(cx);
                if (txtCodigo.Text == "")
                {
                    bll.Inserir(modeloCompra);
                    CadastrarItensCompra(mItens, modeloCompra, bItens, mParcelas, bParcelas);
                    Mensagem("COMPRA EFETUADA: CÓDIGO: " + modeloCompra.com_cod.ToString(), Color.Blue);
                }
                else
                {
                    modeloCompra.com_cod = Convert.ToInt32(txtCodigo.Text);
                    bll.Alterar(modeloCompra);
                    CadastrarItensCompra(mItens, modeloCompra, bItens, mParcelas, bParcelas);
                    Mensagem("COMPRA ALTERADA ", Color.Blue);
                }
                LimpaTela();
                alteraBotoes();
                pnFinalizaCompra.Visible = false;
                cx.FinalizaTransacao();
            }
            catch (Exception erro)
            {
                cx.CancelaTransacao();
                if (erro.Message == "An invalid parameter or option was specified for procedure 'parcelas'.")
                {
                    Erro("parcelas");
                }
                else
                {
                    Erro(erro.Message);
                }
            }
            finally
            {
                cx.Desconectar();
            }
        }