コード例 #1
0
        public RetornoCnab400 ProcessarRetorno()
        {
            /* Validações */
            #region Validações

            ValidaArquivoRetorno();

            #endregion

            var objRetornar = new RetornoCnab400 {
                RegistrosDetalhe = new List <DetalheRetornoCnab400>()
            };

            foreach (var linhaAtual in _linhasArquivo)
            {
                if (linhaAtual.ExtrairValorDaLinha(1, 1) == "0")
                {
                    objRetornar.Header = ObterHeader(linhaAtual);
                }
                if (linhaAtual.ExtrairValorDaLinha(1, 1) == "7")
                {
                    var objDetalhe = ObterRegistrosDetalhe(linhaAtual);
                    objRetornar.RegistrosDetalhe.Add(objDetalhe);
                }
                if (linhaAtual.ExtrairValorDaLinha(1, 1) == "9")
                {
                    objRetornar.Trailer = ObterTrailer(linhaAtual);
                }
            }

            return(objRetornar);
        }
コード例 #2
0
        public RetornoCnab400 ProcessarRetorno()
        {
            try
            {
                ValidaArquivoRetorno();

                var objRetornar = new RetornoCnab400();
                objRetornar.RegistrosDetalhe = new List <DetalheRetornoCnab400>();

                foreach (var linhaAtual in _linhasArquivo)
                {
                    if (linhaAtual.ExtrairValorDaLinha(1, 1) == "0")
                    {
                        objRetornar.Header = ObterHeader(linhaAtual);
                    }
                    if (linhaAtual.ExtrairValorDaLinha(1, 1) == "1")
                    {
                        var objDetalhe = ObterRegistrosDetalhe(linhaAtual);
                        objRetornar.RegistrosDetalhe.Add(objDetalhe);
                    }
                    if (linhaAtual.ExtrairValorDaLinha(1, 1) == "9")
                    {
                        objRetornar.Trailer = ObterTrailer(linhaAtual);
                    }
                }

                return(objRetornar);
            }
            catch (ArgumentException ex)
            {
                throw new ArgumentException("O arquivo selecionado possui um formato inválido ou não corresponde a conta bancária escolhida", ex);
            }
        }
