Example #1
0
        private void Anterior()
        {
            var controls = (ControlCollection)this.Controls;

            if (editando)
            {
                if (MessageBox.Show("Tem certeza que deseja perder os dados alterados?",
                                    "Aviso de alteração",
                                    MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Warning) == DialogResult.No)
                {
                    return;
                }
            }

            validacao.despintarCampos(controls);

            if (tbCodigo.Text.Length > 0)
            {
                var newNotaFiscalTerceiros = notaFiscalTerceirosDAO.Anterior(int.Parse(tbCodigo.Text));
                if (newNotaFiscalTerceiros != null)
                {
                    newNotaFiscalTerceiros.Pessoa = pessoaDAO.BuscaByID(newNotaFiscalTerceiros.Pessoa.PessoaID);
                    notaFiscalTerceiros           = newNotaFiscalTerceiros;
                    itens = notaFiscalTerceiros.NotaFiscalTerceirosItem.ToList();
                    PreencheCampos(notaFiscalTerceiros);
                    if (editando)
                    {
                        Editando(false);
                    }
                }
            }
        }
Example #2
0
        private void Recarrega()
        {
            if (editando)
            {
                if (MessageBox.Show("Tem certeza que deseja perder os dados alterados?",
                                    "Aviso de alteração",
                                    MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Warning) == DialogResult.No)
                {
                    return;
                }
            }

            if (notaFiscalTerceiros != null)
            {
                notaFiscalTerceiros        = notaFiscalTerceirosDAO.BuscaByID(notaFiscalTerceiros.NotaFiscalTerceirosID);
                notaFiscalTerceiros.Pessoa = pessoaDAO.BuscaByID(notaFiscalTerceiros.Pessoa.PessoaID);
                PreencheCampos(notaFiscalTerceiros);
                if (editando)
                {
                    Editando(false);
                }
            }
            else
            {
                ignoracheckevent = true;
                Limpa(true);
                ignoracheckevent = false;
            }
        }
Example #3
0
        public IEnumerable <NotaFiscalTerceiros> Busca(fmEntBuscaNotaFiscalTerceiros.Filtros f)
        {
            var    notasFiscais     = new List <NotaFiscalTerceiros>();
            var    wherePessoa      = f.Pessoa != null ? "AND p.idpessoa = @idpessoa" : "";
            var    whereCidade      = f.Cidade != null ? "AND p.idcidade = @idcidade" : "";
            string whereValorTotal  = f.usarvalorTotalFiltro ? "AND nft.valor_documento BETWEEN @valor_documento_inicial AND @valor_documento_final" : "";
            string whereDataEmissao = f.usardataEmissaoFiltro ? "AND nft.data_emissao BETWEEN @data_emissao_inicial AND @data_emissao_final" : "";
            string whereDataEntrada = f.usardataEntradaFiltro ? "AND nft.data_entradasaida BETWEEN @data_entradasaida_inicial AND @data_entradasaida_final" : "";


            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = @"SELECT nft.idnota_fiscal_terceiros, p.idpessoa, p.nome, nft.data_emissao, nft.data_entradasaida, nft.valor_documento
                            FROM
                            nota_fiscal_terceiros nft
                            LEFT JOIN pessoa p ON nft.idpessoa = p.idpessoa
                            WHERE 1=1 "
                            + wherePessoa + " "
                            + whereCidade + " "
                            + whereValorTotal + " "
                            + whereDataEmissao + " "
                            + whereDataEntrada + " "
                            + "GROUP BY nft.idnota_fiscal_terceiros";

                if (f.Pessoa != null)
                {
                    sql.addParam("@idpessoa", f.Pessoa.PessoaID);
                }
                if (f.Cidade != null)
                {
                    sql.addParam("@idcidade", f.Cidade.CidadeID);
                }

                sql.addParam("@valor_documento_inicial", f.ValorInicial);
                sql.addParam("@valor_documento_final", f.ValorFinal);
                sql.addParam("@data_emissao_inicial", f.DataEmissaoInicial);
                sql.addParam("@data_emissao_final", f.DataEmissaoFinal);
                sql.addParam("@data_entradasaida_inicial", f.DataEntradaInicial);
                sql.addParam("@data_entradasaida_final", f.DataEntradaFinal);
                var data = sql.selectQuery();
                foreach (var d in data)
                {
                    var pessoa = new Pessoa();
                    pessoa.PessoaID = Convert.ToInt32(d["idpessoa"]);
                    pessoa.Nome     = (string)d["nome"];

                    var notaTerceiros = new NotaFiscalTerceiros();
                    notaTerceiros.NotaFiscalTerceirosID = Convert.ToInt32(d["idnota_fiscal_terceiros"]);
                    notaTerceiros.DataEmissao           = (DateTime)d["data_emissao"];
                    notaTerceiros.DataEntradaSaida      = (DateTime)d["data_entradasaida"];
                    notaTerceiros.ValorTotalDocumento   = (decimal)d["valor_documento"];
                    notaTerceiros.Pessoa = pessoa;
                    notasFiscais.Add(notaTerceiros);
                }
            }
            return(notasFiscais);
        }
