Example #1
0
        public RetornoGenerico(RetornoCnab240 retornoCnab240)
        {
            Inicializa();
            RetornoCnab240Especifico = retornoCnab240;
            /* Transformar de CNAB240 para formato genérico */

            foreach (var loteAtual in retornoCnab240.Lotes)
            {
                foreach (var d in loteAtual.RegistrosDetalheSegmentos)
                {
                    var detalheGenericoAdd = new RetornoDetalheGenerico
                    {
                        NossoNumero     = d.SegmentoT.NossoNumero,
                        Carteira        = d.SegmentoT.CodigoCarteira.ToString(CultureInfo.InvariantCulture),
                        NumeroDocumento = d.SegmentoT.NumeroDocumento
                    };

                    // Segmento T
                    var valorDoc = d.SegmentoT.ValorTitulo;
                    detalheGenericoAdd.ValorDocumento = valorDoc;
                    detalheGenericoAdd.DataVencimento = Convert.ToDateTime(d.SegmentoT.DataVencimento);
                    detalheGenericoAdd.NomeSacado     = d.SegmentoT?.NomeSacado;

                    // Segmento U
                    detalheGenericoAdd.DataCredito    = d.SegmentoU.DataCredito;
                    detalheGenericoAdd.DataOcorrencia = Convert.ToDateTime(d.SegmentoU.DataOcorrencia);

                    #region Valores no detalhe

                    var valorAcres = d.SegmentoU.JurosMultaEncargos;
                    var valorDesc  = d.SegmentoU.ValorDescontoConcedido + d.SegmentoU.ValorAbatimentoConcedido;
                    //var valorPago = d.SegmentoU.ValorPagoPeloSacado;
                    var valorRecebido = d.SegmentoU.ValorLiquidoASerCreditado;

                    detalheGenericoAdd.ValorAcrescimos = valorAcres;
                    detalheGenericoAdd.ValorDesconto   = valorDesc;
                    //detalheGenericoAdd.ValorPago = valorPago;
                    detalheGenericoAdd.ValorRecebido = valorRecebido;

                    #endregion

                    var banco      = BancoFactory.ObterBanco(d.SegmentoU?.CodigoBanco.ToString().PadLeft(3, '0'));
                    var ocorrencia = banco.ObtemCodigoOcorrenciaByInt(d.SegmentoU.BoletoBrToBind().CodigoMovimento);
                    detalheGenericoAdd.CodigoOcorrencia = ocorrencia?.Codigo.ToString();
                    detalheGenericoAdd.MensagemOcorrenciaRetornoBancario = ocorrencia?.Descricao;
                    detalheGenericoAdd.Ocorrencia = ocorrencia;

                    //DATA LIQUIDAÇÃO E DATA OCORRENCIA
                    if (detalheGenericoAdd.Pago && detalheGenericoAdd.DataLiquidacao == DateTime.MinValue)
                    {
                        detalheGenericoAdd.DataLiquidacao = d.SegmentoU.DataOcorrencia;
                    }
                    RegistrosDetalhe.Add(detalheGenericoAdd);
                }
            }

            Trailer.QtdRegistrosArquivo = retornoCnab240.Trailer.QtdRegistrosArquivo.ToString(CultureInfo.InvariantCulture);
        }
        public RetornoGenerico(RetornoCnab240 retornoCnab240)
        {
            Inicializa();
            RetornoCnab240Especifico = retornoCnab240;
            /* Transformar de CNAB240 para formato genérico */

            foreach (var loteAtual in retornoCnab240.Lotes)
            {
                foreach (var d in loteAtual.RegistrosDetalheSegmentos)
                {
                    var detalheGenericoAdd = new RetornoDetalheGenerico
                    {
                        NossoNumero = d.SegmentoT.NossoNumero,
                        Carteira = d.SegmentoT.CodigoCarteira.ToString(CultureInfo.InvariantCulture),
                        NumeroDocumento = d.SegmentoT.NumeroDocumento
                    };

                    // Segmento T
                    var valorDoc = d.SegmentoT.ValorTitulo;
                    detalheGenericoAdd.ValorDocumento = valorDoc;
                    detalheGenericoAdd.DataVencimento = Convert.ToDateTime(d.SegmentoT.DataVencimento);
                    //detalheGenericoAdd.ValorDocumento = Math.Round(d.SegmentoT.ValorTitulo, 2);
                    //detalheGenericoAdd.ValorTarifaCustas = d.SegmentoT.ValorTarifas / 100;
                    //detalheGenericoAdd.CodigoMovimento = d.SegmentoT.CodigoMovimento.ToString();
                    //detalheGenericoAdd.CodigoOcorrencia = d.SegmentoT.MotivoOcorrencia.ToString();

                    // Segmento U
                    detalheGenericoAdd.DataCredito = d.SegmentoU.DataCredito;
                    //detalheGenericoAdd.DataLiquidacao = Convert.ToDateTime(d.SegmentoU.DataLiquidacao.ToString());
                    //detalheGenericoAdd.DataCredito = Convert.ToDateTime(d.SegmentoU.DataCredito.ToString());

                    #region Valores no detalhe

                    var valorAcres = d.SegmentoU.JurosMultaEncargos;
                    var valorDesc = d.SegmentoU.ValorDescontoConcedido + d.SegmentoU.ValorAbatimentoConcedido;
                    //var valorPago = d.SegmentoU.ValorPagoPeloSacado;
                    var valorRecebido = d.SegmentoU.ValorLiquidoASerCreditado;

                    detalheGenericoAdd.ValorAcrescimos = valorAcres;
                    detalheGenericoAdd.ValorDesconto = valorDesc;
                    //detalheGenericoAdd.ValorPago = valorPago;
                    detalheGenericoAdd.ValorRecebido = valorRecebido;

                    #endregion

                    //detalheGenericoAdd.ValorIof = d.SegmentoU.ValorIofRecolhido / 100;
                    //detalheGenericoAdd.ValorOutrasDespesas = d.SegmentoU.ValorOutrasDespesas / 100;
                    //detalheGenericoAdd.ValorOutrosCreditos = d.SegmentoU.ValorOutrosCreditos / 100;
                    //detalheGenericoAdd.CodigoOcorrencia = d.SegmentoU.CodigoOcorrenciaPagador;
                    //detalheGenericoAdd.DataOcorrencia = d.SegmentoU.DataOcorrenciaPagador;
                    //detalheGenericoAdd.ValorOcorrencia = d.SegmentoU.ValorOcorrenciaPagador / 100;
                    //detalheGenericoAdd.DataDebitoTarifaCustas = Convert.ToDateTime(d.SegmentoU.DataDebitoTarifa.ToString());
                    RegistrosDetalhe.Add(detalheGenericoAdd);
                }
            }
            Trailer.QtdRegistrosArquivo = retornoCnab240.Trailer.QtdRegistrosArquivo.ToString(CultureInfo.InvariantCulture);
        }