コード例 #3
0
        public RetornoGenerico(RetornoCnab400 retornoCnab400)
        {
            Inicializa();
            RetornoCnab400Especifico = retornoCnab400;

            /* Transformar de CNAB400 para formato genérico */
            Header.CodigoDoBanco = retornoCnab400.Header.CodigoDoBanco;
            Header.Convenio = retornoCnab400.Header.NumeroConvenio.ToString(CultureInfo.InvariantCulture);
            Header.CodigoAgencia = retornoCnab400.Header.CodigoAgenciaCedente.ToString(CultureInfo.InvariantCulture);
            Header.DvAgencia = retornoCnab400.Header.DvAgenciaCedente;
            Header.NumeroConta = retornoCnab400.Header.ContaCorrente;
            Header.DvConta = retornoCnab400.Header.DvContaCorrente;
            Header.NomeEmpresa = retornoCnab400.Header.NomeDoBeneficiario;
            Header.NomeDoBanco = retornoCnab400.Header.NomeDoBanco;

            foreach (var registroAtual in retornoCnab400.RegistrosDetalhe)
            {
                var banco = BancoFactory.ObterBanco(Header.CodigoDoBanco);
                var ocorrencia = banco.ObtemCodigoOcorrenciaByInt(registroAtual.CodigoDeOcorrencia);

                var detalheGenericoAdd = new RetornoDetalheGenerico
                {
                    NossoNumero = registroAtual.NossoNumero,
                    TipoCobranca = registroAtual.TipoCobranca.ToString(CultureInfo.InvariantCulture),
                    Carteira = registroAtual.CodigoCarteira,
                    PercentualDesconto = registroAtual.TaxaDesconto,
                    PercentualIof = registroAtual.TaxaIof,
                    Especie = registroAtual.Especie,
                    //DataPagamento = registroAtual.DataPagamento.ToString("ddMMyy").Equals("0") ? new DateTime(0001, 01, 01) : Convert.ToDateTime(registroAtual.DataPagamento.ToString("ddMMyy")),
                    DataCredito = registroAtual.DataDeCredito,
                    DataVencimento = registroAtual.DataDeVencimento,
                    //DataOcorrencia = registroAtual.DataEmissao.ToString("ddMMyy").Equals(null) ? new DateTime(0001, 01, 01) : Convert.ToDateTime(registroAtual.DataEmissao.ToString("ddMMyy")),
                    NumeroDocumento = registroAtual.NumeroDocumento,
                    ValorDocumento = registroAtual.ValorDoTituloParcela,
                    ValorTarifaCustas = registroAtual.ValorTarifa,
                    ValorOutrasDespesas = registroAtual.ValorOutrasDespesas,
                    ValorJurosDesconto = registroAtual.ValorJurosDesconto,
                    ValorIofDesconto = registroAtual.ValorIofDesconto,
                    ValorAbatimento = registroAtual.ValorAbatimento,
                    ValorDesconto = registroAtual.ValorDesconto,
                    ValorRecebido = registroAtual.ValorLiquidoRecebido + registroAtual.ValorDoDebitoCredito,
                    ValorAcrescimos = registroAtual.ValorJurosDeMora + registroAtual.ValorMulta,
                    ValorOutrosRecebimentos = registroAtual.ValorOutrosRecebimentos,
                    ValorAbatimentoNaoAproveitadoPeloSacado = registroAtual.ValorAbatimentosNaoAproveitado,
                    ValorLancamento = registroAtual.ValorLancamento,
                    //DataLiquidacao = registroAtual.DataLiquidacao.ToString("ddMMyy").Equals(null) ? new DateTime(0001, 01, 01) : Convert.ToDateTime(registroAtual.DataLiquidacao.ToString("ddMMyy")),
                    InscricaoSacado = registroAtual.NumeroInscricaoSacado.ToString(CultureInfo.InvariantCulture),
                    NomeSacado = registroAtual.NomeSacado,
                    //CodigoMovimento = registroAtual.MotivoCodigoRejeicao.Equals(null) ? "0" : registroAtual.MotivoCodigoRejeicao,
                    CodigoOcorrencia = String.IsNullOrEmpty(registroAtual.MotivoCodigoOcorrencia) ? "00" : registroAtual.MotivoCodigoOcorrencia,
                    MensagemOcorrenciaRetornoBancario = ocorrencia.Descricao
                };

                RegistrosDetalhe.Add(detalheGenericoAdd);
            }
        }