Example #4
0
        private void CarregaDados()
        {
            int c = 0;

            if (!int.TryParse(tbCodigo.Text, out c))
            {
                tbCodigo.Clear();
            }
            else
            {
                if (c != codigo)
                {
                    if (editando)
                    {
                        if (MessageBox.Show("Tem certeza que deseja perder os dados alterados?", "Aviso de alteração",
                                            MessageBoxButtons.YesNo,
                                            MessageBoxIcon.Warning) == DialogResult.No)
                        {
                            return;
                        }
                    }
                    codigo = c;
                }
            }

            if (notaFiscalTerceiros?.NotaFiscalTerceirosID == codigo)
            {
                return;
            }


            if (tbCodigo.Text.Length == 0)
            {
                Limpa(true);
                Editando(false);
                return;
            }

            var newNotaFiscalTerceiros = notaFiscalTerceirosDAO.BuscaByID(codigo);

            if (newNotaFiscalTerceiros != null)
            {
                newNotaFiscalTerceiros.Pessoa = pessoaDAO.BuscaByID(newNotaFiscalTerceiros.Pessoa.PessoaID);
                notaFiscalTerceiros           = newNotaFiscalTerceiros;
                PreencheCampos(notaFiscalTerceiros);
                notaFiscalTerceiros = newNotaFiscalTerceiros;
                Editando(false);
            }
            else
            {
                Editando(true);
                Limpa(false);
            }
        }