Example #3
0
        public RetornoGenerico(RetornoCnab240 retornoCnab240)
        {
            Inicializa();
            RetornoCnab240Especifico = retornoCnab240;
            /* Transformar de CNAB240 para formato genérico */

            foreach (var loteAtual in retornoCnab240.Lotes)
            {
                foreach (var d in loteAtual.RegistrosDetalheSegmentos)
                {
                    var detalheGenericoAdd = new RetornoDetalheGenerico
                    {
                        NossoNumero     = d.SegmentoT.NossoNumero,
                        Carteira        = d.SegmentoT.CodigoCarteira.ToString(CultureInfo.InvariantCulture),
                        NumeroDocumento = d.SegmentoT.NumeroDocumento
                    };

                    // Segmento T
                    var valorDoc = d.SegmentoT.ValorTitulo;
                    detalheGenericoAdd.ValorDocumento = valorDoc;
                    detalheGenericoAdd.DataVencimento = Convert.ToDateTime(d.SegmentoT.DataVencimento);
                    //detalheGenericoAdd.ValorDocumento = Math.Round(d.SegmentoT.ValorTitulo, 2);
                    //detalheGenericoAdd.ValorTarifaCustas = d.SegmentoT.ValorTarifas / 100;
                    //detalheGenericoAdd.CodigoMovimento = d.SegmentoT.CodigoMovimento.ToString();
                    //detalheGenericoAdd.CodigoOcorrencia = d.SegmentoT.MotivoOcorrencia.ToString();

                    // Segmento U
                    detalheGenericoAdd.DataCredito = d.SegmentoU.DataCredito;
                    //detalheGenericoAdd.DataLiquidacao = Convert.ToDateTime(d.SegmentoU.DataLiquidacao.ToString());
                    //detalheGenericoAdd.DataCredito = Convert.ToDateTime(d.SegmentoU.DataCredito.ToString());

                    #region Valores no detalhe

                    var valorAcres = d.SegmentoU.JurosMultaEncargos;
                    var valorDesc  = d.SegmentoU.ValorDescontoConcedido + d.SegmentoU.ValorAbatimentoConcedido;
                    //var valorPago = d.SegmentoU.ValorPagoPeloSacado;
                    var valorRecebido = d.SegmentoU.ValorLiquidoASerCreditado;

                    detalheGenericoAdd.ValorAcrescimos = valorAcres;
                    detalheGenericoAdd.ValorDesconto   = valorDesc;
                    //detalheGenericoAdd.ValorPago = valorPago;
                    detalheGenericoAdd.ValorRecebido = valorRecebido;

                    #endregion

                    //detalheGenericoAdd.ValorIof = d.SegmentoU.ValorIofRecolhido / 100;
                    //detalheGenericoAdd.ValorOutrasDespesas = d.SegmentoU.ValorOutrasDespesas / 100;
                    //detalheGenericoAdd.ValorOutrosCreditos = d.SegmentoU.ValorOutrosCreditos / 100;
                    //detalheGenericoAdd.CodigoOcorrencia = d.SegmentoU.CodigoOcorrenciaPagador;
                    //detalheGenericoAdd.DataOcorrencia = d.SegmentoU.DataOcorrenciaPagador;
                    //detalheGenericoAdd.ValorOcorrencia = d.SegmentoU.ValorOcorrenciaPagador / 100;
                    //detalheGenericoAdd.DataDebitoTarifaCustas = Convert.ToDateTime(d.SegmentoU.DataDebitoTarifa.ToString());
                    RegistrosDetalhe.Add(detalheGenericoAdd);
                }
            }
            Trailer.QtdRegistrosArquivo = retornoCnab240.Trailer.QtdRegistrosArquivo.ToString(CultureInfo.InvariantCulture);
        }
