Пример #1
0
        private List <ParcelaContaReceber> LeDadosReader(List <Dictionary <string, object> > data)
        {
            var parcelas = new List <ParcelaContaReceber>();

            if (data.Count == 0)
            {
                return(parcelas);
            }

            foreach (var d in data)
            {
                var parcela = new ParcelaContaReceber();
                parcela.ParcelaContaReceberID = Convert.ToInt32(d["idparcela_conta_receber"]);
                parcela.Sequencia             = Convert.ToInt32(d["sequencia"]);
                parcela.DataVencimento        = (DateTime)d["data_vencimento"];
                parcela.Valor          = (decimal)d["valor"];
                parcela.Multa          = (decimal)d["multa"];
                parcela.Juros          = (decimal)d["juros"];
                parcela.Acrescimo      = (decimal)d["acrescimo"];
                parcela.Desconto       = (decimal)d["desconto"];
                parcela.DataQuitacao   = (DateTime?)d["data_quitacao"];
                parcela.ContaReceberID = Convert.ToInt32(d["idconta_receber"]);
                parcelas.Add(parcela);
            }

            return(parcelas);
        }
Пример #2
0
        private ContaReceber LeDadosReader(List <Dictionary <string, object> > data)
        {
            if (data.Count == 0)
            {
                return(null);
            }
            var contaReceber  = new ContaReceber();
            var listaparcelas = new List <ParcelaContaReceber>();

            contaReceber.ContaReceberID      = Convert.ToInt32(data[0]["idconta_receber"]);
            contaReceber.DataCadastro        = (DateTime)data[0]["data_cadastro"];
            contaReceber.Descricao           = (string)data[0]["crdescricao"];
            contaReceber.DataConta           = (DateTime)data[0]["data_conta"];
            contaReceber.ValorOriginal       = (decimal)data[0]["valor_original"];
            contaReceber.Multa               = (decimal)data[0]["multa"];
            contaReceber.Juros               = (decimal)data[0]["juros"];
            contaReceber.Acrescimo           = (decimal)data[0]["acrescimo"];
            contaReceber.Desconto            = (decimal)data[0]["desconto"];
            contaReceber.ValorFinal          = (decimal)data[0]["valor_final"];
            contaReceber.Situacao            = (string)data[0]["situacao"];
            contaReceber.Operacao            = new Operacao();
            contaReceber.Operacao.OperacaoID = Convert.ToInt32(data[0]["idoperacao"]);
            contaReceber.Pessoa              = new Pessoa();
            contaReceber.Pessoa.PessoaID     = Convert.ToInt32(data[0]["idpessoa"]);

            foreach (var d in data)
            {
                var parcela        = new ParcelaContaReceber();
                var formapagamento = new FormaPagamento();

                if (d["pformapagamento"] != null)
                {
                    formapagamento.FormaPagamentoID = Convert.ToInt32(d["pformapagamento"]);
                    formapagamento.Nome             = (string)d["nome"];
                }
                else
                {
                    formapagamento = null;
                }

                parcela.ParcelaContaReceberID = Convert.ToInt32(d["idparcela_conta_receber"]);
                parcela.DataQuitacao          = (DateTime?)d["data_quitacao"];
                parcela.DataVencimento        = (DateTime)d["data_vencimento"];
                parcela.Descricao             = (string)d["crdescricao"];
                parcela.Juros     = (decimal)d["pjuros"];
                parcela.Acrescimo = (decimal)d["pacrescimo"];
                parcela.Desconto  = (decimal)d["pdesconto"];
                parcela.Multa     = (decimal)d["pmulta"];
                parcela.Sequencia = Convert.ToInt32(d["sequencia"]);
                parcela.Valor     = (decimal)d["valor"];
                parcela.Situacao  = (string)d["psituacao"];

                parcela.FormaPagamento = formapagamento;
                listaparcelas.Add(parcela);
            }
            contaReceber.Parcelas = listaparcelas;
            return(contaReceber);
        }
Пример #3
0
 private void DgvParcelas_CurrentCellChanged(object sender, EventArgs e)
 {
     if (dgvParcelas.SelectedRows.Count > 0)
     {
         int             selectedRowIndex = dgvParcelas.SelectedCells[0].RowIndex;
         DataGridViewRow selectedRow      = dgvParcelas.Rows[selectedRowIndex];
         parcelaSelecionada = parcelas.Find(p => p.Sequencia == Convert.ToInt32(selectedRow.Cells[0].Value));
         PreencheCamposParcelas(parcelaSelecionada);
         btSalvarParcela.Enabled = true;
     }
 }