Example #5
0
        public int SalvarOuAtualizar(NotaFiscalTerceiros notafiscal)
        {
            int retorno = 0;

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.beginTransaction();
                sql.Query = @"INSERT INTO nota_fiscal_terceiros
                         (idnota_fiscal_terceiros, data_emissao, data_entradasaida, tiponf, valor_total_itens, valor_documento, desconto_total_itens, desconto_documento, idpessoa, descricao)
                          VALUES
                         (@idnota_fiscal_terceiros, @data_emissao, @data_entradasaida, @tiponf, @valor_total_itens, @valor_documento, @desconto_total_itens, @desconto_documento, @idpessoa, @descricao)
                          ON DUPLICATE KEY UPDATE
                          data_emissao = @data_emissao, data_entradasaida = @data_entradasaida, valor_total_itens = @valor_total_itens,
                          valor_documento = @valor_documento, desconto_total_itens = @desconto_total_itens, desconto_documento = @desconto_documento,
                          idpessoa = @idpessoa, descricao = @descricao";
                sql.addParam("@idnota_fiscal_terceiros", notafiscal.NotaFiscalTerceirosID);
                sql.addParam("@data_emissao", notafiscal.DataEmissao);
                sql.addParam("@data_entradasaida", notafiscal.DataEntradaSaida);
                sql.addParam("@tiponf", "S");
                sql.addParam("@valor_total_itens", notafiscal.ValorTotalItens);
                sql.addParam("@valor_documento", notafiscal.ValorTotalDocumento);
                sql.addParam("@desconto_total_itens", notafiscal.DescontoTotalItens);
                sql.addParam("@desconto_documento", notafiscal.DescontoDocumento);
                sql.addParam("@descricao", notafiscal.Descricao);
                if (notafiscal.Pessoa != null)
                {
                    sql.addParam("@idpessoa", notafiscal.Pessoa.PessoaID);
                }
                retorno = sql.insertQuery();
                if (retorno > 0)
                {
                    sql.Query = @"DELETE FROM nota_fiscal_terceiros_has_item WHERE idnota_fiscal_terceiros = @idnota_fiscal_terceiros";
                    sql.deleteQuery();
                    sql.Query = @"INSERT INTO nota_fiscal_terceiros_has_item (idnota_fiscal_terceiros, iditem, quantidade, valor_unitario, valor_total, desconto_porc, desconto)
                                VALUES
                                (@idnota_fiscal_terceiros, @iditem, @quantidade, @valor_unitario, @valor_total, @desconto_porc, @desconto)";
                    foreach (var i in notafiscal.NotaFiscalTerceirosItem)
                    {
                        sql.clearParams();
                        sql.addParam("@idnota_fiscal_terceiros", notafiscal.NotaFiscalTerceirosID);
                        sql.addParam("@iditem", i.Item.ItemID);
                        sql.addParam("@quantidade", i.Quantidade);
                        sql.addParam("@valor_unitario", i.ValorUnitario);
                        sql.addParam("@valor_total", i.ValorTotal);
                        sql.addParam("@desconto_porc", i.DescontoPorc);
                        sql.addParam("@desconto", i.Desconto);
                        sql.insertQuery();
                    }
                }
                sql.Commit();
            }
            return(retorno);
        }
Example #6
0
        public int MovimentaCaixa(NotaFiscalTerceiros nota)
        {
            int retorno = 0;

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.beginTransaction();
                sql.Query = @"INSERT INTO caixa_lancamento
                            (data, valor, tipomovimento, tipodocumento, lancamento, documento, idcaixa, idcaixa_plano_contas)
                            VALUES
                            (@data, @valor, @tipomovimento, @tipodocumento, @lancamento, @documento, @idcaixa, @idcaixa_plano_contas)";
                sql.addParam("@data", nota.DataEntradaSaida);
                sql.addParam("@valor", nota.ValorTotalDocumento);
                sql.addParam("@tipomovimento", 1);
                sql.addParam("@tipodocumento", 3);
                sql.addParam("@lancamento", 1);
                sql.addParam("@documento", nota.NotaFiscalTerceirosID);
                sql.addParam("@idcaixa", nota.Caixa.CaixaID);
                sql.addParam("@idcaixa_plano_contas", nota.PlanoDeConta.PlanoContaID);
                retorno = sql.insertQuery();


                if (retorno > 0)
                {
                    sql.Query = "SELECT LAST_INSERT_ID() AS idcaixalancamento;";
                    var data = sql.selectQueryForSingleRecord();
                    int idcaixalancamento = Convert.ToInt32(data["idcaixalancamento"]);

                    sql.Query = @"DELETE FROM caixa_lancamento_ent 
                                  WHERE idnota_fiscal_terceiros = @idnota_fiscal_terceiros
                                  AND idcaixa_lancamento = @idcaixa_lancamento";

                    sql.clearParams();
                    sql.addParam("@idcaixa_lancamento", idcaixalancamento);
                    sql.addParam("@idnota_fiscal_terceiros", nota.NotaFiscalTerceirosID);

                    sql.deleteQuery();

                    sql.Query = @"INSERT INTO caixa_lancamento_ent (idcaixa_lancamento, idnota_fiscal_terceiros)
                                VALUES
                                (@idcaixa_lancamento, @idnota_fiscal_terceiros)";

                    sql.clearParams();
                    sql.addParam("@idcaixa_lancamento", idcaixalancamento);
                    sql.addParam("@idnota_fiscal_terceiros", nota.NotaFiscalTerceirosID);
                    sql.insertQuery();
                }

                sql.Commit();
            }

            return(retorno);
        }