Example #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);
            }
        }
Example #5
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);
            }
        }
        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);
            }
        }
        public RetornoGenericoPagamento(RetornoCnab240 retornoCnab240)
        {
            Inicializa();
            RetornoCnab240Especifico = retornoCnab240;
            /* Transformar de CNAB240 para formato genérico */

            foreach (var loteAtual in retornoCnab240.Lotes)
            {
                foreach (var d in loteAtual.RegistrosDetalheSegmentos)
                {
                    var detalheGenericoAdd = new RetornoDetalheGenerico();

                    if (d.SegmentoJ != null)
                    {
                        detalheGenericoAdd.NossoNumero    = d.SegmentoJ.NossoNumero;
                        detalheGenericoAdd.SeuNumero      = d.SegmentoJ.SeuNumero;
                        detalheGenericoAdd.NomeFavorecido = d.SegmentoJ.NomeCedente;

                        detalheGenericoAdd.DataPagamento           = d.SegmentoJ.DataPagamento.GetValueOrDefault();
                        detalheGenericoAdd.DataEfetivacaoPagamento = detalheGenericoAdd.DataPagamento;
                        detalheGenericoAdd.DataVencimento          = Convert.ToDateTime(d.SegmentoJ.DataVencimento);

                        detalheGenericoAdd.ValorPagamento = d.SegmentoJ.ValorPagamento;
                        detalheGenericoAdd.ValorDocumento = d.SegmentoJ.ValorTitulo;
                        detalheGenericoAdd.ValorRealEfetivacaoPagamento = d.SegmentoJ.ValorPagamento;
                        detalheGenericoAdd.ValorAcrescimos = d.SegmentoJ.ValorAcrescimo;
                        detalheGenericoAdd.ValorDesconto   = d.SegmentoJ.ValorDesconto;

                        var banco      = BancoFactory.ObterBanco(d.SegmentoJ?.CodigoBanco.ToString());
                        var ocorrencia = banco.ObtemCodigoOcorrenciaPagamento(d.SegmentoJ.Ocorrencia.Substring(8, 2));

                        detalheGenericoAdd.CodigoOcorrencia = ocorrencia?.CodigoText.ToString();
                        detalheGenericoAdd.MensagemOcorrenciaRetornoBancario = ocorrencia?.Descricao;
                        detalheGenericoAdd.Ocorrencia = ocorrencia;

                        RegistrosDetalhe.Add(detalheGenericoAdd);
                    }
                    else
                    {
                        detalheGenericoAdd.NossoNumero    = d.SegmentoA.NossoNumero;
                        detalheGenericoAdd.SeuNumero      = d.SegmentoA.SeuNumero;
                        detalheGenericoAdd.NomeFavorecido = d.SegmentoA.NomeFavorecido;

                        detalheGenericoAdd.DataPagamento           = d.SegmentoA.DataPagamento.GetValueOrDefault();
                        detalheGenericoAdd.DataVencimento          = Convert.ToDateTime(d.SegmentoB.DataVencimento);
                        detalheGenericoAdd.DataEfetivacaoPagamento = d.SegmentoA.DataEfetivacaoPagamento.GetValueOrDefault();

                        detalheGenericoAdd.ValorPagamento = d.SegmentoA.ValorPagamento;
                        detalheGenericoAdd.ValorRealEfetivacaoPagamento = d.SegmentoA.ValorRealEfetivacaoPagamento;
                        detalheGenericoAdd.ValorAcrescimos = d.SegmentoB.ValorJurosMora.GetValueOrDefault();
                        detalheGenericoAdd.ValorDesconto   = d.SegmentoB.ValorDesconto.GetValueOrDefault();
                        detalheGenericoAdd.ValorMulta      = d.SegmentoB.ValorMulta.GetValueOrDefault();

                        var banco      = BancoFactory.ObterBanco(d.SegmentoB?.CodigoBanco.ToString());
                        var ocorrencia = banco.ObtemCodigoOcorrenciaPagamento(d.SegmentoA.Ocorrencia.Substring(8, 2));

                        detalheGenericoAdd.CodigoOcorrencia = ocorrencia?.CodigoText.ToString();
                        detalheGenericoAdd.MensagemOcorrenciaRetornoBancario = ocorrencia?.Descricao;
                        detalheGenericoAdd.Ocorrencia = ocorrencia;

                        RegistrosDetalhe.Add(detalheGenericoAdd);
                    }
                }
            }

            Trailer.QtdRegistrosArquivo = retornoCnab240.Trailer.QtdRegistrosArquivo.ToString(CultureInfo.InvariantCulture);
        }