コード例 #4
0
        public RetornoGenerico(RetornoCnab400 retornoCnab400)
        {
            Inicializa();
            RetornoCnab400Especifico = retornoCnab400;

            /* Transformar de CNAB400 para formato genérico */
            Header.CodigoDoBanco = retornoCnab400.Header.CodigoDoBanco;
            Header.Convenio      = retornoCnab400.Header.NumeroConvenio.ToString(CultureInfo.InvariantCulture);
            Header.CodigoAgencia = retornoCnab400.Header.CodigoAgenciaCedente.ToString(CultureInfo.InvariantCulture);
            Header.DvAgencia     = retornoCnab400.Header.DvAgenciaCedente;
            Header.NumeroConta   = retornoCnab400.Header.ContaCorrente;
            Header.DvConta       = retornoCnab400.Header.DvContaCorrente;
            Header.NomeEmpresa   = retornoCnab400.Header.NomeDoBeneficiario;
            Header.NomeDoBanco   = retornoCnab400.Header.NomeDoBanco;

            foreach (var registroAtual in retornoCnab400.RegistrosDetalhe)
            {
                var banco      = BancoFactory.ObterBanco(Header.CodigoDoBanco);
                var ocorrencia = banco.ObtemCodigoOcorrenciaByInt(registroAtual.CodigoDeOcorrencia);

                var detalheGenericoAdd = new RetornoDetalheGenerico
                {
                    NossoNumero        = registroAtual.NossoNumero,
                    TipoCobranca       = registroAtual.TipoCobranca.ToString(CultureInfo.InvariantCulture),
                    Carteira           = registroAtual.CodigoCarteira,
                    PercentualDesconto = registroAtual.TaxaDesconto,
                    PercentualIof      = registroAtual.TaxaIof,
                    Especie            = registroAtual.Especie,
                    //DataPagamento = registroAtual.DataPagamento.ToString("ddMMyy").Equals("0") ? new DateTime(0001, 01, 01) : Convert.ToDateTime(registroAtual.DataPagamento.ToString("ddMMyy")),
                    DataCredito    = registroAtual.DataDeCredito,
                    DataVencimento = registroAtual.DataDeVencimento,
                    //DataOcorrencia = registroAtual.DataEmissao.ToString("ddMMyy").Equals(null) ? new DateTime(0001, 01, 01) : Convert.ToDateTime(registroAtual.DataEmissao.ToString("ddMMyy")),
                    NumeroDocumento         = registroAtual.NumeroDocumento,
                    ValorDocumento          = registroAtual.ValorDoTituloParcela,
                    ValorTarifaCustas       = registroAtual.ValorTarifa,
                    ValorOutrasDespesas     = registroAtual.ValorOutrasDespesas,
                    ValorJurosDesconto      = registroAtual.ValorJurosDesconto,
                    ValorIofDesconto        = registroAtual.ValorIofDesconto,
                    ValorAbatimento         = registroAtual.ValorAbatimento,
                    ValorDesconto           = registroAtual.ValorDesconto,
                    ValorRecebido           = registroAtual.ValorLiquidoRecebido + registroAtual.ValorDoDebitoCredito,
                    ValorAcrescimos         = registroAtual.ValorJurosDeMora + registroAtual.ValorMulta,
                    ValorOutrosRecebimentos = registroAtual.ValorOutrosRecebimentos,
                    ValorAbatimentoNaoAproveitadoPeloSacado = registroAtual.ValorAbatimentosNaoAproveitado,
                    ValorLancamento = registroAtual.ValorLancamento,
                    //DataLiquidacao = registroAtual.DataLiquidacao.ToString("ddMMyy").Equals(null) ? new DateTime(0001, 01, 01) : Convert.ToDateTime(registroAtual.DataLiquidacao.ToString("ddMMyy")),
                    InscricaoSacado = registroAtual.NumeroInscricaoSacado.ToString(CultureInfo.InvariantCulture),
                    NomeSacado      = registroAtual.NomeSacado,
                    //CodigoMovimento = registroAtual.MotivoCodigoRejeicao.Equals(null) ? "0" : registroAtual.MotivoCodigoRejeicao,
                    CodigoOcorrencia = String.IsNullOrEmpty(registroAtual.MotivoCodigoOcorrencia) ? "00" : registroAtual.MotivoCodigoOcorrencia,
                    MensagemOcorrenciaRetornoBancario = ocorrencia.Descricao
                };

                RegistrosDetalhe.Add(detalheGenericoAdd);
            }
        }
コード例 #5
0
        public RetornoCnab400 ProcessarRetorno()
        {
            /* Validações */
            #region Validações
            ValidaArquivoRetorno();
            #endregion

            var objRetornar = new RetornoCnab400 {RegistrosDetalhe = new List<DetalheRetornoCnab400>()};

            foreach (var linhaAtual in _linhasArquivo)
            {
                if (linhaAtual.ExtrairValorDaLinha(1, 1) == "0")
                {
                   objRetornar.Header = ObterHeader(linhaAtual);
                }
                if (linhaAtual.ExtrairValorDaLinha(1, 1) == "1")
                {
                    var objDetalhe = ObterRegistrosDetalhe(linhaAtual);
                    objRetornar.RegistrosDetalhe.Add(objDetalhe);
                }
                if (linhaAtual.ExtrairValorDaLinha(1, 1) == "9")
                {
                    objRetornar.Trailer = ObterTrailer(linhaAtual);
                }
            }

            return objRetornar;
        }