Example #7
0
 public void LimpaRegistrosEstoque(NotaFiscalTerceiros nota)
 {
     using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
     {
         sql.Query = @"DELETE FROM registro_estoque 
                     WHERE documento = @documento
                     AND idpessoa = @idpessoa
                     AND tipomovimentacao = 'E'";
         sql.addParam("@documento", nota.NotaFiscalTerceirosID.ToString());
         sql.addParam("@idpessoa", nota.Pessoa?.PessoaID ?? null);
         sql.deleteQuery();
     }
 }
Example #8
0
        private void Selecionar()
        {
            if (dgvDocumentos.SelectedRows.Count <= 0)
            {
                return;
            }

            var selectedRowIndex = dgvDocumentos.SelectedCells[0].RowIndex;
            var selectedRow      = dgvDocumentos.Rows[selectedRowIndex];

            notaFiscalTerceirosSelecionada = notaFiscalTerceirosDAO.BuscaByID(Convert.ToInt32(selectedRow.Cells[0].Value));
            this.Close();
        }
Example #9
0
        private NotaFiscalTerceiros LeDadosReader(List <Dictionary <string, object> > data)
        {
            if (data.Count == 0)
            {
                return(null);
            }
            var notaFiscalItens = new List <NotaFiscalTerceirosItem>();

            var notaFiscalTerceiros = new NotaFiscalTerceiros();

            notaFiscalTerceiros.NotaFiscalTerceirosID = Convert.ToInt32(data[0]["idnota_fiscal_terceiros"]);
            notaFiscalTerceiros.Descricao             = (string)data[0]["descricao"];
            notaFiscalTerceiros.DataEmissao           = (DateTime)data[0]["data_emissao"];
            notaFiscalTerceiros.DataEntradaSaida      = (DateTime)data[0]["data_entradasaida"];
            notaFiscalTerceiros.ValorTotalItens       = (decimal)data[0]["valor_total_itens"];
            notaFiscalTerceiros.ValorTotalDocumento   = (decimal)data[0]["valor_documento"];
            notaFiscalTerceiros.DescontoTotalItens    = (decimal)data[0]["desconto_total_itens"];
            notaFiscalTerceiros.DescontoDocumento     = (decimal)data[0]["desconto_documento"];
            var pessoa = new Pessoa();

            pessoa.PessoaID            = Convert.ToInt32(data[0]["idpessoa"]);
            notaFiscalTerceiros.Pessoa = pessoa;

            foreach (var d in data)
            {
                var i = new Item();
                i.ItemID            = Convert.ToInt32(d["iditem"]);
                i.Descricao         = (string)d["descitem"];
                i.DescCompra        = (string)d["denominacaocompra"];
                i.TipoItem          = (string)d["tipo"];
                i.Referencia        = (string)d["referencia"];
                i.ValorEntrada      = (decimal)d["valorentrada"];
                i.ValorUnitario     = (decimal)d["valorsaida"];
                i.Estoquenecessario = (decimal)d["estoquenecessario"];
                i.CodigoInterno     = (string)d["codigointerno"];
                i.Quantidade        = (decimal)d["estoque"];

                var nfi = new NotaFiscalTerceirosItem();
                nfi.Quantidade    = (decimal)d["quantidadenfti"];
                nfi.ValorUnitario = (decimal)d["valor_unitario"];
                nfi.ValorTotal    = (decimal)d["valor_total"];
                nfi.DescontoPorc  = (decimal)d["desconto_porc"];
                nfi.Desconto      = (decimal)d["desconto"];
                nfi.Item          = i;
                notaFiscalItens.Add(nfi);
            }

            notaFiscalTerceiros.NotaFiscalTerceirosItem = notaFiscalItens;

            return(notaFiscalTerceiros);
        }