Пример #4
0
 private void LimpaCamposParcela()
 {
     dbValorOriginalParcela.Valor = 0.00m;
     dbValorFinalParcela.Valor    = 0.00m;
     dbMultaParcela.Valor         = 0.00m;
     dbJurosParcela.Valor         = 0.00m;
     dbAcrescimoParcela.Valor     = 0.00m;
     dbDescontoParcela.Valor      = 0.00m;
     tbFormaPagamentoParcela.Clear();
     tbSituacaoParcela.Clear();
     this.parcelaSelecionada = null;
 }
Пример #5
0
        private void GerarParcelas()
        {
            if (buscaOperacao.operacao == null)
            {
                MessageBox.Show("Você deve selecionar um operação para gerar as parcelas!",
                                "Operação não selecionada",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
                return;
            }
            parcelas.Clear();
            dgvParcelas.Rows.Clear();
            dgvParcelas.Refresh();
            dbMultaConta.Valor         = 0.00m;
            dbJurosConta.Valor         = 0.00m;
            dbAcrescimoParcela.Valor   = 0.00m;
            dbDescontoParcela.Valor    = 0.00m;
            dbValorOriginalConta.Valor = 0.00m;
            dbValorFinalConta.Valor    = 0.00m;
            var parcelasOperacao = buscaOperacao.operacao.Parcelas;


            int sequencia = 1;

            foreach (var parcela in parcelasOperacao)
            {
                var par = new ParcelaContaReceber
                {
                    Sequencia      = sequencia,
                    DataVencimento = dtpDataConta.Value.AddDays(parcela.Dias),
                    Multa          = 0.00m,
                    Juros          = 0.00m,
                    Valor          = dbValorContaGerar.Valor / parcelasOperacao.Count,
                    Acrescimo      = dbValorContaGerar.Valor * buscaOperacao.operacao.Acrescimo / 100 / parcelasOperacao.Count,
                    Situacao       = "Aberto"
                };
                sequencia++;
                this.parcelas.Add(par);
                dbValorOriginalConta.Valor += par.Valor;
                dbAcrescimoConta.Valor     += par.Acrescimo;
                dbDescontoParcela.Valor    += par.Desconto;
                dbValorFinalConta.Valor    += par.Valor + par.Acrescimo - par.Desconto;
            }
            PreencheGridParcelas(parcelas);
        }
Пример #6
0
        public ParcelaContaReceber BuscaByID(string codigo)
        {
            ParcelaContaReceber parcelaContaReceber = null;

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = @"SELECT * FROM parcela_conta_receber pcr
                              LEFT JOIN conta_receber cr
                              ON pcr.idconta_receber = cr.idconta_receber
                              WHERE idparcela_conta_receber = @idparcela_conta_receber";

                sql.addParam("@idparcela_conta_receber", codigo);
                var data = sql.selectQuery();
                if (data == null)
                {
                    return(null);
                }
                parcelaContaReceber = LeDadosReader(data)[0];
            }
            return(parcelaContaReceber);
        }
Пример #7
0
        private void PreencheCamposParcelas(ParcelaContaReceber parcela)
        {
            tbCodigoParcela.Text           = parcela.Sequencia.ToString();
            dtpDataVencimentoParcela.Value = parcela.DataVencimento;
            dbValorOriginalParcela.Valor   = parcela.Valor;
            dbMultaParcela.Valor           = parcela.Multa;
            dbJurosParcela.Valor           = parcela.Juros;
            dbAcrescimoParcela.Valor       = parcela.Acrescimo;
            dbDescontoParcela.Valor        = parcela.Desconto;
            dbValorFinalParcela.Valor      = parcela.ValorFinal;
            tbSituacaoParcela.Text         = parcela.Situacao;
            tbDataQuitacao.Text            = parcela.DataQuitacao != null?parcela.DataQuitacao.Value.ToShortDateString() : "";

            if (parcela.FormaPagamento != null)
            {
                tbFormaPagamentoParcela.Text = parcela.FormaPagamento.Nome;
            }
            else
            {
                tbFormaPagamentoParcela.Clear();
            }
        }
Пример #8
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);
        }