Example #8
0
        public RetornoGenerico(RetornoCnab240 retornoCnab240)
        {
            Inicializa();
            RetornoCnab240Especifico = retornoCnab240;
            /* Transformar de CNAB240 para formato genérico */

            foreach (var loteAtual in retornoCnab240.Lotes)
            {
                foreach (var d in loteAtual.RegistrosDetalheSegmentos)
                {
                    var detalheGenericoAdd = new RetornoDetalheGenerico
                    {
                        NossoNumero     = d.SegmentoT.NossoNumero,
                        Carteira        = d.SegmentoT.CodigoCarteira.ToString(CultureInfo.InvariantCulture),
                        NumeroDocumento = d.SegmentoT.NumeroDocumento
                    };

                    // Segmento T
                    var valorDoc = d.SegmentoT.ValorTitulo;
                    detalheGenericoAdd.ValorDocumento = valorDoc;
                    detalheGenericoAdd.DataVencimento = Convert.ToDateTime(d.SegmentoT.DataVencimento);
                    //detalheGenericoAdd.ValorDocumento = Math.Round(d.SegmentoT.ValorTitulo, 2);
                    //detalheGenericoAdd.ValorTarifaCustas = d.SegmentoT.ValorTarifas / 100;
                    //detalheGenericoAdd.CodigoMovimento = d.SegmentoT.CodigoMovimento.ToString();
                    //detalheGenericoAdd.CodigoOcorrencia = d.SegmentoT.MotivoOcorrencia.ToString();

                    // Segmento U
                    detalheGenericoAdd.DataCredito = d.SegmentoU.DataCredito;
                    //detalheGenericoAdd.DataLiquidacao = Convert.ToDateTime(d.SegmentoU.DataLiquidacao.ToString());
                    //detalheGenericoAdd.DataCredito = Convert.ToDateTime(d.SegmentoU.DataCredito.ToString());

                    #region Valores no detalhe

                    var valorAcres = d.SegmentoU.JurosMultaEncargos;
                    var valorDesc  = d.SegmentoU.ValorDescontoConcedido + d.SegmentoU.ValorAbatimentoConcedido;
                    //var valorPago = d.SegmentoU.ValorPagoPeloSacado;
                    var valorRecebido = d.SegmentoU.ValorLiquidoASerCreditado;

                    detalheGenericoAdd.ValorAcrescimos = valorAcres;
                    detalheGenericoAdd.ValorDesconto   = valorDesc;
                    //detalheGenericoAdd.ValorPago = valorPago;
                    detalheGenericoAdd.ValorRecebido = valorRecebido;

                    #endregion

                    //detalheGenericoAdd.ValorIof = d.SegmentoU.ValorIofRecolhido / 100;
                    //detalheGenericoAdd.ValorOutrasDespesas = d.SegmentoU.ValorOutrasDespesas / 100;
                    //detalheGenericoAdd.ValorOutrosCreditos = d.SegmentoU.ValorOutrosCreditos / 100;
                    var banco      = BancoFactory.ObterBanco(d.SegmentoU?.CodigoBanco.ToString());
                    var ocorrencia = banco.ObtemCodigoOcorrenciaByInt(d.SegmentoU.BoletoBrToBind().CodigoMovimento);
                    if (ocorrencia.Descricao == "ENTRADA REJEITADA")
                    {
                        ocorrencia = new CodigoOcorrencia(ocorrencia.Codigo)
                        {
                            Descricao = $@"{ocorrencia.Descricao}. Motivo: {d.SegmentoT.MotivoOcorrencia}"
                        }
                    }
                    ;
                    detalheGenericoAdd.CodigoOcorrencia = ocorrencia?.Codigo.ToString();
                    detalheGenericoAdd.MensagemOcorrenciaRetornoBancario = ocorrencia?.Descricao;
                    detalheGenericoAdd.Ocorrencia = ocorrencia;
                    //detalheGenericoAdd.CodigoOcorrencia = d.SegmentoU.CodigoOcorrenciaPagador;
                    //detalheGenericoAdd.DataOcorrencia = d.SegmentoU.DataOcorrenciaPagador;
                    //detalheGenericoAdd.ValorOcorrencia = d.SegmentoU.ValorOcorrenciaPagador / 100;
                    //detalheGenericoAdd.DataDebitoTarifaCustas = Convert.ToDateTime(d.SegmentoU.DataDebitoTarifa.ToString());

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

                    RegistrosDetalhe.Add(detalheGenericoAdd);
                }
            }

            Trailer.QtdRegistrosArquivo = retornoCnab240.Trailer.QtdRegistrosArquivo.ToString(CultureInfo.InvariantCulture);
        }