Example #10
0
        private void Novo()
        {
            if (editando)
            {
                return;
            }

            ignoracheckevent = true;
            Limpa(false);
            tbCodigo.Text       = notaFiscalTerceirosDAO.BuscaProxCodigoDisponivel().ToString();
            notaFiscalTerceiros = null;
            buscaPessoa.Focus();
            ignoracheckevent = false;
            Editando(true);
        }
Example #11
0
        public void LimpaRegistrosCaixa(NotaFiscalTerceiros nota)
        {
            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.addParam("@documento", nota.NotaFiscalTerceirosID.ToString());

                sql.Query = @"DELETE FROM caixa_lancamento_ent 
                              WHERE idnota_fiscal_terceiros = @documento";
                sql.deleteQuery();

                sql.Query = @"DELETE FROM caixa_lancamento 
                            WHERE documento = @documento";
                sql.deleteQuery();
            }
        }
Example #12
0
        private void Busca()
        {
            if (editando)
            {
                return;
            }
            var buscaNotaFiscalTerceiros = new fmEntBuscaNotaFiscalTerceiros();

            buscaNotaFiscalTerceiros.ShowDialog();
            if (buscaNotaFiscalTerceiros.notaFiscalTerceirosSelecionada != null)
            {
                notaFiscalTerceiros        = buscaNotaFiscalTerceiros.notaFiscalTerceirosSelecionada;
                notaFiscalTerceiros.Pessoa = pessoaDAO.BuscaByID(notaFiscalTerceiros.Pessoa.PessoaID);
                PreencheCampos(notaFiscalTerceiros);
            }
        }
Example #13
0
 private void PreencheCampos(NotaFiscalTerceiros notafiscal)
 {
     ignoracheckevent = true;
     Limpa(false);
     tbCodigo.Text    = notafiscal.NotaFiscalTerceirosID.ToString();
     tbDescricao.Text = notafiscal.Descricao;
     buscaPessoa.PreencheCampos(notafiscal.Pessoa);
     dtpEmissao.Value            = notafiscal.DataEmissao;
     dtpEntrada.Value            = notafiscal.DataEntradaSaida;
     dbValorTotalItens.Valor     = notafiscal.ValorTotalItens;
     dbDescontoTotalItens.Valor  = notafiscal.DescontoTotalItens;
     dbDescontoDocumento.Valor   = notafiscal.DescontoDocumento;
     dbValorTotalDocumento.Valor = notafiscal.ValorTotalDocumento;
     itens = notafiscal.NotaFiscalTerceirosItem.ToList();
     PreencheGridItens(itens);
     PreencheCaixaEPlano(notafiscal);
     btInserirItem.Text  = "Inserir";
     notaFiscalTerceiros = notafiscal;
     ignoracheckevent    = false;
 }
Example #14
0
        public NotaFiscalTerceiros BuscaByID(int Codigo)
        {
            var notaFiscalTerceiros = new NotaFiscalTerceiros();

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = @"SELECT *, nftitem.quantidade AS quantidadenfti, i.quantidade AS estoque
                            FROM nota_fiscal_terceiros nft
                            LEFT JOIN nota_fiscal_terceiros_has_item nftitem
                            ON nft.idnota_fiscal_terceiros = nftitem.idnota_fiscal_terceiros
                            INNER JOIN item i ON i.iditem = nftitem.iditem
                            WHERE nft.idnota_fiscal_terceiros = @idnota_fiscal_terceiros";

                sql.addParam("@idnota_fiscal_terceiros", Codigo);
                var data = sql.selectQuery();
                if (data == null)
                {
                    return(null);
                }
                notaFiscalTerceiros = LeDadosReader(data);
            }
            return(notaFiscalTerceiros);
        }