Пример #9
0
        private void GerarParcelas()
        {
            if (buscaOperacao.operacao == null)
            {
                MessageBox.Show("Você deve selecionar um operação para gerar as parcelas!",
                                "Operação não selecionada",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
                return;
            }
            parcelas.Clear();
            var parcelasOperacao = buscaOperacao.operacao.Parcelas;

            jurosparcela    = dbJurosTotal.Valor / parcelasOperacao.Count;
            descontoparcela = dbDescontoDocumento.Valor / parcelasOperacao.Count;

            int sequencia = 1;

            foreach (var parcela in parcelasOperacao)
            {
                var par = new ParcelaContaReceber
                {
                    Sequencia      = sequencia,
                    DataVencimento = dtpSaida.Value.AddDays(parcela.Dias),
                    Multa          = 0.00m,
                    Juros          = jurosparcela,
                    Valor          = dbValorTotalItens.Valor / parcelasOperacao.Count,
                    Acrescimo      = dbValorTotalDocumento.Valor * buscaOperacao.operacao.Acrescimo / 100 / parcelasOperacao.Count,
                    Desconto       = descontoparcela,
                    Descricao      = tbDescricao.Text,
                    Situacao       = "Aberto"
                };
                sequencia++;
                this.parcelas.Add(par);
            }
        }
Пример #10
0
        public IEnumerable <ContaReceber> Busca(fmCarBuscaContaReceber.Filtros f)
        {
            var    ListaContasReceber  = new List <ContaReceber>();
            var    parcelaContaReceber = new ParcelaContaReceber();
            string wherePessoa         = f.filtroPessoa != null ? "AND p.idpessoa = @idpessoa" : "";
            string whereOperacao       = f.filtroOperacao != null ? "AND op.idoperacao = @idoperacao" : "";
            string whereValorFinal     = f.usarvalorContaFiltro ? "AND cr.valor_final BETWEEN @valor_conta_inicial AND @valor_conta_final" : "";
            string whereDatCadastro    = f.usardataCadastroFiltro ? "AND cr.data_cadastro BETWEEN @data_cadastro_inicial AND @data_cadastro_final" : "";
            string whereDataVencimento = f.usardataVencimentoFiltro ? "AND pa.data_vencimento BETWEEN @data_vencimento_inicial AND @data_vencimento_final" : "";


            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = @"SELECT cr.idconta_receber, p.idpessoa, p.nome, cr.data_cadastro, cr.data_conta,
                                                    op.idoperacao, op.nome as nomeoperacao, cr.valor_original, cr.multa, cr.juros,
                                                    cr.valor_final, cr.acrescimo, cr.desconto, pa.data_vencimento, cr.situacao, cr.descricao AS crdescricao
                                                    FROM conta_receber cr 
                                                    LEFT JOIN operacao op ON cr.idoperacao = op.idoperacao
                                                    LEFT JOIN pessoa p ON cr.idpessoa = p.idpessoa
                                                    LEFT JOIN parcela_conta_receber pa ON pa.idconta_receber = cr.idconta_receber
                                                    WHERE 1 = 1 "
                            + wherePessoa + " "
                            + whereOperacao + " "
                            + whereValorFinal + " "
                            + whereDatCadastro + " "
                            + whereDataVencimento + " "
                            + "GROUP BY cr.idconta_receber";
                if (f.filtroPessoa != null)
                {
                    sql.addParam("@idpessoa", f.filtroPessoa.PessoaID);
                }
                if (f.filtroOperacao != null)
                {
                    sql.addParam("@idoperacao", f.filtroOperacao.OperacaoID);
                }
                if (f.usarvalorContaFiltro)
                {
                    sql.addParam("@valor_conta_inicial", f.filtroValorInicial);
                    sql.addParam("@valor_conta_final", f.filtroValorFinal);
                }
                if (f.usardataCadastroFiltro)
                {
                    sql.addParam("@data_cadastro_inicial", f.filtroDataCadastroInicial);
                    sql.addParam("@data_cadastro_final", f.filtroDataCadastroFinal);
                }
                if (f.usardataVencimentoFiltro)
                {
                    sql.addParam("@data_vencimento_inicial", f.filtroDataVencimentoInicial);
                    sql.addParam("@data_vencimento_final", f.filtroDataVencimentoFinal);
                }
                var data = sql.selectQuery();

                foreach (var d in data)
                {
                    Operacao operacao = null;
                    Pessoa   pessoa   = null;

                    pessoa = new Pessoa
                    {
                        PessoaID = Convert.ToInt32(d["idpessoa"]),
                        Nome     = (string)d["nome"]
                    };
                    operacao = new Operacao
                    {
                        OperacaoID = Convert.ToInt32(d["idoperacao"]),
                        Nome       = (string)d["nomeoperacao"]
                    };


                    var contaReceber = new ContaReceber
                    {
                        ContaReceberID = Convert.ToInt32(d["idconta_receber"]),
                        DataCadastro   = (DateTime)d["data_cadastro"],
                        DataConta      = (DateTime)d["data_conta"],
                        Descricao      = (string)d["crdescricao"],
                        ValorOriginal  = (decimal)d["valor_original"],
                        Multa          = (decimal)d["multa"],
                        Juros          = (decimal)d["juros"],
                        Acrescimo      = (decimal)d["acrescimo"],
                        Desconto       = (decimal)d["desconto"],
                        ValorFinal     = (decimal)d["valor_final"],
                        Situacao       = (string)d["situacao"]
                    };
                    contaReceber.Pessoa   = pessoa;
                    contaReceber.Operacao = operacao;
                    ListaContasReceber.Add(contaReceber);
                }
            }
            return(ListaContasReceber);
        }