コード例 #6
0
        public RetornoGenerico(RetornoCnab400 retornoCnab400)
        {
            Inicializa();
            RetornoCnab400Especifico = retornoCnab400;

            /* Transformar de CNAB400 para formato genérico */
            Header.CodigoDoBanco          = retornoCnab400.Header.CodigoDoBanco;
            Header.Convenio               = retornoCnab400.Header.NumeroConvenio.ToString(CultureInfo.InvariantCulture);
            Header.CodigoAgencia          = retornoCnab400.Header.CodigoAgenciaCedente.ToString(CultureInfo.InvariantCulture);
            Header.DvAgencia              = retornoCnab400.Header.DvAgenciaCedente;
            Header.NumeroConta            = retornoCnab400.Header.ContaCorrente;
            Header.DvConta                = retornoCnab400.Header.DvContaCorrente;
            Header.NomeEmpresa            = retornoCnab400.Header.NomeDoBeneficiario;
            Header.NomeDoBanco            = retornoCnab400.Header.NomeDoBanco;
            Header.NumeroInscricaoEmpresa =
                retornoCnab400.RegistrosDetalhe.FirstOrDefault()?.IdentificacaoEmpresaNoBanco;

            foreach (var registroAtual in retornoCnab400.RegistrosDetalhe)
            {
                var banco              = BancoFactory.ObterBanco(Header.CodigoDoBanco);
                var ocorrencia         = banco.ObtemCodigoOcorrenciaByInt(registroAtual.CodigoDeOcorrencia);
                var detalheGenericoAdd = new RetornoDetalheGenerico
                {
                    NossoNumero             = registroAtual.NossoNumero,
                    TipoCobranca            = registroAtual.TipoCobranca.ToString(CultureInfo.InvariantCulture),
                    Carteira                = registroAtual.CodigoCarteira,
                    PercentualDesconto      = registroAtual.TaxaDesconto,
                    PercentualIof           = registroAtual.TaxaIof,
                    Especie                 = registroAtual.Especie,
                    DataCredito             = registroAtual.DataDeCredito,
                    DataVencimento          = registroAtual.DataDeVencimento,
                    DataLiquidacao          = registroAtual.DataLiquidacao,
                    NumeroDocumento         = registroAtual.NumeroDocumento,
                    SeuNumero               = registroAtual.SeuNumero,
                    ValorDocumento          = registroAtual.ValorDoTituloParcela,
                    ValorTarifaCustas       = registroAtual.ValorTarifa,
                    ValorOutrasDespesas     = registroAtual.ValorOutrasDespesas,
                    ValorJurosDesconto      = registroAtual.ValorJurosDesconto,
                    ValorIofDesconto        = registroAtual.ValorIofDesconto,
                    ValorAbatimento         = registroAtual.ValorAbatimento,
                    ValorDesconto           = registroAtual.ValorDesconto,
                    ValorRecebido           = registroAtual.ValorLiquidoRecebido + registroAtual.ValorDoDebitoCredito,
                    ValorAcrescimos         = registroAtual.ValorJurosDeMora + registroAtual.ValorMulta + registroAtual.ValorTarifa,
                    ValorJuros              = registroAtual.ValorJurosDeMora,
                    ValorMulta              = registroAtual.ValorMulta,
                    ValorOutrosRecebimentos = registroAtual.ValorOutrosRecebimentos,
                    ValorAbatimentoNaoAproveitadoPeloSacado = registroAtual.ValorAbatimentosNaoAproveitado,
                    ValorLancamento  = registroAtual.ValorLancamento,
                    InscricaoSacado  = registroAtual.NumeroInscricaoSacado.ToString(CultureInfo.InvariantCulture),
                    NomeSacado       = registroAtual.NomeSacado,
                    CodigoOcorrencia = String.IsNullOrEmpty(registroAtual.MotivoCodigoOcorrencia) ? "00" : registroAtual.MotivoCodigoOcorrencia,
                    MensagemOcorrenciaRetornoBancario = ocorrencia.Descricao,
                    Ocorrencia = ocorrencia
                };

                //DATA LIQUIDAÇÃO E DATA OCORRENCIA
                if (detalheGenericoAdd.Pago && detalheGenericoAdd.DataLiquidacao == DateTime.MinValue)
                {
                    detalheGenericoAdd.DataLiquidacao = registroAtual.DataDaOcorrencia;
                }

                RegistrosDetalhe.Add(detalheGenericoAdd);
            }
        }