Example #15
0
        private CaixaLancamento LeDadosReaderComPlanos(Dictionary <string, object> data)
        {
            var planoConta = new PlanoConta();

            planoConta.PlanoContaID   = Convert.ToInt32(data["idcaixa_plano_contas"]);
            planoConta.Codigo         = Convert.ToInt32(data["cpc_codigo"]);
            planoConta.Level          = Convert.ToInt32(data["level"]);
            planoConta.PaiID          = Convert.ToInt32(data["paiid"]);
            planoConta.Descricao      = (string)data["descricao"];
            planoConta.CodigoCompleto = (string)data["codigo_completo"];

            var caixa = new Caixa();

            caixa.CaixaID = Convert.ToInt32(data["idcaixa"]);
            caixa.Codigo  = Convert.ToInt32(data["caixa_codigo"]);
            caixa.Nome    = (string)data["nome"];

            var parcelaCAR          = new ParcelaContaReceber();
            var parcelaCAP          = new ParcelaContaPagar();
            var notafiscalpropria   = new NotaFiscalPropria();
            var notafiscalterceiros = new NotaFiscalTerceiros();

            var caixaLancamento = new CaixaLancamento();

            caixaLancamento.PlanoConta        = planoConta;
            caixaLancamento.Caixa             = caixa;
            caixaLancamento.CaixaLancamentoID = Convert.ToInt32(data["idcaixa_lancamento"]);
            caixaLancamento.Data          = (DateTime)data["data"];
            caixaLancamento.Valor         = (decimal)data["valor"];
            caixaLancamento.TipoMovimento = Convert.ToInt32(data["tipomovimento"]);
            caixaLancamento.TipoDocumento = Convert.ToInt32(data["tipodocumento"]);
            caixaLancamento.Lancamento    = Convert.ToInt32(data["lancamento"]);
            caixaLancamento.Documento     = (string)data["documento"];


            return(caixaLancamento);
        }
Example #16
0
        public int MovimentaEstoque(NotaFiscalTerceiros nota)
        {
            int retorno = 0;

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.beginTransaction();
                foreach (var i in nota.NotaFiscalTerceirosItem)
                {
                    sql.Query = @"INSERT INTO registro_estoque 
                                (tipomovimentacao, data, documento, iditem, quantidade, idpessoa)
                                VALUES
                                (@tipomovimentacao, @data, @documento, @iditem, @quantidade, @idpessoa)";
                    sql.clearParams();
                    sql.addParam("@tipomovimentacao", "E");
                    sql.addParam("@data", nota.DataEntradaSaida);
                    sql.addParam("@documento", nota.NotaFiscalTerceirosID.ToString());
                    sql.addParam("@iditem", i.Item.ItemID);
                    sql.addParam("@quantidade", i.Quantidade);
                    sql.addParam("@idpessoa", nota.Pessoa?.PessoaID ?? null);
                    retorno = sql.insertQuery();

                    sql.clearParams();

                    sql.Query = @"UPDATE item SET quantidade = 
                                (SELECT COALESCE(SUM(quantidade), 0) FROM registro_estoque WHERE iditem = @iditem AND tipomovimentacao = 'E')
                                -
                                (SELECT COALESCE(SUM(quantidade), 0) FROM registro_estoque WHERE iditem = @iditem AND tipomovimentacao = 'S')
                                WHERE iditem = @iditem";
                    sql.addParam("@quantidade_atualizada", i.Item.Quantidade - i.Quantidade);
                    sql.addParam("@iditem", i.Item.ItemID);
                    sql.updateQuery();
                }
                sql.Commit();
            }
            return(retorno);
        }
Example #17
0
 private void Limpa(bool limpaCod)
 {
     if (limpaCod)
     {
         tbCodigo.Clear();
     }
     buscaPessoa.Limpa();
     buscaCaixa.Limpa();
     buscaPlanoDeConta.Limpa();
     tbDescricao.Clear();
     dtpEmissao.Value            = DateTime.Now;
     dtpEntrada.Value            = DateTime.Now;
     dbValorTotalItens.Valor     = 0.00m;
     dbDescontoTotalItens.Valor  = 0.00m;
     dbDescontoDocumento.Valor   = 0.00m;
     dbValorTotalDocumento.Valor = 0.00m;
     tbAjuda.Clear();
     dgvItens.Rows.Clear();
     dgvItens.Refresh();
     LimpaCamposItem(limpaCod);
     notaFiscalTerceiros = null;
     codigo = 0;
     itens.Clear();
 }