Пример #11
0
        private void CancelarNota()
        {
            decimal Pago = 0, Aberto = 0, Devolucao = 0;

            multacancelamento = (notaFiscalPropria.ValorTotalDocumento * multacancelamento) / 100;

            foreach (var p in notaFiscalPropria.ContaReceber.Parcelas)
            {
                switch (p.Situacao)
                {
                case "Pago":
                    Pago += p.ValorFinal;
                    break;

                case "Aberto":
                    Aberto += p.ValorFinal;
                    break;
                }
            }

            Devolucao = Pago - multacancelamento;


            if (Devolucao > 0)
            {
                MessageBox.Show("Escolha o caixa em que o lançamento será realizado", "Aviso",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);

                Caixa caixa      = new Caixa();
                var   buscaCaixa = new fmCaiBuscaCaixa();
                buscaCaixa.ShowDialog();
                if (buscaCaixa.caixaSelecionada == null)
                {
                    MessageBox.Show("Caixa não selecionado, operação interrompida!", "Erro",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                caixa = buscaCaixa.caixaSelecionada;

                PlanoContaDAO planocontaDAO = new PlanoContaDAO();
                PlanoConta    planoconta    = new PlanoConta();
                planoconta = planocontaDAO.BuscaByID(2);

                caixalancemnto = new CaixaLancamento
                {
                    Data          = DateTime.Today,
                    Valor         = Devolucao,
                    TipoMovimento = 1,
                    TipoDocumento = 6,
                    Lancamento    = 1,
                    Caixa         = caixa,
                    PlanoConta    = planoconta
                };

                var resultado = caixalancamentoDAO.DevolucaoCancelamento(caixalancemnto);

                if (resultado > 0)
                {
                    MessageBox.Show("Lançamento realizado com sucesso!",
                                    "Conta gerada",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("Problema ao realizar lançamento",
                                    "Problema ao gerar",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Warning);
                }
            }
            if (Devolucao < 0)
            {
                //Gerar conta a receber com valor MULTA POR CANCELAMENTO DE NOTA

                Devolucao = Devolucao * -1;

                var par = new ParcelaContaReceber
                {
                    Sequencia      = 1,
                    DataVencimento = DateTime.Today.AddDays(30),
                    Multa          = 0.00m,
                    Juros          = 0,
                    Valor          = Devolucao,
                    Acrescimo      = 0,
                    Desconto       = 0,
                    Descricao      = "Multa por cancelamento de nota",
                    Situacao       = "Aberto"
                };

                List <ParcelaContaReceber> parcelasmulta = new List <ParcelaContaReceber>();
                parcelasmulta.Add(par);

                var contaReceberMulta = new ContaReceber
                {
                    ContaReceberID = contaReceberDAO.BuscaProxCodigoDisponivel(),
                    DataCadastro   = DateTime.Today,
                    DataConta      = dtpSaida.Value,
                    Pessoa         = buscaPessoa.pessoa,
                    Operacao       = buscaOperacao.operacao,
                    ValorOriginal  = Devolucao,
                    Multa          = 0m,
                    Juros          = 0m,
                    ValorFinal     = Devolucao,
                    Acrescimo      = 0m,
                    Desconto       = 0m,
                    Situacao       = "Aberto",
                    Descricao      = "Multa por cancelamento de nota",
                    Entrada        = 0m,
                    Parcelas       = parcelas
                };

                int resultado = contaReceberDAO.SalvaOuAtualiza(contaReceberMulta);

                if (resultado > 0)
                {
                    MessageBox.Show("Conta a Receber gerada com sucesso!",
                                    "Conta gerada",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("Problema ao gerar conta a receber",
                                    "Problema ao gerar",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Warning);
                }
            }

            var retorno = notaFiscalPropriaDAO.CancelarNota(notaFiscalPropria);

            if (retorno > 0)
            {
                MessageBox.Show("Nota cancelada com sucesso!",
                                "Conta gerada",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("Problema ao cancelar nota",
                                "Problema ao gerar",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
            }
        }