Example #18
0
 private void PreencheCaixaEPlano(NotaFiscalTerceiros notafiscal)
 {
     caixalancamento = caixalancamentoDAO.BuscaByDocumento(notafiscal.NotaFiscalTerceirosID.ToString());
     buscaCaixa.PreencheCampos(caixalancamento?.Caixa);
     buscaPlanoDeConta.PreencheCampos(caixalancamento?.PlanoConta);
 }
Example #19
0
        private void Salva()
        {
            var controls = (ControlCollection)this.Controls;

            if (!editando)
            {
                return;
            }
            var ok = false;

            if (tbCodigo.Text.Length <= 0)
            {
                if (MessageBox.Show("Número da nota em branco, deseja gerar um numero automaticamente?",
                                    "Aviso",
                                    MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Information) == DialogResult.Yes)
                {
                    tbCodigo.Text = notaFiscalTerceirosDAO.BuscaProxCodigoDisponivel().ToString();
                }
                ok = false;
            }
            else
            {
                if (itens.Count <= 0)
                {
                    MessageBox.Show("Uma nota não pode ser salva sem itens!",
                                    "Problema ao salvar",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Warning);
                    return;
                }

                notaFiscalTerceirosNova = new NotaFiscalTerceiros();
                notaFiscalTerceirosNova.NotaFiscalTerceirosID = int.Parse(tbCodigo.Text);
                notaFiscalTerceirosNova.Descricao             = tbDescricao.Text;
                notaFiscalTerceirosNova.Pessoa           = buscaPessoa.pessoa;
                notaFiscalTerceirosNova.DataEmissao      = dtpEmissao.Value;
                notaFiscalTerceirosNova.DataEntradaSaida = dtpEntrada.Value;

                notaFiscalTerceirosNova.ValorTotalItens     = dbValorTotalItens.Valor;
                notaFiscalTerceirosNova.DescontoTotalItens  = dbDescontoTotalItens.Valor;
                notaFiscalTerceirosNova.DescontoDocumento   = dbDescontoDocumento.Valor;
                notaFiscalTerceirosNova.ValorTotalDocumento = dbValorTotalDocumento.Valor;

                notaFiscalTerceirosNova.Caixa        = buscaCaixa.caixa;
                notaFiscalTerceirosNova.PlanoDeConta = buscaPlanoDeConta.conta;

                notaFiscalTerceirosNova.NotaFiscalTerceirosItem = itens;


                ok = validacao.ValidarEntidade(notaFiscalTerceirosNova, controls);
            }

            if (ok)
            {
                validacao.despintarCampos(controls);

                int resultado = notaFiscalTerceirosDAO.SalvarOuAtualizar(notaFiscalTerceirosNova);

                // resultado 0 = nada foi inserido (houve algum erro)
                // resultado 1 = foi inserido com sucesso
                // resultado 2 = foi atualizado com sucesso
                if (resultado == 0)
                {
                    MessageBox.Show("Problema ao salvar o registro",
                                    "Problema ao salvar",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Warning);
                    return;
                }
                else if (resultado == 1)
                {
                    tbAjuda.Text = "Dados salvos com sucesso";
                    notaFiscalTerceirosDAO.MovimentaEstoque(notaFiscalTerceirosNova);
                    notaFiscalTerceirosDAO.MovimentaCaixa(notaFiscalTerceirosNova);

                    Editando(false);
                }
                else if (resultado == 2)
                {
                    tbAjuda.Text = "Dados atualizados com sucesso";
                    notaFiscalTerceirosDAO.LimpaRegistrosEstoque(notaFiscalTerceiros);
                    notaFiscalTerceirosDAO.MovimentaEstoque(notaFiscalTerceirosNova);
                    notaFiscalTerceirosDAO.LimpaRegistrosCaixa(notaFiscalTerceirosNova);
                    notaFiscalTerceirosDAO.MovimentaCaixa(notaFiscalTerceirosNova);
                    Editando(false);
                }
                notaFiscalTerceiros = notaFiscalTerceirosNova;
            }
        }