Example #1
0
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400();

            try
            {
                objRetornar.CodigoDoRegistro         = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
                objRetornar.TipoInscricao            = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
                objRetornar.NumeroInscricao          = linha.ExtrairValorDaLinha(4, 17).BoletoBrToLong();
                objRetornar.CodigoAgenciaCedente     = linha.ExtrairValorDaLinha(18, 21).BoletoBrToInt();
                objRetornar.ContaCorrente            = linha.ExtrairValorDaLinha(22, 29);
                objRetornar.ContaCobranca            = linha.ExtrairValorDaLinha(29, 29);
                objRetornar.CodigoDoDocumentoEmpresa = linha.ExtrairValorDaLinha(38, 62);
                objRetornar.NossoNumero = linha.ExtrairValorDaLinha(63, 70);
                // Brancos (71-107)
                objRetornar.CodigoCarteira        = linha.ExtrairValorDaLinha(108, 108);
                objRetornar.CodigoDeOcorrencia    = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
                objRetornar.DataDaOcorrencia      = (DateTime)linha.ExtrairValorDaLinha(111, 116).ToString().ToDateTimeFromDdMmAa();
                objRetornar.NumeroDocumento       = linha.ExtrairValorDaLinha(117, 126);
                objRetornar.NossoNumero           = linha.ExtrairValorDaLinha(127, 134);
                objRetornar.CodigoOriginalRemessa = linha.ExtrairValorDaLinha(135, 136);
                objRetornar.CodigoOcorrencia1     = linha.ExtrairValorDaLinha(137, 139);
                objRetornar.CodigoOcorrencia2     = linha.ExtrairValorDaLinha(140, 142);
                objRetornar.CodigoOcorrencia3     = linha.ExtrairValorDaLinha(143, 145);
                // Brancos (146-146)
                objRetornar.DataDeVencimento     = (DateTime)linha.ExtrairValorDaLinha(147, 152).ToString().ToDateTimeFromDdMmAa();
                objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;
                objRetornar.BancoCobrador        = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
                objRetornar.AgenciaCobradora     = linha.ExtrairValorDaLinha(169, 173).BoletoBrToInt();
                objRetornar.Especie             = linha.ExtrairValorDaLinha(174, 175);
                objRetornar.ValorTarifa         = linha.ExtrairValorDaLinha(176, 188).BoletoBrToDecimal() / 100;
                objRetornar.ValorOutrasDespesas = linha.ExtrairValorDaLinha(189, 201).BoletoBrToDecimal() / 100;
                objRetornar.ValorJurosAtraso    = linha.ExtrairValorDaLinha(202, 214).BoletoBrToDecimal() / 100;
                objRetornar.ValorIof            = linha.ExtrairValorDaLinha(215, 227).BoletoBrToDecimal() / 100;
                objRetornar.ValorAbatimento     = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal() / 100;
                objRetornar.ValorDesconto       = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;
                objRetornar.ValorPrincipal      = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
                // Multa também é considerada
                objRetornar.ValorJurosDeMora    = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
                objRetornar.ValorOutrosCreditos = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal() / 100;
                // Brancos (295-295)
                objRetornar.DataDeCredito                = (DateTime)linha.ExtrairValorDaLinha(296, 301).ToString().ToDateTimeFromDdMmAa();
                objRetornar.NomeSacado                   = linha.ExtrairValorDaLinha(302, 337);
                objRetornar.IdentificadorComplemento     = linha.ExtrairValorDaLinha(338, 338);
                objRetornar.UnidadeValorMoedaCorrente    = linha.ExtrairValorDaLinha(339, 340);
                objRetornar.ValorTituloOutraUnidadeValor = linha.ExtrairValorDaLinha(341, 353).BoletoBrToDecimal() / 100;
                objRetornar.ValorIOCOutraUnidadeValor    = linha.ExtrairValorDaLinha(354, 366).BoletoBrToDecimal() / 100;
                objRetornar.ValorDoDebitoCredito         = linha.ExtrairValorDaLinha(367, 379).BoletoBrToDecimal() / 100;
                objRetornar.IndicativoDebitoCredito      = linha.ExtrairValorDaLinha(380, 380);
                // Brancos (381-391)
                objRetornar.Versao           = linha.ExtrairValorDaLinha(392, 394).BoletoBrToInt();
                objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

                return(objRetornar);
            }
            catch (Exception ex)
            {
                throw new ArgumentException("O arquivo selecionado possui um formato inválido ou não corresponde a conta bancária escolhida", ex);
            }
        }
Example #2
0
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linhaProcessar)
        {
            var objRetornar = new DetalheRetornoCnab400();

            var linha = linhaProcessar;

            objRetornar.CodigoDoRegistro     = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
            objRetornar.CodigoDeInscricao    = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
            objRetornar.CodigoDoBeneficiario = linha.ExtrairValorDaLinha(4, 17).BoletoBrToInt();
            // Posição 18-18 "0"
            objRetornar.CodigoAgenciaCedente = linha.ExtrairValorDaLinha(19, 22).BoletoBrToInt();
            objRetornar.SubConta             = linha.ExtrairValorDaLinha(23, 24).BoletoBrToInt();
            objRetornar.ContaCorrente        = linha.ExtrairValorDaLinha(25, 35);
            // Posição 36-36 Origem do pagamento
            // Posição 37-37 brancos
            objRetornar.SeuNumero   = linha.ExtrairValorDaLinha(38, 62);
            objRetornar.NossoNumero = linha.ExtrairValorDaLinha(63, 73);
            //Data limite para desconto-2 074 079
            //Valor do desconto-2 a conceder 080 090
            //Data limite para desconto-3 091 096
            //Valor do desconto-3 a conceder 097 107
            objRetornar.CodigoCarteira     = linha.ExtrairValorDaLinha(108, 108);
            objRetornar.CodigoDeOcorrencia = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
            objRetornar.DataDaOcorrencia   = (DateTime)linha.ExtrairValorDaLinha(111, 116).ToString().ToDateTimeFromDdMmAa();
            objRetornar.DataDeCredito      = (DateTime)linha.ExtrairValorDaLinha(111, 116).ToString().ToDateTimeFromDdMmAa(); /* Data de ocorrencia a mesma de crédito pois não possui data para crédito */
            objRetornar.NumeroDocumento    = linha.ExtrairValorDaLinha(117, 126).BoletoBrToStringSafe();
            if (objRetornar.NossoNumero.BoletoBrToStringSafe().BoletoBrToInt() == 0)
            {
                objRetornar.NossoNumero = linha.ExtrairValorDaLinha(127, 137); //Número atribuído pelo Banco
            }
            //Uso do Banco 138 146
            if (linha.ExtrairValorDaLinha(147, 152).ToString().ToDateTimeFromDdMmAa() != null)
            {
                objRetornar.DataDeVencimento = (DateTime)linha.ExtrairValorDaLinha(147, 152).ToString().ToDateTimeFromDdMmAa();
            }

            objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;
            objRetornar.BancoCobrador        = linha.ExtrairValorDaLinha(166, 168).BoletoBrToStringSafe().BoletoBrToInt();
            objRetornar.AgenciaCobradora     = linha.ExtrairValorDaLinha(169, 173).BoletoBrToStringSafe().BoletoBrToInt();
            objRetornar.Especie  = linha.ExtrairValorDaLinha(174, 175);
            objRetornar.ValorIof = linha.ExtrairValorDaLinha(176, 186).BoletoBrToDecimal() / 100;
            //Uso do Banco 189 227
            objRetornar.ValorAbatimento      = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal() / 100;
            objRetornar.ValorDesconto        = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;
            objRetornar.ValorLiquidoRecebido = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
            objRetornar.ValorJurosDeMora     = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
            //Uso do Banco 280 301
            //Complemento da Ocorrência 302 303
            //Indicativo de crédito 304 304
            //Uso do Banco 305 388
            //Número sequencial do
            //Aviso de
            //Movimentação
            //da Cobrança 389 393
            //Tipo de moeda 394 394
            objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

            return(objRetornar);
        }
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt()
            };

            if (objRetornar.CodigoDoRegistro == 1)
            {
                objRetornar.CodigoDoRegistro            = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
                objRetornar.TipoInscricao               = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
                objRetornar.NumeroInscricao             = linha.ExtrairValorDaLinha(4, 17).BoletoBrToLong();
                objRetornar.IdentificacaoEmpresaNoBanco = linha.ExtrairValorDaLinha(21, 37);
                objRetornar.NumeroControle              = linha.ExtrairValorDaLinha(38, 62);
                objRetornar.NossoNumero            = linha.ExtrairValorDaLinha(71, 82);
                objRetornar.IndicadorRateioCredito = linha.ExtrairValorDaLinha(105, 105);
                objRetornar.CodigoCarteira         = linha.ExtrairValorDaLinha(108, 108);
                objRetornar.CodigoDeOcorrencia     = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
                objRetornar.DataDaOcorrencia       =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(111, 116).ToDateTimeFromDdMmAa());
                objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(117, 126);
                // 127 a 146 - Identificação do Título no Banco (Nosso Número)
                // Mesmo nosso número informado nas posições 71 a 82 do registro de transação.
                objRetornar.NossoNumero      = linha.ExtrairValorDaLinha(127, 146);
                objRetornar.DataDeVencimento =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(147, 152).ToDateTimeFromDdMmAa());
                objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;
                objRetornar.BancoCobrador        = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
                objRetornar.AgenciaCobradora     = linha.ExtrairValorDaLinha(169, 173).BoletoBrToInt();
                objRetornar.Especie                = linha.ExtrairValorDaLinha(174, 175);
                objRetornar.ValorDespesas          = linha.ExtrairValorDaLinha(176, 188).BoletoBrToDecimal() / 100;
                objRetornar.ValorOutrasDespesas    = linha.ExtrairValorDaLinha(189, 201).BoletoBrToDecimal() / 100;
                objRetornar.ValorJurosAtraso       = linha.ExtrairValorDaLinha(202, 214).BoletoBrToDecimal() / 100;
                objRetornar.ValorIof               = linha.ExtrairValorDaLinha(215, 227).BoletoBrToDecimal() / 100;
                objRetornar.ValorAbatimento        = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal() / 100;
                objRetornar.ValorDesconto          = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;
                objRetornar.ValorLiquidoRecebido   = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
                objRetornar.ValorJurosDeMora       = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
                objRetornar.ValorOutrosCreditos    = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal() / 100;
                objRetornar.MotivoCodigoOcorrencia = linha.ExtrairValorDaLinha(295, 295);
                objRetornar.DataDeCredito          =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(296, 301).ToDateTimeFromDdMmAa());
                objRetornar.OrigemPagamento      = linha.ExtrairValorDaLinha(302, 304).BoletoBrToInt();
                objRetornar.Cheque               = linha.ExtrairValorDaLinha(315, 318);
                objRetornar.MotivoCodigoRejeicao = linha.ExtrairValorDaLinha(319, 328);
                objRetornar.NumeroCartorio       = linha.ExtrairValorDaLinha(369, 370).BoletoBrToInt();
                objRetornar.NumeroProtocolo      = linha.ExtrairValorDaLinha(371, 380);
                objRetornar.NumeroConvenio       = linha.ExtrairValorDaLinha(381, 394).Trim().BoletoBrToInt();
                objRetornar.NumeroSequencial     = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();
            }

            if (objRetornar.CodigoDoRegistro == 3)
            {
                ObterRegistrosDetalheRateio(linha);
            }

            return(objRetornar);
        }
Example #4
0
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400();

            objRetornar.CodigoDoRegistro     = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
            objRetornar.TipoInscricao        = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
            objRetornar.NumeroInscricao      = linha.ExtrairValorDaLinha(4, 17).BoletoBrToLong();
            objRetornar.CodigoAgenciaCedente = linha.ExtrairValorDaLinha(18, 21).BoletoBrToInt();
            // Zeros
            objRetornar.ContaCorrente   = linha.ExtrairValorDaLinha(24, 28);
            objRetornar.DacAgenciaConta = linha.ExtrairValorDaLinha(29, 29).BoletoBrToInt();
            // Brancos
            objRetornar.CodigoDoDocumentoEmpresa = linha.ExtrairValorDaLinha(38, 62);
            objRetornar.CodigoDoDocumentoBanco   = linha.ExtrairValorDaLinha(63, 70);
            // Brancos
            objRetornar.NumeroCarteira = linha.ExtrairValorDaLinha(83, 85).BoletoBrToInt();
            objRetornar.NossoNumero    = linha.ExtrairValorDaLinha(86, 93);
            objRetornar.DacNossoNumero = linha.ExtrairValorDaLinha(94, 94).BoletoBrToInt();
            // Brancos
            objRetornar.CodigoCarteira     = linha.ExtrairValorDaLinha(108, 108);
            objRetornar.CodigoDeOcorrencia = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
            objRetornar.DataDaOcorrencia   = (DateTime)linha.ExtrairValorDaLinha(111, 116).ToString().ToDateTimeFromDdMmAa();
            objRetornar.NumeroDocumento    = linha.ExtrairValorDaLinha(117, 126);
            objRetornar.NossoNumero        = linha.ExtrairValorDaLinha(127, 134);
            // Brancos
            objRetornar.DataDeVencimento     = (DateTime)linha.ExtrairValorDaLinha(147, 152).ToString().ToDateTimeFromDdMmAa();
            objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;
            objRetornar.BancoCobrador        = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
            objRetornar.AgenciaCobradora     = linha.ExtrairValorDaLinha(169, 172).BoletoBrToInt();
            objRetornar.DvAgenciaCobradora   = linha.ExtrairValorDaLinha(173, 173);
            objRetornar.Especie     = linha.ExtrairValorDaLinha(174, 175);
            objRetornar.ValorTarifa = linha.ExtrairValorDaLinha(176, 188).BoletoBrToDecimal() / 100;
            // Brancos
            objRetornar.ValorIof        = linha.ExtrairValorDaLinha(215, 227).BoletoBrToDecimal() / 100;
            objRetornar.ValorAbatimento = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal() / 100;
            objRetornar.ValorDesconto   = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;
            objRetornar.ValorPrincipal  = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
            // Multa também é considerada
            objRetornar.ValorJurosDeMora    = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
            objRetornar.ValorOutrosCreditos = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal() / 100;
            objRetornar.IndicadorBoletoDDA  = linha.ExtrairValorDaLinha(293, 293);
            // Brancos
            objRetornar.DataDeCredito            = linha.ExtrairValorDaLinha(296, 301).ToString().ToDateTimeFromDdMmAa().Equals(null) ? new DateTime(0001, 01, 01) : (DateTime)linha.ExtrairValorDaLinha(296, 301).ToString().ToDateTimeFromDdMmAa();
            objRetornar.CodigoInstrucaoCancelada = linha.ExtrairValorDaLinha(302, 305).BoletoBrToInt();
            // Brancos
            // Zeros
            objRetornar.NomeSacado = linha.ExtrairValorDaLinha(325, 354);
            // Brancos
            objRetornar.MensagemInformativa = linha.ExtrairValorDaLinha(378, 385);
            // Brancos
            objRetornar.CodigoFormaPagamento = linha.ExtrairValorDaLinha(393, 394);
            objRetornar.NumeroSequencial     = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

            return(objRetornar);
        }
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400();

            objRetornar.CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
            objRetornar.TipoInscricao = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
            objRetornar.NumeroInscricao = linha.ExtrairValorDaLinha(4, 17).BoletoBrToLong();
            objRetornar.CodigoAgenciaCedente = linha.ExtrairValorDaLinha(18, 21).BoletoBrToInt();
            // Zeros
            objRetornar.ContaCorrente = linha.ExtrairValorDaLinha(24, 28);
            objRetornar.DacAgenciaConta = linha.ExtrairValorDaLinha(29, 29).BoletoBrToInt();
            // Brancos
            objRetornar.CodigoDoDocumentoEmpresa = linha.ExtrairValorDaLinha(38, 62);
            objRetornar.CodigoDoDocumentoBanco = linha.ExtrairValorDaLinha(63, 70);
            // Brancos
            objRetornar.NumeroCarteira = linha.ExtrairValorDaLinha(83, 85).BoletoBrToInt();
            objRetornar.NossoNumero = linha.ExtrairValorDaLinha(86, 93);
            objRetornar.DacNossoNumero = linha.ExtrairValorDaLinha(94, 94).BoletoBrToInt();
            // Brancos
            objRetornar.CodigoCarteira = linha.ExtrairValorDaLinha(108, 108);
            objRetornar.CodigoDeOcorrencia = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
            objRetornar.DataDaOcorrencia = (DateTime) linha.ExtrairValorDaLinha(111, 116).ToString().ToDateTimeFromDdMmAa();
            objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(117, 126);
            objRetornar.NossoNumero = linha.ExtrairValorDaLinha(127, 134);
            // Brancos
            objRetornar.DataDeVencimento = (DateTime) linha.ExtrairValorDaLinha(147, 152).ToString().ToDateTimeFromDdMmAa();
            objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal()/100;
            objRetornar.BancoCobrador = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
            objRetornar.AgenciaCobradora = linha.ExtrairValorDaLinha(169, 172).BoletoBrToInt();
            objRetornar.DvAgenciaCobradora = linha.ExtrairValorDaLinha(173, 173);
            objRetornar.Especie = linha.ExtrairValorDaLinha(174, 175);
            objRetornar.ValorTarifa = linha.ExtrairValorDaLinha(176, 188).BoletoBrToDecimal()/100;
            // Brancos
            objRetornar.ValorIof = linha.ExtrairValorDaLinha(215, 227).BoletoBrToDecimal()/100;
            objRetornar.ValorAbatimento = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal()/100;
            objRetornar.ValorDesconto = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal()/100;
            objRetornar.ValorPrincipal = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal()/100;
            // Multa também é considerada
            objRetornar.ValorJurosDeMora = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal()/100;
            objRetornar.ValorOutrosCreditos = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal()/100;
            objRetornar.IndicadorBoletoDDA = linha.ExtrairValorDaLinha(293, 293);
            // Brancos
            objRetornar.DataDeCredito = linha.ExtrairValorDaLinha(296, 301).ToString().ToDateTimeFromDdMmAa().Equals(null) ? new DateTime(0001, 01, 01) : (DateTime)linha.ExtrairValorDaLinha(296, 301).ToString().ToDateTimeFromDdMmAa();
            objRetornar.CodigoInstrucaoCancelada = linha.ExtrairValorDaLinha(302, 305).BoletoBrToInt();
            // Brancos
            // Zeros
            objRetornar.NomeSacado = linha.ExtrairValorDaLinha(325, 354);
            // Brancos
            objRetornar.MensagemInformativa = linha.ExtrairValorDaLinha(378, 385);
            // Brancos
            objRetornar.CodigoFormaPagamento = linha.ExtrairValorDaLinha(393, 394);
            objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

            return objRetornar;
        }
Example #6
0
        /// <summary>
        /// Cód. Registro: 2
        /// Registro: DETALHE
        /// Descrição: Tipo de Cobrança Simples Carteira 17
        /// </summary>
        /// <param name="linha"></param>
        /// <returns></returns>
        public DetalheRetornoCnab400 ObterRegistrosDetalheAuxiliarCobrancaPartilhadaCarteira17(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro             = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt(),
                NossoNumero                  = linha.ExtrairValorDaLinha(2, 18),
                BancoParaCredito1            = linha.ExtrairValorDaLinha(19, 21).BoletoBrToInt(),
                CamaraCompensacao1           = linha.ExtrairValorDaLinha(22, 24).BoletoBrToInt(),
                AgenciaParaCredito1          = linha.ExtrairValorDaLinha(25, 28).BoletoBrToInt(),
                DvAgenciaParaCredito1        = linha.ExtrairValorDaLinha(29, 29),
                ContaParaCredito1            = linha.ExtrairValorDaLinha(30, 40).BoletoBrToLong(),
                DvContaParaCredito1          = linha.ExtrairValorDaLinha(41, 41),
                NomeFavorecido1              = linha.ExtrairValorDaLinha(42, 71),
                ValorInformadoPartilha1      = linha.ExtrairValorDaLinha(72, 84).BoletoBrToDecimal() / 100,
                ValorEfetivamentePartilhado1 = linha.ExtrairValorDaLinha(85, 97).BoletoBrToDecimal() / 100,
                BancoParaCredito2            = linha.ExtrairValorDaLinha(98, 100).BoletoBrToInt(),
                CamaraCompensacao2           = linha.ExtrairValorDaLinha(101, 103).BoletoBrToInt(),
                AgenciaParaCredito2          = linha.ExtrairValorDaLinha(104, 107).BoletoBrToInt(),
                DvAgenciaParaCredito2        = linha.ExtrairValorDaLinha(108, 108),
                ContaParaCredito2            = linha.ExtrairValorDaLinha(109, 119).BoletoBrToLong(),
                DvContaParaCredito2          = linha.ExtrairValorDaLinha(120, 120),
                NomeFavorecido2              = linha.ExtrairValorDaLinha(121, 150),
                ValorInformadoPartilha2      = linha.ExtrairValorDaLinha(151, 163).BoletoBrToDecimal() / 100,
                ValorEfetivamentePartilhado2 = linha.ExtrairValorDaLinha(164, 176).BoletoBrToDecimal() / 100,
                BancoParaCredito3            = linha.ExtrairValorDaLinha(177, 179).BoletoBrToInt(),
                CamaraCompensacao3           = linha.ExtrairValorDaLinha(180, 182).BoletoBrToInt(),
                AgenciaParaCredito3          = linha.ExtrairValorDaLinha(183, 186).BoletoBrToInt(),
                DvAgenciaParaCredito3        = linha.ExtrairValorDaLinha(187, 187),
                ContaParaCredito3            = linha.ExtrairValorDaLinha(188, 198).BoletoBrToLong(),
                DvContaParaCredito3          = linha.ExtrairValorDaLinha(199, 199),
                NomeFavorecido3              = linha.ExtrairValorDaLinha(200, 229),
                ValorInformadoPartilha3      = linha.ExtrairValorDaLinha(230, 242).BoletoBrToDecimal() / 100,
                ValorEfetivamentePartilhado3 = linha.ExtrairValorDaLinha(243, 255).BoletoBrToDecimal() / 100,
                BancoParaCredito4            = linha.ExtrairValorDaLinha(256, 258).BoletoBrToInt(),
                CamaraCompensacao4           = linha.ExtrairValorDaLinha(259, 261).BoletoBrToInt(),
                AgenciaParaCredito4          = linha.ExtrairValorDaLinha(262, 265).BoletoBrToInt(),
                DvAgenciaParaCredito4        = linha.ExtrairValorDaLinha(266, 266),
                ContaParaCredito4            = linha.ExtrairValorDaLinha(267, 277).BoletoBrToLong(),
                DvContaParaCredito4          = linha.ExtrairValorDaLinha(278, 278),
                NomeFavorecido4              = linha.ExtrairValorDaLinha(279, 308),
                ValorInformadoPartilha4      = linha.ExtrairValorDaLinha(309, 321).BoletoBrToDecimal() / 100,
                ValorEfetivamentePartilhado4 = linha.ExtrairValorDaLinha(322, 334).BoletoBrToDecimal() / 100,
                TipoInscricaoFavorecido1     = linha.ExtrairValorDaLinha(335, 335).BoletoBrToInt(),
                NumeroInscricaoFavorecido1   = linha.ExtrairValorDaLinha(336, 349).BoletoBrToInt(),
                TipoInscricaoFavorecido2     = linha.ExtrairValorDaLinha(350, 350).BoletoBrToInt(),
                NumeroInscricaoFavorecido2   = linha.ExtrairValorDaLinha(351, 364).BoletoBrToInt(),
                TipoInscricaoFavorecido3     = linha.ExtrairValorDaLinha(365, 365).BoletoBrToInt(),
                NumeroInscricaoFavorecido3   = linha.ExtrairValorDaLinha(366, 379).BoletoBrToInt(),
                TipoInscricaoFavorecido4     = linha.ExtrairValorDaLinha(380, 380).BoletoBrToInt(),
                NumeroInscricaoFavorecido4   = linha.ExtrairValorDaLinha(381, 394).BoletoBrToInt(),
                NumeroSequencial             = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt()
            };

            return(objRetornar);
        }
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400();

            objRetornar.CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
            objRetornar.TipoInscricao = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
            objRetornar.NumeroInscricao = linha.ExtrairValorDaLinha(4, 17).BoletoBrToLong();
            objRetornar.CodigoAgenciaCedente = linha.ExtrairValorDaLinha(18, 21).BoletoBrToInt();
            objRetornar.ContaCorrente = linha.ExtrairValorDaLinha(22, 29);
            objRetornar.ContaCobranca = linha.ExtrairValorDaLinha(29, 29);
            objRetornar.CodigoDoDocumentoEmpresa = linha.ExtrairValorDaLinha(38, 62);
            objRetornar.NossoNumero = linha.ExtrairValorDaLinha(63, 70);
            // Brancos (71-107)
            objRetornar.CodigoCarteira = linha.ExtrairValorDaLinha(108, 108);
            objRetornar.CodigoDeOcorrencia = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
            objRetornar.DataDaOcorrencia = (DateTime)linha.ExtrairValorDaLinha(111, 116).ToString().ToDateTimeFromDdMmAa();
            objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(117, 126);
            objRetornar.NossoNumero = linha.ExtrairValorDaLinha(127, 134);
            objRetornar.CodigoOriginalRemessa = linha.ExtrairValorDaLinha(135, 136);
            objRetornar.CodigoOcorrencia1 = linha.ExtrairValorDaLinha(137, 139);
            objRetornar.CodigoOcorrencia2 = linha.ExtrairValorDaLinha(140, 142);
            objRetornar.CodigoOcorrencia3 = linha.ExtrairValorDaLinha(143, 145);
            // Brancos (146-146)
            objRetornar.DataDeVencimento = (DateTime)linha.ExtrairValorDaLinha(147, 152).ToString().ToDateTimeFromDdMmAa();
            objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal()/100;
            objRetornar.BancoCobrador = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
            objRetornar.AgenciaCobradora = linha.ExtrairValorDaLinha(169, 173).BoletoBrToInt();
            objRetornar.Especie = linha.ExtrairValorDaLinha(174, 175);
            objRetornar.ValorTarifa = linha.ExtrairValorDaLinha(176, 188).BoletoBrToDecimal()/100;
            objRetornar.ValorOutrasDespesas = linha.ExtrairValorDaLinha(189, 201).BoletoBrToDecimal()/100;
            objRetornar.ValorJurosAtraso = linha.ExtrairValorDaLinha(202, 214).BoletoBrToDecimal()/100;
            objRetornar.ValorIof = linha.ExtrairValorDaLinha(215, 227).BoletoBrToDecimal()/100;
            objRetornar.ValorAbatimento = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal()/100;
            objRetornar.ValorDesconto = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal()/100;
            objRetornar.ValorPrincipal = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal()/100;
            // Multa também é considerada
            objRetornar.ValorJurosDeMora = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal()/100;
            objRetornar.ValorOutrosCreditos = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal()/100;
            // Brancos (295-295)
            objRetornar.DataDeCredito = (DateTime)linha.ExtrairValorDaLinha(296, 301).ToString().ToDateTimeFromDdMmAa();
            objRetornar.NomeSacado = linha.ExtrairValorDaLinha(302, 337);
            objRetornar.IdentificadorComplemento = linha.ExtrairValorDaLinha(338, 338);
            objRetornar.UnidadeValorMoedaCorrente = linha.ExtrairValorDaLinha(339, 340);
            objRetornar.ValorTituloOutraUnidadeValor = linha.ExtrairValorDaLinha(341, 353).BoletoBrToDecimal()/100;
            objRetornar.ValorIOCOutraUnidadeValor = linha.ExtrairValorDaLinha(354, 366).BoletoBrToDecimal()/100;
            objRetornar.ValorDoDebitoCredito = linha.ExtrairValorDaLinha(367, 379).BoletoBrToDecimal()/100;
            objRetornar.IndicativoDebitoCredito = linha.ExtrairValorDaLinha(380, 380);
            // Brancos (381-391)
            objRetornar.Versao = linha.ExtrairValorDaLinha(392, 394).BoletoBrToInt();
            objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

            return objRetornar;
        }
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400();

            objRetornar.CodigoDoRegistro     = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
            objRetornar.TipoInscricao        = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
            objRetornar.NumeroInscricao      = linha.ExtrairValorDaLinha(4, 17).BoletoBrToLong();
            objRetornar.CodigoAgenciaCedente = linha.ExtrairValorDaLinha(18, 21).BoletoBrToInt();
            objRetornar.CodigoDoBeneficiario = linha.ExtrairValorDaLinha(22, 30).BoletoBrToInt();

            /*
             * 1 – Cobrança Simples (8050.76)
             * 3 – Cobrança Caucionada (8150.55) Reservado
             * 4 – Cobrança em IGPM (8450.94) *
             * 5 – Cobrança Caucionada CGB Especial (8355.01) Reservado
             * 6 – Cobrança Simples Seguradora (8051.57)
             * 7 – Cobrança em UFIR (8257.86) *
             * 8 – Cobrança em IDTR (8356.84) *
             */
            objRetornar.SeuNumero = linha.ExtrairValorDaLinha(38, 62);
            //objRetornar.NossoNumero = linha.ExtrairValorDaLinha(63, 72);
            //objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(73, 82);
            objRetornar.TipoCobranca       = linha.ExtrairValorDaLinha(108, 108).BoletoBrToInt();
            objRetornar.CodigoDeOcorrencia = linha.ExtrairValorDaLinha(109, 110).BoletoBrToStringSafe().BoletoBrToInt();
            objRetornar.DataDaOcorrencia   = (DateTime)linha.ExtrairValorDaLinha(111, 116).BoletoBrToStringSafe().ToDateTimeFromDdMmAa();

            objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(117, 126);
            objRetornar.NossoNumero     = linha.ExtrairValorDaLinha(127, 134);
            // Brancos
            objRetornar.DataDeVencimento     = linha.ExtrairValorDaLinha(147, 152).BoletoBrToStringSafe().ToDateTimeFromDdMmAa() ?? DateTime.MinValue;
            objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;

            objRetornar.BancoCobrador         = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
            objRetornar.AgenciaCobradora      = linha.ExtrairValorDaLinha(169, 172).BoletoBrToInt();
            objRetornar.DvAgenciaCobradora    = linha.ExtrairValorDaLinha(173, 173);
            objRetornar.Especie               = linha.ExtrairValorDaLinha(174, 175);
            objRetornar.ValorTarifa           = linha.ExtrairValorDaLinha(176, 188).BoletoBrToDecimal() / 100;
            objRetornar.ValorAbatimento       = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal() / 100;
            objRetornar.ValorDesconto         = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;
            objRetornar.ValorPrincipal        = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
            objRetornar.ValorLiquidoRecebido  = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
            objRetornar.ValorLiquidoRecebido += objRetornar.ValorTarifa;
            objRetornar.ValorJurosDeMora      = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
            objRetornar.ValorOutrosCreditos   = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal() / 100;
            objRetornar.DataDeCredito         =
                linha.ExtrairValorDaLinha(296, 301).BoletoBrToStringSafe().ToDateTimeFromDdMmAa().Equals(null)
                    ? new DateTime(0001, 01, 01)
                    : (DateTime)linha.ExtrairValorDaLinha(296, 301).ToString().ToDateTimeFromDdMmAa();
            objRetornar.MotivoDaOcorrencia = linha.ExtrairValorDaLinha(383, 392).BoletoBrToInt();
            objRetornar.NumeroSequencial   = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

            return(objRetornar);
        }
Example #9
0
        /// <summary>
        /// Cód. Registro: 5
        /// Registro: DETALHE
        /// Descrição: Bloqueto por e-mail
        /// </summary>
        /// <param name="linha"></param>
        /// <returns></returns>
        public DetalheRetornoCnab400 ObterRegistrosDetalheBloquetoEmail(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt(),
                CodigoDoServico  = linha.ExtrairValorDaLinha(2, 3),
                EnderecosEmail   = linha.ExtrairValorDaLinha(6, 142),
                NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt()
            };

            return(objRetornar);
        }
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt()
            };

            if (objRetornar.CodigoDoRegistro == 1)
            {
                objRetornar.CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
                objRetornar.TipoInscricao = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
                objRetornar.NumeroInscricao = linha.ExtrairValorDaLinha(4, 17).BoletoBrToLong();
                objRetornar.IdentificacaoEmpresaNoBanco = linha.ExtrairValorDaLinha(21, 37);
                objRetornar.NumeroControle = linha.ExtrairValorDaLinha(38, 62);
                objRetornar.NossoNumero = linha.ExtrairValorDaLinha(71, 82);
                objRetornar.IndicadorRateioCredito = linha.ExtrairValorDaLinha(105, 105);
                objRetornar.CodigoCarteira = linha.ExtrairValorDaLinha(108, 108);
                objRetornar.CodigoDeOcorrencia = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
                objRetornar.DataDaOcorrencia = Convert.ToDateTime(linha.ExtrairValorDaLinha(111, 116).ToDateTimeFromDdMmAa());
                objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(117, 126);
                // 127 a 146 - Identificação do Título no Banco (Nosso Número)
                // Mesmo nosso número informado nas posições 71 a 82 do registro de transação.
                objRetornar.NossoNumero = linha.ExtrairValorDaLinha(127, 146);
                objRetornar.DataDeVencimento = Convert.ToDateTime(linha.ExtrairValorDaLinha(147, 152).ToDateTimeFromDdMmAa());
                objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal()/100;
                objRetornar.BancoCobrador = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
                objRetornar.AgenciaCobradora = linha.ExtrairValorDaLinha(169, 173).BoletoBrToInt();
                objRetornar.Especie = linha.ExtrairValorDaLinha(174, 175);
                objRetornar.ValorDespesas = linha.ExtrairValorDaLinha(176, 188).BoletoBrToDecimal()/100;
                objRetornar.ValorOutrasDespesas = linha.ExtrairValorDaLinha(189, 201).BoletoBrToDecimal()/100;
                objRetornar.ValorJurosAtraso = linha.ExtrairValorDaLinha(202, 214).BoletoBrToDecimal()/100;
                objRetornar.ValorIof = linha.ExtrairValorDaLinha(215, 227).BoletoBrToDecimal()/100;
                objRetornar.ValorAbatimento = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal()/100;
                objRetornar.ValorDesconto = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal()/100;
                objRetornar.ValorLiquidoRecebido = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal()/100;
                objRetornar.ValorJurosDeMora = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal()/100;
                objRetornar.ValorOutrosCreditos = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal()/100;
                objRetornar.MotivoCodigoOcorrencia = linha.ExtrairValorDaLinha(295, 295);
                objRetornar.DataDeCredito = Convert.ToDateTime(linha.ExtrairValorDaLinha(296, 301).ToDateTimeFromDdMmAa());
                objRetornar.OrigemPagamento = linha.ExtrairValorDaLinha(302, 304).BoletoBrToInt();
                objRetornar.Cheque = linha.ExtrairValorDaLinha(315, 318);
                objRetornar.MotivoCodigoRejeicao = linha.ExtrairValorDaLinha(319, 328);
                objRetornar.NumeroCartorio = linha.ExtrairValorDaLinha(369, 370).BoletoBrToInt();
                objRetornar.NumeroProtocolo = linha.ExtrairValorDaLinha(371, 380);
                objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();
            }

            if (objRetornar.CodigoDoRegistro == 3)
                ObterRegistrosDetalheRateio(linha);

            return objRetornar;
        }
Example #11
0
        /// <summary>
        /// Cód. Registro: 5
        /// Registro: DETALHE
        /// Descrição: Número do título do cedente com 15 posições
        /// </summary>
        /// <param name="linha"></param>
        /// <returns></returns>
        public DetalheRetornoCnab400 ObterRegistrosDetalheDadosTitulo(string linha)
        {
            // Registro Opcional
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro    = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt(),
                CodigoDoServico     = linha.ExtrairValorDaLinha(2, 3),
                NumeroTituloCedente = linha.ExtrairValorDaLinha(6, 20),
                NumeroSequencial    = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt()
            };

            return(objRetornar);
        }
Example #12
0
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linhaProcessar)
        {
            var objRetornar = new DetalheRetornoCnab400();

            var linha = linhaProcessar;

            objRetornar.CodigoDoRegistro     = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
            objRetornar.CodigoDeInscricao    = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
            objRetornar.CodigoDoBeneficiario = linha.ExtrairValorDaLinha(4, 17).BoletoBrToInt();
            objRetornar.CodigoAgenciaCedente = linha.ExtrairValorDaLinha(18, 22).BoletoBrToInt();
            objRetornar.SubConta             = linha.ExtrairValorDaLinha(23, 24).BoletoBrToInt();
            objRetornar.ContaCorrente        = linha.ExtrairValorDaLinha(25, 35);
            // Posição 36-37 brancos
            objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(38, 53); // Alterado de 'objRetornar.CodigoDoDocumentoEmpresa' para NumeroDocumento
            // Posição 54 branco
            objRetornar.CodigoDePostagem = linha.ExtrairValorDaLinha(55, 55).BoletoBrToInt();
            // Posição 56-62 brancos
            objRetornar.NossoNumero = linha.ExtrairValorDaLinha(63, 78); // Alterado de 'objRetornar.CodigoDoDocumentoBanco' para NossoNumero
            // Posição 79-82 brancos
            objRetornar.DataDeCredito = (DateTime)linha.ExtrairValorDaLinha(83, 88).ToString().ToDateTimeFromDdMmAa();
            objRetornar.Moeda         = linha.ExtrairValorDaLinha(89, 89).BoletoBrToInt();
            // Posição 90-107 brancos
            objRetornar.CodigoCarteira     = linha.ExtrairValorDaLinha(108, 108);
            objRetornar.CodigoDeOcorrencia = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
            objRetornar.DataDaOcorrencia   = (DateTime)linha.ExtrairValorDaLinha(111, 116).ToString().ToDateTimeFromDdMmAa();
            objRetornar.SeuNumero          = linha.ExtrairValorDaLinha(117, 122).BoletoBrToStringSafe();
            objRetornar.MotivoDaOcorrencia = linha.ExtrairValorDaLinha(123, 131).BoletoBrToInt();
            // Posição 132-146 brancos
            objRetornar.DataDeVencimento     = (DateTime)linha.ExtrairValorDaLinha(147, 152).ToString().ToDateTimeFromDdMmAa();
            objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;
            objRetornar.BancoCobrador        = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
            objRetornar.AgenciaCobradora     = linha.ExtrairValorDaLinha(169, 173).BoletoBrToInt();
            objRetornar.Especie  = linha.ExtrairValorDaLinha(174, 175);
            objRetornar.ValorIof = linha.ExtrairValorDaLinha(176, 186).BoletoBrToDecimal() / 100;
            // Posição 187-240 brancos
            objRetornar.ValorDesconto                = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;
            objRetornar.ValorLiquidoRecebido         = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
            objRetornar.ValorJurosDeMora             = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
            objRetornar.Constante                    = linha.ExtrairValorDaLinha(280, 280).BoletoBrToInt();
            objRetornar.QuantidadeMoeda              = linha.ExtrairValorDaLinha(281, 293).BoletoBrToInt();
            objRetornar.CotacaoMoeda                 = linha.ExtrairValorDaLinha(294, 308).BoletoBrToDecimal() / 100;
            objRetornar.StatusDaParcela              = linha.ExtrairValorDaLinha(309, 309).BoletoBrToInt();
            objRetornar.IdentificadorLancamentoConta = linha.ExtrairValorDaLinha(310, 315).BoletoBrToInt();
            // Posição 316-341 brancos
            objRetornar.TipoLiquidacao = linha.ExtrairValorDaLinha(342, 342).BoletoBrToInt();
            objRetornar.OrigemDaTarifa = linha.ExtrairValorDaLinha(343, 343).BoletoBrToInt();
            // Posição 344-394 brancos
            objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

            return(objRetornar);
        }
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            try
            {
                var objRetornar = new DetalheRetornoCnab400();

                objRetornar.CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
                objRetornar.TipoInscricao    = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
                objRetornar.NumeroInscricao  = linha.ExtrairValorDaLinha(4, 17).BoletoBrToLong();
                objRetornar.NossoNumero      = linha.ExtrairValorDaLinha(63, 70);
                //objRetornar.MotivoDaOcorrencia = linha.ExtrairValorDaLinha(103, 104).BoletoBrToInt();
                //objRetornar.MotivoCodigoRejeicao = linha.ExtrairValorDaLinha(105, 107);
                objRetornar.NumeroCarteira     = linha.ExtrairValorDaLinha(83, 85).BoletoBrToInt();
                objRetornar.NossoNumero        = linha.ExtrairValorDaLinha(86, 94);
                objRetornar.NumeroDocumento    = linha.ExtrairValorDaLinha(95, 107);
                objRetornar.CodigoCarteira     = linha.ExtrairValorDaLinha(108, 108);
                objRetornar.CodigoDeOcorrencia = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
                objRetornar.DataDaOcorrencia   =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(111, 116).ToDateTimeFromDdMmAa());
                objRetornar.DataLiquidacao =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(111, 116).ToDateTimeFromDdMmAa());
                objRetornar.SeuNumero = linha.ExtrairValorDaLinha(117, 126);
                if (objRetornar.NumeroDocumento.BoletoBrToStringSafe().Trim().Length == 0)
                {
                    objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(117, 126);
                }

                objRetornar.NossoNumero      = linha.ExtrairValorDaLinha(127, 134);
                objRetornar.DataDeVencimento =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(147, 152).ToDateTimeFromDdMmAa());
                objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;
                objRetornar.BancoCobrador        = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
                objRetornar.AgenciaCobradora     = linha.ExtrairValorDaLinha(169, 172).BoletoBrToInt();
                objRetornar.DvAgenciaCobradora   = linha.ExtrairValorDaLinha(173, 173);
                objRetornar.Especie              = linha.ExtrairValorDaLinha(174, 175);
                objRetornar.ValorTarifa          = linha.ExtrairValorDaLinha(176, 188).BoletoBrToDecimal() / 100;
                objRetornar.ValorIof             = linha.ExtrairValorDaLinha(215, 227).BoletoBrToDecimal() / 100;
                objRetornar.ValorAbatimento      = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal() / 100;
                objRetornar.ValorDesconto        = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;
                objRetornar.ValorLiquidoRecebido = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
                objRetornar.ValorJurosDeMora     = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
                objRetornar.Moeda            = linha.ExtrairValorDaLinha(377, 377).BoletoBrToInt();
                objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

                return(objRetornar);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linhaProcessar)
        {
            var objRetornar = new DetalheRetornoCnab400();

            var linha = linhaProcessar;

            objRetornar.CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
            objRetornar.CodigoDeInscricao = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
            objRetornar.CodigoDoBeneficiario = linha.ExtrairValorDaLinha(4, 17).BoletoBrToInt();
            objRetornar.CodigoAgenciaCedente = linha.ExtrairValorDaLinha(18, 22).BoletoBrToInt();
            objRetornar.SubConta = linha.ExtrairValorDaLinha(23, 24).BoletoBrToInt();
            objRetornar.ContaCorrente = linha.ExtrairValorDaLinha(25, 35);
            // Posição 36-37 brancos
            objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(38, 53); // Alterado de 'objRetornar.CodigoDoDocumentoEmpresa' para NumeroDocumento
            // Posição 54 branco
            objRetornar.CodigoDePostagem = linha.ExtrairValorDaLinha(55, 55).BoletoBrToInt();
            // Posição 56-62 brancos
            objRetornar.NossoNumero = linha.ExtrairValorDaLinha(63, 78); // Alterado de 'objRetornar.CodigoDoDocumentoBanco' para NossoNumero
            // Posição 79-82 brancos
            objRetornar.DataDeCredito = (DateTime) linha.ExtrairValorDaLinha(83, 88).ToString().ToDateTimeFromDdMmAa();
            objRetornar.Moeda = linha.ExtrairValorDaLinha(89, 89).BoletoBrToInt();
            // Posição 90-107 brancos
            objRetornar.CodigoCarteira = linha.ExtrairValorDaLinha(108, 108);
            objRetornar.CodigoDeOcorrencia = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
            objRetornar.DataDaOcorrencia = (DateTime) linha.ExtrairValorDaLinha(111, 116).ToString().ToDateTimeFromDdMmAa();
            objRetornar.SeuNumero = linha.ExtrairValorDaLinha(117, 122).BoletoBrToStringSafe();
            objRetornar.MotivoDaOcorrencia = linha.ExtrairValorDaLinha(123, 131).BoletoBrToInt();
            // Posição 132-146 brancos
            objRetornar.DataDeVencimento = (DateTime) linha.ExtrairValorDaLinha(147, 152).ToString().ToDateTimeFromDdMmAa();
            objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;
            objRetornar.BancoCobrador = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
            objRetornar.AgenciaCobradora = linha.ExtrairValorDaLinha(169, 173).BoletoBrToInt();
            objRetornar.Especie = linha.ExtrairValorDaLinha(174, 175);
            objRetornar.ValorIof = linha.ExtrairValorDaLinha(176, 186).BoletoBrToDecimal() / 100;
            // Posição 187-240 brancos
            objRetornar.ValorDesconto = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;
            objRetornar.ValorLiquidoRecebido = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
            objRetornar.ValorJurosDeMora = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
            objRetornar.Constante = linha.ExtrairValorDaLinha(280, 280).BoletoBrToInt();
            objRetornar.QuantidadeMoeda = linha.ExtrairValorDaLinha(281, 293).BoletoBrToInt();
            objRetornar.CotacaoMoeda = linha.ExtrairValorDaLinha(294, 308).BoletoBrToDecimal() / 100;
            objRetornar.StatusDaParcela = linha.ExtrairValorDaLinha(309, 309).BoletoBrToInt();
            objRetornar.IdentificadorLancamentoConta = linha.ExtrairValorDaLinha(310, 315).BoletoBrToInt();
            // Posição 316-341 brancos
            objRetornar.TipoLiquidacao = linha.ExtrairValorDaLinha(342, 342).BoletoBrToInt();
            objRetornar.OrigemDaTarifa = linha.ExtrairValorDaLinha(343, 343).BoletoBrToInt();
            // Posição 344-394 brancos
            objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

            return objRetornar;
        }
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            try
            {
                var objRetornar = new DetalheRetornoCnab400();

                objRetornar.CodigoDoRegistro            = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
                objRetornar.TipoInscricao               = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
                objRetornar.NumeroInscricao             = linha.ExtrairValorDaLinha(4, 17).BoletoBrToLong();
                objRetornar.IdentificacaoEmpresaNoBanco = linha.ExtrairValorDaLinha(18, 31);
                objRetornar.NossoNumero          = linha.ExtrairValorDaLinha(63, 71);
                objRetornar.MotivoDaOcorrencia   = linha.ExtrairValorDaLinha(103, 104).BoletoBrToInt();
                objRetornar.MotivoCodigoRejeicao = linha.ExtrairValorDaLinha(105, 107);
                objRetornar.CodigoCarteira       = linha.ExtrairValorDaLinha(108, 108);
                objRetornar.CodigoDeOcorrencia   = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
                objRetornar.DataDaOcorrencia     =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(111, 116).ToDateTimeFromDdMmAa());
                objRetornar.NumeroDocumento  = linha.ExtrairValorDaLinha(117, 126);
                objRetornar.NossoNumero      = linha.ExtrairValorDaLinha(127, 135);
                objRetornar.DataDeVencimento =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(147, 152).ToDateTimeFromDdMmAa());
                objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;
                objRetornar.BancoCobrador        = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
                objRetornar.AgenciaCobradora     = linha.ExtrairValorDaLinha(169, 173).BoletoBrToInt();
                objRetornar.Especie              = linha.ExtrairValorDaLinha(174, 175);
                objRetornar.ValorTarifa          = linha.ExtrairValorDaLinha(176, 188).BoletoBrToDecimal() / 100;
                objRetornar.ValorOutrasDespesas  = linha.ExtrairValorDaLinha(189, 201).BoletoBrToDecimal() / 100;
                objRetornar.ValorIof             = linha.ExtrairValorDaLinha(215, 227).BoletoBrToDecimal() / 100;
                objRetornar.ValorAbatimento      = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal() / 100;
                objRetornar.ValorDesconto        = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;
                objRetornar.ValorLiquidoRecebido = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
                objRetornar.ValorJurosDeMora     = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
                objRetornar.ValorOutrosCreditos  = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal() / 100;
                objRetornar.Moeda         = linha.ExtrairValorDaLinha(293, 295).BoletoBrToInt();
                objRetornar.DataDeCredito =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(296, 301).ToDateTimeFromDdMmAa());
                objRetornar.CodigoDoBeneficiario = linha.ExtrairValorDaLinha(308, 321).BoletoBrToInt();
                objRetornar.IndicadorBoletoDDA   = linha.ExtrairValorDaLinha(322, 322);
                objRetornar.OrigemPagamento      = linha.ExtrairValorDaLinha(323, 324).BoletoBrToInt();
                objRetornar.SeuNumero            = linha.ExtrairValorDaLinha(377, 391);
                objRetornar.NumeroSequencial     = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

                return(objRetornar);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linhaProcessar)
        {
            var objRetornar = new DetalheRetornoCnab400();

            var linha = linhaProcessar;

            objRetornar.CodigoDoRegistro     = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
            objRetornar.CodigoDeInscricao    = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
            objRetornar.CodigoDoBeneficiario = linha.ExtrairValorDaLinha(4, 17).BoletoBrToInt();
            objRetornar.CodigoAgenciaCedente = linha.ExtrairValorDaLinha(18, 21).BoletoBrToInt();
            objRetornar.CodigoDoBeneficiario = linha.ExtrairValorDaLinha(22, 27).BoletoBrToInt();
            objRetornar.IdEmissao            = linha.ExtrairValorDaLinha(28, 28).BoletoBrToInt();
            objRetornar.IdPostagem           = linha.ExtrairValorDaLinha(29, 29).BoletoBrToInt();
            // Uso Exclusivo CAIXA (30 - 31)
            objRetornar.UsoDaEmpresa          = linha.ExtrairValorDaLinha(32, 56);
            objRetornar.ModalidadeNossoNumero = linha.ExtrairValorDaLinha(57, 58).BoletoBrToInt();
            objRetornar.NossoNumero           = linha.ExtrairValorDaLinha(59, 73);
            objRetornar.CodigoRejeicao        = linha.ExtrairValorDaLinha(80, 82).BoletoBrToInt();
            objRetornar.CodigoCarteira        = linha.ExtrairValorDaLinha(107, 108);
            objRetornar.CodigoDeOcorrencia    = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
            objRetornar.DataDaOcorrencia      = (DateTime)linha.ExtrairValorDaLinha(111, 116).ToString().ToDateTimeFromDdMmAa();
            objRetornar.NumeroDocumento       = linha.ExtrairValorDaLinha(117, 126);
            // Uso Exclusivo CAIXA (127 - 146)
            objRetornar.DataDeVencimento     = (DateTime)linha.ExtrairValorDaLinha(147, 152).ToString().ToDateTimeFromDdMmAa();
            objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;
            objRetornar.BancoCobrador        = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
            objRetornar.AgenciaCobradora     = linha.ExtrairValorDaLinha(169, 173).BoletoBrToInt();
            objRetornar.Especie              = linha.ExtrairValorDaLinha(174, 175);
            objRetornar.ValorTarifa          = linha.ExtrairValorDaLinha(176, 188).BoletoBrToDecimal() / 100;
            objRetornar.CodigoBaixaTitulo    = linha.ExtrairValorDaLinha(189, 191).BoletoBrToInt();
            objRetornar.CodigoFormaPagamento = linha.ExtrairValorDaLinha(192, 192);
            objRetornar.FloatNegociado       = linha.ExtrairValorDaLinha(193, 194).BoletoBrToInt();
            objRetornar.DataDebitoTarifa     = (DateTime)linha.ExtrairValorDaLinha(195, 200).ToString().ToDateTimeFromDdMmAa();
            // Uso Exclusivo CAIXA (201 - 214)
            objRetornar.ValorIof         = linha.ExtrairValorDaLinha(215, 227).BoletoBrToDecimal() / 100;
            objRetornar.ValorAbatimento  = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal() / 100;
            objRetornar.ValorDesconto    = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;
            objRetornar.ValorPrincipal   = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
            objRetornar.ValorJurosDeMora = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
            objRetornar.ValorMulta       = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal() / 100;
            objRetornar.Moeda            = linha.ExtrairValorDaLinha(293, 293).BoletoBrToInt();
            objRetornar.DataDeCredito    = (DateTime)linha.ExtrairValorDaLinha(294, 299).ToString().ToDateTimeFromDdMmAa();
            // Uso Exclusivo CAIXA (300 - 394)
            objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

            return(objRetornar);
        }
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linhaProcessar)
        {
            var objRetornar = new DetalheRetornoCnab400();

            var linha = linhaProcessar;

            objRetornar.CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
            objRetornar.CodigoDeInscricao = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
            objRetornar.CodigoDoBeneficiario = linha.ExtrairValorDaLinha(4, 17).BoletoBrToInt();
            objRetornar.CodigoAgenciaCedente = linha.ExtrairValorDaLinha(18, 21).BoletoBrToInt();
            objRetornar.CodigoDoBeneficiario = linha.ExtrairValorDaLinha(22, 27).BoletoBrToInt();
            objRetornar.IdEmissao = linha.ExtrairValorDaLinha(28, 28).BoletoBrToInt();
            objRetornar.IdPostagem = linha.ExtrairValorDaLinha(29, 29).BoletoBrToInt();
            // Uso Exclusivo CAIXA (30 - 31)
            objRetornar.UsoDaEmpresa = linha.ExtrairValorDaLinha(32, 56);
            objRetornar.ModalidadeNossoNumero = linha.ExtrairValorDaLinha(57, 58).BoletoBrToInt();
            objRetornar.NossoNumero = linha.ExtrairValorDaLinha(59, 73);
            objRetornar.CodigoRejeicao = linha.ExtrairValorDaLinha(80, 82).BoletoBrToInt();
            objRetornar.CodigoCarteira = linha.ExtrairValorDaLinha(107, 108);
            objRetornar.CodigoDeOcorrencia = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
            objRetornar.DataDaOcorrencia = (DateTime) linha.ExtrairValorDaLinha(111, 116).ToString().ToDateTimeFromDdMmAa();
            objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(117, 126);
            // Uso Exclusivo CAIXA (127 - 146)
            objRetornar.DataDeVencimento = (DateTime) linha.ExtrairValorDaLinha(147, 152).ToString().ToDateTimeFromDdMmAa();
            objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal()/100;
            objRetornar.BancoCobrador = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
            objRetornar.AgenciaCobradora = linha.ExtrairValorDaLinha(169, 173).BoletoBrToInt();
            objRetornar.Especie = linha.ExtrairValorDaLinha(174, 175);
            objRetornar.ValorTarifa = linha.ExtrairValorDaLinha(176, 188).BoletoBrToDecimal()/100;
            objRetornar.CodigoBaixaTitulo = linha.ExtrairValorDaLinha(189, 191).BoletoBrToInt();
            objRetornar.CodigoFormaPagamento = linha.ExtrairValorDaLinha(192, 192);
            objRetornar.FloatNegociado = linha.ExtrairValorDaLinha(193, 194).BoletoBrToInt();
            objRetornar.DataDebitoTarifa = (DateTime) linha.ExtrairValorDaLinha(195, 200).ToString().ToDateTimeFromDdMmAa();
            // Uso Exclusivo CAIXA (201 - 214)
            objRetornar.ValorIof = linha.ExtrairValorDaLinha(215, 227).BoletoBrToDecimal()/100;
            objRetornar.ValorAbatimento = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal()/100;
            objRetornar.ValorDesconto = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal()/100;
            objRetornar.ValorPrincipal = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal()/100;
            objRetornar.ValorJurosDeMora = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal()/100;
            objRetornar.ValorMulta = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal()/100;
            objRetornar.Moeda = linha.ExtrairValorDaLinha(293, 293).BoletoBrToInt();
            objRetornar.DataDeCredito = (DateTime) linha.ExtrairValorDaLinha(294, 299).ToString().ToDateTimeFromDdMmAa();
            // Uso Exclusivo CAIXA (300 - 394)
            objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

            return objRetornar;
        }
Example #18
0
        /// <summary>
        /// Cód. Registro: 5
        /// Registro: DETALHE
        /// Descrição: Dados do cheque utilizado para liquidação de título
        /// </summary>
        /// <param name="linha"></param>
        /// <returns></returns>
        public DetalheRetornoCnab400 ObterRegistrosDetalheDadosCheque(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro      = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt(),
                CodigoDoServico       = linha.ExtrairValorDaLinha(2, 3),
                NossoNumero17Posicoes = linha.ExtrairValorDaLinha(6, 22),
                DataPagamento         = linha.ExtrairValorDaLinha(23, 30).BoletoBrToInt(),
                ValorCheque           = linha.ExtrairValorDaLinha(45, 59).BoletoBrToDecimal() / 100,
                PrazoBloqueioCheque   = linha.ExtrairValorDaLinha(60, 62).BoletoBrToInt(),
                MotivoDevolucaoCheque = linha.ExtrairValorDaLinha(66, 68).BoletoBrToInt(),
                TrilhaDoCheque        = linha.ExtrairValorDaLinha(70, 103),
                TipoCaptura           = linha.ExtrairValorDaLinha(104, 104),
                NumeroSequencial      = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt()
            };

            return(objRetornar);
        }
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400();

            objRetornar.CodigoDoRegistro  = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
            objRetornar.CodigoDeInscricao = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
            objRetornar.NumeroInscricao   = linha.ExtrairValorDaLinha(4, 17).BoletoBrToInt();
            // Brancos
            objRetornar.AgenciaCobradora     = linha.ExtrairValorDaLinha(18, 21).BoletoBrToInt();
            objRetornar.DvAgenciaCobradora   = linha.ExtrairValorDaLinha(22, 22);
            objRetornar.ContaCorrente        = linha.ExtrairValorDaLinha(23, 30);
            objRetornar.DvContaCorrente      = linha.ExtrairValorDaLinha(31, 31);
            objRetornar.CodigoDoBeneficiario = linha.ExtrairValorDaLinha(32, 45).BoletoBrToInt();
            objRetornar.NossoNumero          = linha.ExtrairValorDaLinha(46, 62);

            // Brancos
            objRetornar.CodigoMovimento = linha.ExtrairValorDaLinha(109, 110).ToString();
            objRetornar.DataLiquidacao  = (DateTime)linha.ExtrairValorDaLinha(111, 116).ToString().ToDateTimeFromDdMmAa();

            // Brancos
            objRetornar.DataDeVencimento     = linha.ExtrairValorDaLinha(147, 152).BoletoBrToStringSafe().ToDateTimeFromDdMmAa() ?? DateTime.MinValue;
            objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;
            // Brancos
            objRetornar.DataPrevistaLancamentoConta = linha.ExtrairValorDaLinha(176, 181).BoletoBrToStringSafe().ToDateTimeFromDdMmAa();
            objRetornar.ValorTarifa = linha.ExtrairValorDaLinha(182, 188).BoletoBrToDecimal() / 100; /*Despesas de cobrança*/
            // Brancos
            objRetornar.ValorAbatimento  = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal() / 100;
            objRetornar.ValorDesconto    = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;
            objRetornar.ValorPrincipal   = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
            objRetornar.ValorJurosDeMora = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
            objRetornar.SeuNumero        = linha.ExtrairValorDaLinha(280, 305);
            // Brancos
            objRetornar.ValorLiquidoRecebido = linha.ExtrairValorDaLinha(306, 318).BoletoBrToDecimal() / 100;

            // Brancos
            objRetornar.ComplementoMovimento = linha.ExtrairValorDaLinha(319, 326);
            objRetornar.CodigoDeOcorrencia   = linha.ExtrairValorDaLinha(327, 328).BoletoBrToInt();
            // Brancos
            objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

            return(objRetornar);
        }
Example #20
0
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400();

            objRetornar.CodigoDoRegistro    = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
            objRetornar.TipoCarteiraSicredi = linha.ExtrairValorDaLinha(2, 2);
            // Brancos
            objRetornar.TipoCobrancaSicredi          = linha.ExtrairValorDaLinha(14, 14);
            objRetornar.CodigoDoPagadorNaCooperativa = linha.ExtrairValorDaLinha(15, 19);
            objRetornar.CodigoDoPagadorNoAssociado   = linha.ExtrairValorDaLinha(20, 24);
            objRetornar.IndicadorBoletoDDA           = linha.ExtrairValorDaLinha(25, 25);
            // Brancos
            objRetornar.NossoNumero = linha.ExtrairValorDaLinha(48, 62);
            // Brancos
            objRetornar.CodigoDeOcorrencia     = linha.ExtrairValorDaLinha(109, 110).ToString().BoletoBrToInt();
            objRetornar.MotivoCodigoOcorrencia = linha.ExtrairValorDaLinha(109, 110).ToString();
            objRetornar.DataDaOcorrencia       = (DateTime)linha.ExtrairValorDaLinha(111, 116).ToString().ToDateTimeFromDdMmAa();
            objRetornar.SeuNumero = linha.ExtrairValorDaLinha(117, 126);
            // Brancos
            objRetornar.DataDeVencimento     = linha.ExtrairValorDaLinha(147, 152).BoletoBrToStringSafe().ToDateTimeFromDdMmAa() ?? DateTime.MinValue;
            objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;
            // Brancos
            objRetornar.Especie             = linha.ExtrairValorDaLinha(175, 175);
            objRetornar.ValorDespesas       = linha.ExtrairValorDaLinha(176, 188).BoletoBrToDecimal() / 100; /*Despesas de cobrança*/
            objRetornar.ValorOutrasDespesas = linha.ExtrairValorDaLinha(189, 201).BoletoBrToDecimal() / 100; /* Despesas de custas de protesto*/
            // Brancos
            objRetornar.ValorAbatimento      = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal() / 100;
            objRetornar.ValorDesconto        = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;
            objRetornar.ValorLiquidoRecebido = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
            objRetornar.ValorJurosDeMora     = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
            objRetornar.ValorMulta           = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal() / 100;
            // Brancos
            objRetornar.CodigoOcorrencia1 = linha.ExtrairValorDaLinha(295, 295);
            // Brancos
            objRetornar.MotivoDaOcorrencia          = linha.ExtrairValorDaLinha(319, 328).BoletoBrToInt();
            objRetornar.DataPrevistaLancamentoConta = linha.ExtrairValorDaLinha(329, 336).BoletoBrToStringSafe().ToDateTimeFromAaaaMmDd();
            objRetornar.DataDeCredito = objRetornar.DataPrevistaLancamentoConta.GetValueOrDefault();
            // Brancos
            objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

            return(objRetornar);
        }
Example #21
0
        /// <summary>
        /// Cód. Registro: 3
        /// Registro: DETALHE
        /// Descrição: Tipo de Cobrança Vendor
        /// </summary>
        /// <param name="linha"></param>
        /// <returns></returns>
        public DetalheRetornoCnab400 ObterRegistrosDetalheCobrancaVendor(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro               = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt(),
                NossoNumero                    = linha.ExtrairValorDaLinha(2, 12),
                DvNossoNumero                  = linha.ExtrairValorDaLinha(13, 13),
                NumeroOperacaoBBVendor         = linha.ExtrairValorDaLinha(14, 22).BoletoBrToLong(),
                DataOperacaoBBVendor           = Convert.ToDateTime(linha.ExtrairValorDaLinha(23, 30).ToDateTimeFromDdMmAa()),
                TaxaJurosVendedor              = linha.ExtrairValorDaLinha(31, 35).BoletoBrToInt() / 1000,
                TaxaJurosComprador             = linha.ExtrairValorDaLinha(36, 40).BoletoBrToInt() / 1000,
                ValorTituloVencimento          = linha.ExtrairValorDaLinha(41, 55).BoletoBrToDecimal() / 100,
                ValorOriginal                  = linha.ExtrairValorDaLinha(56, 70).BoletoBrToDecimal() / 100,
                ValorEncargosComprador         = linha.ExtrairValorDaLinha(71, 85).BoletoBrToDecimal() / 100,
                ValorIofFinanciado             = linha.ExtrairValorDaLinha(86, 100).BoletoBrToDecimal() / 100,
                ValorAcumuladoAbatimento       = linha.ExtrairValorDaLinha(101, 115).BoletoBrToDecimal() / 100,
                IndicativoEpocaEqualizacao     = linha.ExtrairValorDaLinha(116, 116).BoletoBrToInt(),
                IndicativoNaturezaEqualizacao  = linha.ExtrairValorDaLinha(117, 117).BoletoBrToInt(),
                ValorEqualizacao               = linha.ExtrairValorDaLinha(118, 132).BoletoBrToDecimal() / 100,
                ValorJurosProrrogacao          = linha.ExtrairValorDaLinha(133, 147).BoletoBrToDecimal() / 100,
                ValorIofProrrogacao            = linha.ExtrairValorDaLinha(148, 162).BoletoBrToDecimal() / 100,
                ValorIofPeriodoAtraso          = linha.ExtrairValorDaLinha(163, 177).BoletoBrToDecimal() / 100,
                NomeComprador                  = linha.ExtrairValorDaLinha(178, 214),
                TipoInscricaoComprador         = linha.ExtrairValorDaLinha(215, 215).BoletoBrToInt(),
                NumeroInscricaoComprador       = linha.ExtrairValorDaLinha(216, 229).BoletoBrToLong(),
                TipoConversaoCnab240           = linha.ExtrairValorDaLinha(230, 231).BoletoBrToInt(),
                NossoNumero17Posicoes          = linha.ExtrairValorDaLinha(232, 248),
                NovoValorTitulo                = linha.ExtrairValorDaLinha(249, 263).BoletoBrToDecimal() / 100,
                ValorEqualizacaoEstornada      = linha.ExtrairValorDaLinha(264, 278).BoletoBrToDecimal() / 100,
                ValorNovaEqualizacao           = linha.ExtrairValorDaLinha(279, 293).BoletoBrToDecimal() / 100,
                ValorDiferencaEqualizacao      = linha.ExtrairValorDaLinha(294, 308).BoletoBrToDecimal() / 100,
                IndicativoDebitoCreditoCampo25 = linha.ExtrairValorDaLinha(309, 309).BoletoBrToInt(),
                IndicativoNaturezaEqualizacao1 = linha.ExtrairValorDaLinha(310, 310).BoletoBrToInt(),
                IndicativoNaturezaEqualizacao2 = linha.ExtrairValorDaLinha(311, 311).BoletoBrToInt(),
                ValorIofNaoFinanciado          = linha.ExtrairValorDaLinha(312, 326).BoletoBrToDecimal() / 100,
                ValorComissaoPermanencia       = linha.ExtrairValorDaLinha(327, 341).BoletoBrToDecimal() / 100
            };

            return(objRetornar);
        }
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400();

            objRetornar.CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
            objRetornar.TipoInscricao    = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
            objRetornar.NumeroInscricao  = linha.ExtrairValorDaLinha(4, 17).BoletoBrToLong();

            // Agencia possui apenas 3 digitos
            if (string.IsNullOrWhiteSpace(linha.ExtrairValorDaLinha(36, 36).BoletoBrToStringSafe()))
            {
                var numeroConvenio = linha.ExtrairValorDaLinha(18, 29).BoletoBrToStringSafe();

                objRetornar.NumeroConvenio       = numeroConvenio.BoletoBrToStringSafe().PadLeft(13, '0');
                objRetornar.CodigoAgenciaCedente = numeroConvenio.ExtrairValorDaLinha(1, 3).BoletoBrToInt();
                objRetornar.CodigoDoBeneficiario = numeroConvenio.ExtrairValorDaLinha(4, 12).BoletoBrToInt();
            }
            else
            {
                var numeroConvenio = linha.ExtrairValorDaLinha(18, 30).BoletoBrToStringSafe();

                objRetornar.NumeroConvenio       = numeroConvenio.BoletoBrToStringSafe();
                objRetornar.CodigoAgenciaCedente = numeroConvenio.ExtrairValorDaLinha(1, 4).BoletoBrToInt();
                objRetornar.CodigoDoBeneficiario = numeroConvenio.ExtrairValorDaLinha(5, 13).BoletoBrToInt();
            }

            /*
             * 1 – Cobrança Simples (8050.76)
             * 3 – Cobrança Caucionada (8150.55) Reservado
             * 4 – Cobrança em IGPM (8450.94) *
             * 5 – Cobrança Caucionada CGB Especial (8355.01) Reservado
             * 6 – Cobrança Simples Seguradora (8051.57)
             * 7 – Cobrança em UFIR (8257.86) *
             * 8 – Cobrança em IDTR (8356.84) *
             */
            objRetornar.SeuNumero = linha.ExtrairValorDaLinha(38, 62);
            //objRetornar.NossoNumero = linha.ExtrairValorDaLinha(63, 72);
            //objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(73, 82);
            objRetornar.CodigoCarteira     = linha.ExtrairValorDaLinha(108, 108).BoletoBrToStringSafe();
            objRetornar.CodigoDeOcorrencia = linha.ExtrairValorDaLinha(109, 110).BoletoBrToStringSafe().BoletoBrToInt();
            objRetornar.DataDaOcorrencia   = (DateTime)linha.ExtrairValorDaLinha(111, 116).BoletoBrToStringSafe().ToDateTimeFromDdMmAa();

            objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(117, 126);
            objRetornar.NossoNumero     = linha.ExtrairValorDaLinha(127, 134);
            // Brancos
            objRetornar.DataDeVencimento     = linha.ExtrairValorDaLinha(147, 152).BoletoBrToStringSafe().ToDateTimeFromDdMmAa() ?? DateTime.MinValue;
            objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;

            objRetornar.BancoCobrador      = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
            objRetornar.AgenciaCobradora   = linha.ExtrairValorDaLinha(169, 172).BoletoBrToInt();
            objRetornar.DvAgenciaCobradora = linha.ExtrairValorDaLinha(173, 173);
            objRetornar.Especie            = linha.ExtrairValorDaLinha(174, 175);
            objRetornar.TaxaBoleto         = linha.ExtrairValorDaLinha(176, 188).BoletoBrToDecimal() / 100;
            objRetornar.ValorAbatimento    = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal() / 100;
            objRetornar.ValorDesconto      = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;

            // Valor do título – Descontos + Outros recebimentos – Abatimentos – Outras despesas
            objRetornar.ValorPrincipal       = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
            objRetornar.ValorLiquidoRecebido = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;

            /* O valor da tarifa não é descontado do valor pago
             * Valor do título – Descontos + Outros recebimentos – Abatimentos – Outras despesas
             * O valor de "Outras despesas" é diferente de "Despesas de cobrança"
             *
             * objRetornar.ValorLiquidoRecebido += objRetornar.ValorTarifa;
             */

            objRetornar.ValorJurosDeMora    = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
            objRetornar.ValorOutrosCreditos = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal() / 100;
            objRetornar.DataDeCredito       =
                linha.ExtrairValorDaLinha(296, 301).BoletoBrToStringSafe().ToDateTimeFromDdMmAa().Equals(null)
                    ? new DateTime(0001, 01, 01)
                    : (DateTime)linha.ExtrairValorDaLinha(296, 301).ToString().ToDateTimeFromDdMmAa();
            objRetornar.MotivoDaOcorrencia = linha.ExtrairValorDaLinha(383, 392).BoletoBrToInt();
            objRetornar.NumeroSequencial   = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

            return(objRetornar);
        }
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400();

            try
            {
                objRetornar.CodigoDoRegistro     = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
                objRetornar.TipoInscricao        = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
                objRetornar.NumeroInscricao      = linha.ExtrairValorDaLinha(4, 17).BoletoBrToLong();
                objRetornar.CodigoAgenciaCedente = linha.ExtrairValorDaLinha(18, 21).BoletoBrToInt();
                // Zeros
                objRetornar.ContaCorrente   = linha.ExtrairValorDaLinha(24, 28);
                objRetornar.DacAgenciaConta = linha.ExtrairValorDaLinha(29, 29).BoletoBrToInt();
                // Brancos
                objRetornar.CodigoDoDocumentoEmpresa = linha.ExtrairValorDaLinha(38, 62);
                objRetornar.CodigoDoDocumentoBanco   = linha.ExtrairValorDaLinha(63, 70);
                // Brancos
                objRetornar.NumeroCarteira  = linha.ExtrairValorDaLinha(83, 85).BoletoBrToInt();
                objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(86, 93);
                objRetornar.DacNossoNumero  = linha.ExtrairValorDaLinha(94, 94).BoletoBrToInt();
                // Brancos
                objRetornar.CodigoCarteira     = linha.ExtrairValorDaLinha(108, 108);
                objRetornar.CodigoDeOcorrencia = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
                objRetornar.DataDaOcorrencia   = (DateTime)linha.ExtrairValorDaLinha(111, 116).BoletoBrToStringSafe().ToDateTimeFromDdMmAa();
                objRetornar.NossoNumero        = linha.ExtrairValorDaLinha(127, 134);
                // Brancos
                objRetornar.DataDeVencimento     = linha.ExtrairValorDaLinha(147, 152).BoletoBrToStringSafe().ToDateTimeFromDdMmAa() ?? DateTime.MinValue;
                objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;
                objRetornar.BancoCobrador        = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
                objRetornar.AgenciaCobradora     = linha.ExtrairValorDaLinha(169, 172).BoletoBrToInt();
                objRetornar.DvAgenciaCobradora   = linha.ExtrairValorDaLinha(173, 173);
                objRetornar.Especie     = linha.ExtrairValorDaLinha(174, 175);
                objRetornar.ValorTarifa = linha.ExtrairValorDaLinha(176, 188).BoletoBrToDecimal() / 100;
                // Brancos
                objRetornar.ValorIof        = linha.ExtrairValorDaLinha(215, 227).BoletoBrToDecimal() / 100;
                objRetornar.ValorAbatimento = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal() / 100;
                objRetornar.ValorDesconto   = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;

                objRetornar.ValorPrincipal       = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
                objRetornar.ValorLiquidoRecebido = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;

                // Multa também é considerada
                objRetornar.ValorJurosDeMora    = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
                objRetornar.ValorOutrosCreditos = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal() / 100;
                objRetornar.IndicadorBoletoDDA  = linha.ExtrairValorDaLinha(293, 293);

                //Estamos considerando o fato do Itaú sempre somar a tarifa de cobrança do boleto ao valor pago
                //Caso esta condição seja alterada será necessário customizar isso com campos específicos na carteira
                //Conforme conversado -> Sidney e Marcelo em 31/10/2019
                if (objRetornar.ValorDoTituloParcela < (objRetornar.ValorTarifa + objRetornar.ValorJurosAtraso + objRetornar.ValorJurosDeMora))
                {
                    objRetornar.ValorLiquidoRecebido *= -1;     //turns a negative number because the tax is bigger than original value
                }

                objRetornar.ValorLiquidoRecebido += objRetornar.ValorTarifa;

                // Brancos
                objRetornar.DataDeCredito =
                    linha.ExtrairValorDaLinha(296, 301).BoletoBrToStringSafe().ToDateTimeFromDdMmAa().Equals(null)
                        ? new DateTime(0001, 01, 01)
                        : (DateTime)linha.ExtrairValorDaLinha(296, 301).ToString().ToDateTimeFromDdMmAa();
                objRetornar.CodigoInstrucaoCancelada = linha.ExtrairValorDaLinha(302, 305).BoletoBrToInt();
                // Brancos
                // Zeros
                objRetornar.NomeSacado = linha.ExtrairValorDaLinha(325, 354);
                // Brancos
                objRetornar.MensagemInformativa = linha.ExtrairValorDaLinha(378, 385);
                // Brancos
                objRetornar.CodigoFormaPagamento = linha.ExtrairValorDaLinha(393, 394);
                objRetornar.NumeroSequencial     = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();
            }
            catch (Exception ex)
            {
                throw new ArgumentException("O arquivo selecionado possui um formato inválido ou não corresponde a conta bancária escolhida", ex);
            }

            return(objRetornar);
        }
Example #24
0
        /// <summary>
        /// Cód. Registro: 7
        /// Registro: DETALHE
        /// Descrição: Informações do título
        /// </summary>
        /// <param name="linha"></param>
        /// <returns></returns>
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt(),
                CodigoDoServico  = linha.ExtrairValorDaLinha(2, 3)
            };

            // Detalhe Geral
            if (objRetornar.CodigoDoRegistro == 7)
            {
                objRetornar.CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
                // Zeros
                // Zeros
                objRetornar.CodigoAgenciaCedente = linha.ExtrairValorDaLinha(18, 21).BoletoBrToInt();
                objRetornar.DvAgenciaCedente     = linha.ExtrairValorDaLinha(22, 22);
                objRetornar.ContaCorrente        = linha.ExtrairValorDaLinha(23, 30);
                objRetornar.DvContaCorrente      = linha.ExtrairValorDaLinha(31, 31);
                objRetornar.NumeroConvenio       = linha.ExtrairValorDaLinha(32, 38).BoletoBrToInt().BoletoBrToStringSafe();
                objRetornar.NumeroControle       = linha.ExtrairValorDaLinha(39, 63);
                objRetornar.NossoNumero          = linha.ExtrairValorDaLinha(64, 80);
                objRetornar.TipoCobranca         = linha.ExtrairValorDaLinha(81, 81).BoletoBrToInt();
                objRetornar.TipoCobrancaCmd17    = linha.ExtrairValorDaLinha(82, 82).BoletoBrToInt();
                objRetornar.DiasCalculo          = linha.ExtrairValorDaLinha(83, 86).BoletoBrToInt();
                objRetornar.NaturezaRecebimento  = linha.ExtrairValorDaLinha(87, 88).BoletoBrToInt();
                objRetornar.PrefixoTitulo        = linha.ExtrairValorDaLinha(89, 91);
                objRetornar.VariacaoCarteira     = linha.ExtrairValorDaLinha(92, 94).BoletoBrToInt();
                objRetornar.ContaCaucao          = linha.ExtrairValorDaLinha(95, 95).BoletoBrToInt();
                // PICTURE 9(005) - Taxa de desconto é composta por 5 números
                objRetornar.TaxaDesconto = linha.ExtrairValorDaLinha(96, 100).BoletoBrToInt() / 1000;
                objRetornar.TaxaIof      = linha.ExtrairValorDaLinha(101, 105).BoletoBrToInt() / 100;
                // Brancos
                objRetornar.CodigoCarteira = linha.ExtrairValorDaLinha(107, 108);

                /* Comando e o mesmo de ocorrencia */
                objRetornar.Comando            = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
                objRetornar.CodigoDeOcorrencia = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();

                objRetornar.DataLiquidacao = Convert.ToDateTime(linha.ExtrairValorDaLinha(111, 116).ToDateTimeFromDdMmAa());

                /* Titulo dado pelo cedente mesmo numero do documento */
                objRetornar.TituloDadoCedente = linha.ExtrairValorDaLinha(117, 126);
                objRetornar.NumeroDocumento   = linha.ExtrairValorDaLinha(117, 126);

                // Brancos
                objRetornar.DataDeVencimento     = Convert.ToDateTime(linha.ExtrairValorDaLinha(147, 152).ToDateTimeFromDdMmAa());
                objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;
                objRetornar.BancoCobrador        = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
                objRetornar.AgenciaCobradora     = linha.ExtrairValorDaLinha(169, 172).BoletoBrToInt();
                objRetornar.DvAgenciaCobradora   = linha.ExtrairValorDaLinha(173, 173);
                objRetornar.Especie = linha.ExtrairValorDaLinha(174, 175);

                objRetornar.DataDeCredito = Convert.ToDateTime(linha.ExtrairValorDaLinha(176, 181).ToDateTimeFromDdMmAa());

                objRetornar.ValorTarifa                    = linha.ExtrairValorDaLinha(182, 188).BoletoBrToDecimal() / 100;
                objRetornar.ValorOutrasDespesas            = linha.ExtrairValorDaLinha(189, 201).BoletoBrToDecimal() / 100;
                objRetornar.ValorJurosDesconto             = linha.ExtrairValorDaLinha(202, 214).BoletoBrToDecimal() / 100;
                objRetornar.ValorIofDesconto               = linha.ExtrairValorDaLinha(215, 227).BoletoBrToDecimal() / 100;
                objRetornar.ValorAbatimento                = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal() / 100;
                objRetornar.ValorDesconto                  = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;
                objRetornar.ValorLiquidoRecebido           = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
                objRetornar.ValorJurosDeMora               = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
                objRetornar.ValorOutrosRecebimentos        = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal() / 100;
                objRetornar.ValorAbatimentosNaoAproveitado = linha.ExtrairValorDaLinha(293, 305).BoletoBrToDecimal() / 100;
                objRetornar.ValorLancamento                = linha.ExtrairValorDaLinha(306, 318).BoletoBrToDecimal() / 100;
                objRetornar.IndicativoDebitoCredito        = linha.ExtrairValorDaLinha(319, 319);
                objRetornar.IndicadorValor                 = linha.ExtrairValorDaLinha(320, 320).BoletoBrToInt();
                objRetornar.ValorAjuste                    = linha.ExtrairValorDaLinha(321, 332).BoletoBrToDecimal() / 100;
                // Brancos e Zeros específicos para cobrança compartilhada
                objRetornar.BrancosIndicadorConvenio     = linha.ExtrairValorDaLinha(333, 333);
                objRetornar.BrancosValorPagoTitulo       = linha.ExtrairValorDaLinha(334, 342).BoletoBrToDecimal() / 100;
                objRetornar.ZerosNumeroPrimeiroConvenio  = linha.ExtrairValorDaLinha(343, 349).BoletoBrToLong();
                objRetornar.ZerosValorPrimeiroConvenio   = linha.ExtrairValorDaLinha(350, 358).BoletoBrToDecimal() / 100;
                objRetornar.ZerosNumeroSegundoConvenio   = linha.ExtrairValorDaLinha(359, 365).BoletoBrToLong();
                objRetornar.ZerosValorSegundoConvenio    = linha.ExtrairValorDaLinha(366, 374).BoletoBrToDecimal() / 100;
                objRetornar.ZerosNumeroTerceiroConvenio  = linha.ExtrairValorDaLinha(375, 381).BoletoBrToLong();
                objRetornar.ZerosValorTerceiroConvenio   = linha.ExtrairValorDaLinha(382, 390).BoletoBrToDecimal() / 100;
                objRetornar.AutorizacaoLiquidacaoParcial = linha.ExtrairValorDaLinha(391, 391).BoletoBrToInt();
                // Brancos
                objRetornar.MeioApresentacaoTituloAoSacado = linha.ExtrairValorDaLinha(393, 394).BoletoBrToInt();
                objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();
            }

            // Detalhe Cobrança Partilhada Carteira 17
            if (objRetornar.CodigoDoRegistro == 2)
            {
                ObterRegistrosDetalheAuxiliarCobrancaPartilhadaCarteira17(linha);
            }

            // Detalhe Cobrança Vendor
            if (objRetornar.CodigoDoRegistro == 3)
            {
                ObterRegistrosDetalheCobrancaVendor(linha);
            }

            // Detalhe Bloqueto por E-mail
            if (objRetornar.CodigoDoRegistro == 5 && objRetornar.CodigoDoServico == "01")
            {
                ObterRegistrosDetalheBloquetoEmail(linha);
            }

            // Detalhe Dados do cheque utilizado para liquidação de título
            if (objRetornar.CodigoDoRegistro == 5 && objRetornar.CodigoDoServico == "04")
            {
                ObterRegistrosDetalheDadosCheque(linha);
            }

            // Detalhe Número do título do cedente com 15 posições (OPCIONAL)
            if (objRetornar.CodigoDoRegistro == 5 && objRetornar.CodigoDoServico == "06")
            {
                ObterRegistrosDetalheDadosTitulo(linha);
            }

            return(objRetornar);
        }
        /// <summary>
        /// Cód. Registro: 7
        /// Registro: DETALHE
        /// Descrição: Informações do título
        /// </summary>
        /// <param name="linha"></param>
        /// <returns></returns>
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt(),
                CodigoDoServico = linha.ExtrairValorDaLinha(2, 3)
            };

            // Detalhe Geral
            if (objRetornar.CodigoDoRegistro == 7)
            {
                objRetornar.CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
                // Zeros
                // Zeros
                objRetornar.CodigoAgenciaCedente = linha.ExtrairValorDaLinha(18, 21).BoletoBrToInt();
                objRetornar.DvAgenciaCedente = linha.ExtrairValorDaLinha(22, 22);
                objRetornar.ContaCorrente = linha.ExtrairValorDaLinha(23, 30);
                objRetornar.DvContaCorrente = linha.ExtrairValorDaLinha(31, 31);
                objRetornar.NumeroConvenio = linha.ExtrairValorDaLinha(32, 38).BoletoBrToInt();
                objRetornar.NumeroControle = linha.ExtrairValorDaLinha(39, 63);
                objRetornar.NossoNumero = linha.ExtrairValorDaLinha(64, 80);
                objRetornar.TipoCobranca = linha.ExtrairValorDaLinha(81, 81).BoletoBrToInt();
                objRetornar.TipoCobrancaCmd17 = linha.ExtrairValorDaLinha(82, 82).BoletoBrToInt();
                objRetornar.DiasCalculo = linha.ExtrairValorDaLinha(83, 86).BoletoBrToInt();
                objRetornar.NaturezaRecebimento = linha.ExtrairValorDaLinha(87, 88).BoletoBrToInt();
                objRetornar.PrefixoTitulo = linha.ExtrairValorDaLinha(89, 91);
                objRetornar.VariacaoCarteira = linha.ExtrairValorDaLinha(92, 94).BoletoBrToInt();
                objRetornar.ContaCaucao = linha.ExtrairValorDaLinha(95, 95).BoletoBrToInt();
                // PICTURE 9(005) - Taxa de desconto é composta por 5 números
                objRetornar.TaxaDesconto = linha.ExtrairValorDaLinha(96, 100).BoletoBrToInt()/1000;
                objRetornar.TaxaIof = linha.ExtrairValorDaLinha(101, 105).BoletoBrToInt()/100;
                // Brancos
                objRetornar.CodigoCarteira = linha.ExtrairValorDaLinha(107, 108);
                objRetornar.Comando = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
                objRetornar.DataLiquidacao = Convert.ToDateTime(linha.ExtrairValorDaLinha(111, 116).ToDateTimeFromDdMmAa());
                objRetornar.TituloDadoCedente = linha.ExtrairValorDaLinha(117, 126);
                // Brancos
                objRetornar.DataDeVencimento = Convert.ToDateTime(linha.ExtrairValorDaLinha(147, 152).ToDateTimeFromDdMmAa());
                objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal()/100;
                objRetornar.BancoCobrador = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
                objRetornar.AgenciaCobradora = linha.ExtrairValorDaLinha(169, 172).BoletoBrToInt();
                objRetornar.DvAgenciaCobradora = linha.ExtrairValorDaLinha(173, 173);
                objRetornar.Especie = linha.ExtrairValorDaLinha(174, 175);
                objRetornar.DataDeCredito = Convert.ToDateTime(linha.ExtrairValorDaLinha(176, 181).ToDateTimeFromDdMmAa());
                objRetornar.ValorTarifa = linha.ExtrairValorDaLinha(182, 188).BoletoBrToDecimal()/100;
                objRetornar.ValorOutrasDespesas = linha.ExtrairValorDaLinha(189, 201).BoletoBrToDecimal()/100;
                objRetornar.ValorJurosDesconto = linha.ExtrairValorDaLinha(202, 214).BoletoBrToDecimal()/100;
                objRetornar.ValorIofDesconto = linha.ExtrairValorDaLinha(215, 227).BoletoBrToDecimal()/100;
                objRetornar.ValorAbatimento = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal()/100;
                objRetornar.ValorDesconto = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal()/100;
                objRetornar.ValorLiquidoRecebido = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal()/100;
                objRetornar.ValorJurosDeMora = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal()/100;
                objRetornar.ValorOutrosRecebimentos = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal()/100;
                objRetornar.ValorAbatimentosNaoAproveitado = linha.ExtrairValorDaLinha(293, 305).BoletoBrToDecimal()/100;
                objRetornar.ValorLancamento = linha.ExtrairValorDaLinha(306, 318).BoletoBrToDecimal()/100;
                objRetornar.IndicativoDebitoCredito = linha.ExtrairValorDaLinha(319, 319);
                objRetornar.IndicadorValor = linha.ExtrairValorDaLinha(320, 320).BoletoBrToInt();
                objRetornar.ValorAjuste = linha.ExtrairValorDaLinha(321, 332).BoletoBrToDecimal()/100;
                // Brancos e Zeros específicos para cobrança compartilhada
                objRetornar.BrancosIndicadorConvenio = linha.ExtrairValorDaLinha(333, 333);
                objRetornar.BrancosValorPagoTitulo = linha.ExtrairValorDaLinha(334, 342).BoletoBrToDecimal()/100;
                objRetornar.ZerosNumeroPrimeiroConvenio = linha.ExtrairValorDaLinha(343, 349).BoletoBrToLong();
                objRetornar.ZerosValorPrimeiroConvenio = linha.ExtrairValorDaLinha(350, 358).BoletoBrToDecimal()/100;
                objRetornar.ZerosNumeroSegundoConvenio = linha.ExtrairValorDaLinha(359, 365).BoletoBrToLong();
                objRetornar.ZerosValorSegundoConvenio = linha.ExtrairValorDaLinha(366, 374).BoletoBrToDecimal()/100;
                objRetornar.ZerosNumeroTerceiroConvenio = linha.ExtrairValorDaLinha(375, 381).BoletoBrToLong();
                objRetornar.ZerosValorTerceiroConvenio = linha.ExtrairValorDaLinha(382, 390).BoletoBrToDecimal()/100;
                objRetornar.AutorizacaoLiquidacaoParcial = linha.ExtrairValorDaLinha(391, 391).BoletoBrToInt();
                // Brancos
                objRetornar.MeioApresentacaoTituloAoSacado = linha.ExtrairValorDaLinha(393, 394).BoletoBrToInt();
                objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();
            }

            // Detalhe Cobrança Partilhada Carteira 17
            if (objRetornar.CodigoDoRegistro == 2)
                ObterRegistrosDetalheAuxiliarCobrancaPartilhadaCarteira17(linha);

            // Detalhe Cobrança Vendor
            if (objRetornar.CodigoDoRegistro == 3)
                ObterRegistrosDetalheCobrancaVendor(linha);

            // Detalhe Bloqueto por E-mail
            if (objRetornar.CodigoDoRegistro == 5 && objRetornar.CodigoDoServico == "01")
                ObterRegistrosDetalheBloquetoEmail(linha);

            // Detalhe Dados do cheque utilizado para liquidação de título
            if (objRetornar.CodigoDoRegistro == 5 && objRetornar.CodigoDoServico == "04")
                ObterRegistrosDetalheDadosCheque(linha);

            // Detalhe Número do título do cedente com 15 posições (OPCIONAL)
            if (objRetornar.CodigoDoRegistro == 5 && objRetornar.CodigoDoServico == "06")
                ObterRegistrosDetalheDadosTitulo(linha);

            return objRetornar;
        }
        /// <summary>
        /// Cód. Registro: 5
        /// Registro: DETALHE
        /// Descrição: Número do título do cedente com 15 posições
        /// </summary>
        /// <param name="linha"></param>
        /// <returns></returns>
        public DetalheRetornoCnab400 ObterRegistrosDetalheDadosTitulo(string linha)
        {
            // Registro Opcional
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt(),
                CodigoDoServico = linha.ExtrairValorDaLinha(2, 3),
                NumeroTituloCedente = linha.ExtrairValorDaLinha(6, 20),
                NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt()
            };

            return objRetornar;
        }
Example #27
0
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400();

            objRetornar.CodigoDoRegistro     = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
            objRetornar.TipoInscricao        = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
            objRetornar.NumeroInscricao      = linha.ExtrairValorDaLinha(4, 17).BoletoBrToLong();
            objRetornar.CodigoAgenciaCedente = linha.ExtrairValorDaLinha(18, 21).BoletoBrToInt();
            objRetornar.DvAgenciaCedente     = linha.ExtrairValorDaLinha(22, 22);
            objRetornar.ContaCorrente        = linha.ExtrairValorDaLinha(23, 30);
            objRetornar.DacAgenciaConta      = linha.ExtrairValorDaLinha(31, 31).BoletoBrToInt();
            objRetornar.NumeroConvenio       = linha.ExtrairValorDaLinha(32, 37).BoletoBrToInt();
            objRetornar.NumeroControle       = linha.ExtrairValorDaLinha(38, 62);

            objRetornar.NossoNumero    = linha.ExtrairValorDaLinha(63, 73);
            objRetornar.DacNossoNumero = linha.ExtrairValorDaLinha(74, 74).BoletoBrToInt();
            objRetornar.NumeroParcela  = linha.ExtrairValorDaLinha(75, 76).BoletoBrToInt();

            //77-80 GRUPO DE VALOR 00
            objRetornar.CodigoBaixaRecusa = linha.ExtrairValorDaLinha(81, 82).BoletoBrToInt();
            //objRetornar.Especie = linha.ExtrairValorDaLinha(83, 85);
            objRetornar.VariacaoCarteira           = linha.ExtrairValorDaLinha(86, 88).BoletoBrToInt();
            objRetornar.ContaCaucao                = linha.ExtrairValorDaLinha(89, 89).BoletoBrToInt();
            objRetornar.CodigoDeResponsabilidade   = linha.ExtrairValorDaLinha(90, 94).BoletoBrToInt();
            objRetornar.DVCodigoDeResponsabilidade = linha.ExtrairValorDaLinha(95, 95).BoletoBrToInt();

            objRetornar.ValorTarifa = linha.ExtrairValorDaLinha(96, 100).BoletoBrToDecimal() / 100;
            objRetornar.ValorIof    = linha.ExtrairValorDaLinha(101, 105).BoletoBrToDecimal() / 100;

            //106-106 BRANCOS
            objRetornar.CodigoCarteira     = linha.ExtrairValorDaLinha(107, 108);
            objRetornar.CodigoDeOcorrencia = linha.ExtrairValorDaLinha(109, 110).BoletoBrToInt();
            objRetornar.DataDaOcorrencia   = (DateTime)linha.ExtrairValorDaLinha(111, 116).BoletoBrToStringSafe().ToDateTimeFromDdMmAa();
            objRetornar.NumeroDocumento    = linha.ExtrairValorDaLinha(117, 126);

            //127-146 BRANCOS
            objRetornar.DataDeVencimento =
                linha.ExtrairValorDaLinha(147, 152).BoletoBrToStringSafe().ToDateTimeFromDdMmAa() ?? DateTime.MinValue;
            objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(153, 165).BoletoBrToDecimal() / 100;

            objRetornar.BancoCobrador      = linha.ExtrairValorDaLinha(166, 168).BoletoBrToInt();
            objRetornar.AgenciaCobradora   = linha.ExtrairValorDaLinha(169, 172).BoletoBrToInt();
            objRetornar.DvAgenciaCobradora = linha.ExtrairValorDaLinha(173, 173);

            objRetornar.Especie       = linha.ExtrairValorDaLinha(174, 175);
            objRetornar.DataDeCredito =
                linha.ExtrairValorDaLinha(176, 181).BoletoBrToStringSafe().ToDateTimeFromDdMmAa().Equals(null)
                    ? new DateTime(0001, 01, 01)
                    : (DateTime)linha.ExtrairValorDaLinha(176, 181).ToString().ToDateTimeFromDdMmAa();
            objRetornar.ValorTarifa                    = linha.ExtrairValorDaLinha(182, 188).BoletoBrToDecimal() / 100;
            objRetornar.ValorOutrasDespesas            = linha.ExtrairValorDaLinha(189, 201).BoletoBrToDecimal() / 100;
            objRetornar.ValorJurosDesconto             = linha.ExtrairValorDaLinha(202, 214).BoletoBrToDecimal() / 100;
            objRetornar.ValorIofDesconto               = linha.ExtrairValorDaLinha(215, 227).BoletoBrToDecimal() / 100;
            objRetornar.ValorAbatimento                = linha.ExtrairValorDaLinha(228, 240).BoletoBrToDecimal() / 100;
            objRetornar.ValorDesconto                  = linha.ExtrairValorDaLinha(241, 253).BoletoBrToDecimal() / 100;
            objRetornar.ValorLiquidoRecebido           = linha.ExtrairValorDaLinha(254, 266).BoletoBrToDecimal() / 100;
            objRetornar.ValorJurosDeMora               = linha.ExtrairValorDaLinha(267, 279).BoletoBrToDecimal() / 100;
            objRetornar.ValorOutrosRecebimentos        = linha.ExtrairValorDaLinha(280, 292).BoletoBrToDecimal() / 100;
            objRetornar.ValorAbatimentosNaoAproveitado = linha.ExtrairValorDaLinha(293, 305).BoletoBrToDecimal() / 100;
            objRetornar.ValorLancamento                = linha.ExtrairValorDaLinha(306, 318).BoletoBrToDecimal() / 100;
            objRetornar.IndicativoDebitoCredito        = linha.ExtrairValorDaLinha(319, 319);
            objRetornar.IndicadorValor                 = linha.ExtrairValorDaLinha(320, 320).BoletoBrToInt();
            objRetornar.ValorAjuste                    = linha.ExtrairValorDaLinha(321, 332).BoletoBrToDecimal() / 100;

            //333-342 BRANCOS
            objRetornar.NumeroInscricao = linha.ExtrairValorDaLinha(343, 357).BoletoBrToLong();

            //358-394 BRANCOS
            objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();

            return(objRetornar);
        }
        /// <summary>
        /// Cód. Registro: 3
        /// Registro: DETALHE
        /// Descrição: Tipo de Cobrança Vendor
        /// </summary>
        /// <param name="linha"></param>
        /// <returns></returns>
        public DetalheRetornoCnab400 ObterRegistrosDetalheCobrancaVendor(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt(),
                NossoNumero = linha.ExtrairValorDaLinha(2, 12),
                DvNossoNumero = linha.ExtrairValorDaLinha(13, 13),
                NumeroOperacaoBBVendor = linha.ExtrairValorDaLinha(14, 22).BoletoBrToLong(),
                DataOperacaoBBVendor = Convert.ToDateTime(linha.ExtrairValorDaLinha(23, 30).ToDateTimeFromDdMmAa()),
                TaxaJurosVendedor = linha.ExtrairValorDaLinha(31, 35).BoletoBrToInt()/1000,
                TaxaJurosComprador = linha.ExtrairValorDaLinha(36, 40).BoletoBrToInt()/1000,
                ValorTituloVencimento = linha.ExtrairValorDaLinha(41, 55).BoletoBrToDecimal()/100,
                ValorOriginal = linha.ExtrairValorDaLinha(56, 70).BoletoBrToDecimal()/100,
                ValorEncargosComprador = linha.ExtrairValorDaLinha(71, 85).BoletoBrToDecimal()/100,
                ValorIofFinanciado = linha.ExtrairValorDaLinha(86, 100).BoletoBrToDecimal()/100,
                ValorAcumuladoAbatimento = linha.ExtrairValorDaLinha(101, 115).BoletoBrToDecimal()/100,
                IndicativoEpocaEqualizacao = linha.ExtrairValorDaLinha(116, 116).BoletoBrToInt(),
                IndicativoNaturezaEqualizacao = linha.ExtrairValorDaLinha(117, 117).BoletoBrToInt(),
                ValorEqualizacao = linha.ExtrairValorDaLinha(118, 132).BoletoBrToDecimal()/100,
                ValorJurosProrrogacao = linha.ExtrairValorDaLinha(133, 147).BoletoBrToDecimal()/100,
                ValorIofProrrogacao = linha.ExtrairValorDaLinha(148, 162).BoletoBrToDecimal()/100,
                ValorIofPeriodoAtraso = linha.ExtrairValorDaLinha(163, 177).BoletoBrToDecimal()/100,
                NomeComprador = linha.ExtrairValorDaLinha(178, 214),
                TipoInscricaoComprador = linha.ExtrairValorDaLinha(215, 215).BoletoBrToInt(),
                NumeroInscricaoComprador = linha.ExtrairValorDaLinha(216, 229).BoletoBrToLong(),
                TipoConversaoCnab240 = linha.ExtrairValorDaLinha(230, 231).BoletoBrToInt(),
                NossoNumero17Posicoes = linha.ExtrairValorDaLinha(232, 248),
                NovoValorTitulo = linha.ExtrairValorDaLinha(249, 263).BoletoBrToDecimal()/100,
                ValorEqualizacaoEstornada = linha.ExtrairValorDaLinha(264, 278).BoletoBrToDecimal()/100,
                ValorNovaEqualizacao = linha.ExtrairValorDaLinha(279, 293).BoletoBrToDecimal()/100,
                ValorDiferencaEqualizacao = linha.ExtrairValorDaLinha(294, 308).BoletoBrToDecimal()/100,
                IndicativoDebitoCreditoCampo25 = linha.ExtrairValorDaLinha(309, 309).BoletoBrToInt(),
                IndicativoNaturezaEqualizacao1 = linha.ExtrairValorDaLinha(310, 310).BoletoBrToInt(),
                IndicativoNaturezaEqualizacao2 = linha.ExtrairValorDaLinha(311, 311).BoletoBrToInt(),
                ValorIofNaoFinanciado = linha.ExtrairValorDaLinha(312, 326).BoletoBrToDecimal()/100,
                ValorComissaoPermanencia = linha.ExtrairValorDaLinha(327, 341).BoletoBrToDecimal()/100
            };

            return objRetornar;
        }
        /// <summary>
        /// Cód. Registro: 5
        /// Registro: DETALHE
        /// Descrição: Bloqueto por e-mail
        /// </summary>
        /// <param name="linha"></param>
        /// <returns></returns>
        public DetalheRetornoCnab400 ObterRegistrosDetalheBloquetoEmail(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt(),
                CodigoDoServico = linha.ExtrairValorDaLinha(2, 3),
                EnderecosEmail = linha.ExtrairValorDaLinha(6, 142),
                NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt()
            };

            return objRetornar;
        }
        /// <summary>
        /// Cód. Registro: 2
        /// Registro: DETALHE
        /// Descrição: Tipo de Cobrança Simples Carteira 17
        /// </summary>
        /// <param name="linha"></param>
        /// <returns></returns>
        public DetalheRetornoCnab400 ObterRegistrosDetalheAuxiliarCobrancaPartilhadaCarteira17(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt(),
                NossoNumero = linha.ExtrairValorDaLinha(2, 18),
                BancoParaCredito1 = linha.ExtrairValorDaLinha(19, 21).BoletoBrToInt(),
                CamaraCompensacao1 = linha.ExtrairValorDaLinha(22, 24).BoletoBrToInt(),
                AgenciaParaCredito1 = linha.ExtrairValorDaLinha(25, 28).BoletoBrToInt(),
                DvAgenciaParaCredito1 = linha.ExtrairValorDaLinha(29, 29),
                ContaParaCredito1 = linha.ExtrairValorDaLinha(30, 40).BoletoBrToLong(),
                DvContaParaCredito1 = linha.ExtrairValorDaLinha(41, 41),
                NomeFavorecido1 = linha.ExtrairValorDaLinha(42, 71),
                ValorInformadoPartilha1 = linha.ExtrairValorDaLinha(72, 84).BoletoBrToDecimal()/100,
                ValorEfetivamentePartilhado1 = linha.ExtrairValorDaLinha(85, 97).BoletoBrToDecimal()/100,
                BancoParaCredito2 = linha.ExtrairValorDaLinha(98, 100).BoletoBrToInt(),
                CamaraCompensacao2 = linha.ExtrairValorDaLinha(101, 103).BoletoBrToInt(),
                AgenciaParaCredito2 = linha.ExtrairValorDaLinha(104, 107).BoletoBrToInt(),
                DvAgenciaParaCredito2 = linha.ExtrairValorDaLinha(108, 108),
                ContaParaCredito2 = linha.ExtrairValorDaLinha(109, 119).BoletoBrToLong(),
                DvContaParaCredito2 = linha.ExtrairValorDaLinha(120, 120),
                NomeFavorecido2 = linha.ExtrairValorDaLinha(121, 150),
                ValorInformadoPartilha2 = linha.ExtrairValorDaLinha(151, 163).BoletoBrToDecimal()/100,
                ValorEfetivamentePartilhado2 = linha.ExtrairValorDaLinha(164, 176).BoletoBrToDecimal()/100,
                BancoParaCredito3 = linha.ExtrairValorDaLinha(177, 179).BoletoBrToInt(),
                CamaraCompensacao3 = linha.ExtrairValorDaLinha(180, 182).BoletoBrToInt(),
                AgenciaParaCredito3 = linha.ExtrairValorDaLinha(183, 186).BoletoBrToInt(),
                DvAgenciaParaCredito3 = linha.ExtrairValorDaLinha(187, 187),
                ContaParaCredito3 = linha.ExtrairValorDaLinha(188, 198).BoletoBrToLong(),
                DvContaParaCredito3 = linha.ExtrairValorDaLinha(199, 199),
                NomeFavorecido3 = linha.ExtrairValorDaLinha(200, 229),
                ValorInformadoPartilha3 = linha.ExtrairValorDaLinha(230, 242).BoletoBrToDecimal()/100,
                ValorEfetivamentePartilhado3 = linha.ExtrairValorDaLinha(243, 255).BoletoBrToDecimal()/100,
                BancoParaCredito4 = linha.ExtrairValorDaLinha(256, 258).BoletoBrToInt(),
                CamaraCompensacao4 = linha.ExtrairValorDaLinha(259, 261).BoletoBrToInt(),
                AgenciaParaCredito4 = linha.ExtrairValorDaLinha(262, 265).BoletoBrToInt(),
                DvAgenciaParaCredito4 = linha.ExtrairValorDaLinha(266, 266),
                ContaParaCredito4 = linha.ExtrairValorDaLinha(267, 277).BoletoBrToLong(),
                DvContaParaCredito4 = linha.ExtrairValorDaLinha(278, 278),
                NomeFavorecido4 = linha.ExtrairValorDaLinha(279, 308),
                ValorInformadoPartilha4 = linha.ExtrairValorDaLinha(309, 321).BoletoBrToDecimal()/100,
                ValorEfetivamentePartilhado4 = linha.ExtrairValorDaLinha(322, 334).BoletoBrToDecimal()/100,
                TipoInscricaoFavorecido1 = linha.ExtrairValorDaLinha(335, 335).BoletoBrToInt(),
                NumeroInscricaoFavorecido1 = linha.ExtrairValorDaLinha(336, 349).BoletoBrToInt(),
                TipoInscricaoFavorecido2 = linha.ExtrairValorDaLinha(350, 350).BoletoBrToInt(),
                NumeroInscricaoFavorecido2 = linha.ExtrairValorDaLinha(351, 364).BoletoBrToInt(),
                TipoInscricaoFavorecido3 = linha.ExtrairValorDaLinha(365, 365).BoletoBrToInt(),
                NumeroInscricaoFavorecido3 = linha.ExtrairValorDaLinha(366, 379).BoletoBrToInt(),
                TipoInscricaoFavorecido4 = linha.ExtrairValorDaLinha(380, 380).BoletoBrToInt(),
                NumeroInscricaoFavorecido4 = linha.ExtrairValorDaLinha(381, 394).BoletoBrToInt(),
                NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt()
            };

            return objRetornar;
        }
        /// <summary>
        /// Cód. Registro: 5
        /// Registro: DETALHE
        /// Descrição: Dados do cheque utilizado para liquidação de título
        /// </summary>
        /// <param name="linha"></param>
        /// <returns></returns>
        public DetalheRetornoCnab400 ObterRegistrosDetalheDadosCheque(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt(),
                CodigoDoServico = linha.ExtrairValorDaLinha(2, 3),
                NossoNumero17Posicoes = linha.ExtrairValorDaLinha(6, 22),
                DataPagamento = linha.ExtrairValorDaLinha(23, 30).BoletoBrToInt(),
                ValorCheque = linha.ExtrairValorDaLinha(45, 59).BoletoBrToDecimal()/100,
                PrazoBloqueioCheque = linha.ExtrairValorDaLinha(60, 62).BoletoBrToInt(),
                MotivoDevolucaoCheque = linha.ExtrairValorDaLinha(66, 68).BoletoBrToInt(),
                TrilhaDoCheque = linha.ExtrairValorDaLinha(70, 103),
                TipoCaptura = linha.ExtrairValorDaLinha(104, 104),
                NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt()
            };

            return objRetornar;
        }
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt()
            };

            if (objRetornar.CodigoDoRegistro == 1)
            {
                objRetornar.CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
                objRetornar.TipoInscricao = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
                objRetornar.NumeroInscricao = linha.ExtrairValorDaLinha(4, 17).BoletoBrToLong();
                //18 a 20	Branco
                objRetornar.ContaCorrente = linha.ExtrairValorDaLinha(21, 37);
                //38 a 62	Branco
                //63 a 70	Branco
                objRetornar.NossoNumero = linha.ExtrairValorDaLinha(71, 82);
                //83 a 92	Branco
                objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(93, 105);
                //106 a 108	Branco
                objRetornar.CodigoInstrucao = linha.ExtrairValorDaLinha(109, 110);

                /*
                 * 00 - Baixa por Devolução
                 * 02 - Entrada de Título;
                 * 05 - Liquidação S/Registro;
                 * 06 - Liquidação Normal C/Registro;
                 * 09 - Liquidação Rejeitada;
                 * 15 - Liquidação Regularizada S/Registro e
                 * 16 - Liquidação Regularizada C/Registro.
                 */
                switch (objRetornar.CodigoInstrucao)
                {
                    case "00":
                        objRetornar.DescricaoInstrucao = "Baixa por Devolução";
                        break;
                    case "02":
                        objRetornar.DescricaoInstrucao = "Entrada de Título";
                        break;
                    case "05":
                        objRetornar.DescricaoInstrucao = "Liquidação S/Registro";
                        break;
                    case "06":
                        objRetornar.DescricaoInstrucao = "Liquidação Normal C/Registro";
                        break;
                    case "09":
                        objRetornar.DescricaoInstrucao = "Liquidação Rejeitada";
                        break;
                    case "15":
                        objRetornar.DescricaoInstrucao = "Liquidação Regularizada S/Registro";
                        break;
                    case "16":
                        objRetornar.DescricaoInstrucao = "Liquidação Regularizada C/Registro";
                        break;
                    default:
                        objRetornar.DescricaoInstrucao = "Não foi localizado o código: " + objRetornar.CodigoInstrucao;
                        break;
                }

                objRetornar.DataDaOcorrencia =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(111, 118).ToDateTimeFromDdMmAaaa());
                //119 a 128	Ignorar Esse Campo
                objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(129, 140);
                objRetornar.CodigoDoRateio = linha.ExtrairValorDaLinha(141, 144);
                //145 a 148	Branco
                objRetornar.DataDeVencimento =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(149, 156).ToDateTimeFromDdMmAaaa());
                objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(157, 169).BoletoBrToDecimal()/100;
                objRetornar.BancoCobrador = linha.ExtrairValorDaLinha(170, 172).BoletoBrToInt();
                objRetornar.AgenciaCobradora = linha.ExtrairValorDaLinha(173, 177).BoletoBrToInt();
                objRetornar.Especie = linha.ExtrairValorDaLinha(178, 179);
                objRetornar.ValorDespesas = linha.ExtrairValorDaLinha(180, 192).BoletoBrToDecimal()/100;
                objRetornar.ValorOutrasDespesas = linha.ExtrairValorDaLinha(193, 205).BoletoBrToDecimal()/100;
                objRetornar.ValorJurosAtraso = linha.ExtrairValorDaLinha(206, 218).BoletoBrToDecimal()/100;
                objRetornar.ValorIof = linha.ExtrairValorDaLinha(219, 231).BoletoBrToDecimal()/100;
                objRetornar.ValorAbatimento = linha.ExtrairValorDaLinha(232, 244).BoletoBrToDecimal()/100;
                objRetornar.ValorDesconto = linha.ExtrairValorDaLinha(245, 257).BoletoBrToDecimal()/100;
                objRetornar.ValorLiquidoRecebido = linha.ExtrairValorDaLinha(258, 270).BoletoBrToDecimal()/100;
                //Contempla Abatimentos e Descontos
                objRetornar.ValorOutrosDebitos = linha.ExtrairValorDaLinha(271, 283).BoletoBrToDecimal()/100;
                //Contempla Juros e Multas
                objRetornar.ValorOutrosCreditos = linha.ExtrairValorDaLinha(284, 296).BoletoBrToDecimal()/100;
                //297 a 298	Branco
                //299 a 299	Branco
                objRetornar.DataLiquidacao =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(300, 307).ToDateTimeFromDdMmAaaa());
                //308 a 364	Branco
                objRetornar.MotivoCodigoRejeicao = linha.ExtrairValorDaLinha(365, 394);
                objRetornar.NumeroSequencial = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();
            }

            return objRetornar;
        }
Example #33
0
        public DetalheRetornoCnab400 ObterRegistrosDetalhe(string linha)
        {
            var objRetornar = new DetalheRetornoCnab400
            {
                CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt()
            };

            if (objRetornar.CodigoDoRegistro == 1)
            {
                objRetornar.CodigoDoRegistro = linha.ExtrairValorDaLinha(1, 1).BoletoBrToInt();
                objRetornar.TipoInscricao    = linha.ExtrairValorDaLinha(2, 3).BoletoBrToInt();
                objRetornar.NumeroInscricao  = linha.ExtrairValorDaLinha(4, 17).BoletoBrToLong();
                //18 a 20	Branco
                objRetornar.ContaCorrente = linha.ExtrairValorDaLinha(21, 37);
                //38 a 62	Branco
                //63 a 70	Branco
                objRetornar.NossoNumero = linha.ExtrairValorDaLinha(71, 82);
                //83 a 92	Branco
                objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(93, 105);
                //106 a 108	Branco
                objRetornar.CodigoInstrucao = linha.ExtrairValorDaLinha(109, 110);

                /*
                 * 00 - Baixa por Devolução
                 * 02 - Entrada de Título;
                 * 05 - Liquidação S/Registro;
                 * 06 - Liquidação Normal C/Registro;
                 * 09 - Liquidação Rejeitada;
                 * 15 - Liquidação Regularizada S/Registro e
                 * 16 - Liquidação Regularizada C/Registro.
                 */
                switch (objRetornar.CodigoInstrucao)
                {
                case "00":
                    objRetornar.DescricaoInstrucao = "Baixa por Devolução";
                    break;

                case "02":
                    objRetornar.DescricaoInstrucao = "Entrada de Título";
                    break;

                case "05":
                    objRetornar.DescricaoInstrucao = "Liquidação S/Registro";
                    break;

                case "06":
                    objRetornar.DescricaoInstrucao = "Liquidação Normal C/Registro";
                    break;

                case "09":
                    objRetornar.DescricaoInstrucao = "Liquidação Rejeitada";
                    break;

                case "15":
                    objRetornar.DescricaoInstrucao = "Liquidação Regularizada S/Registro";
                    break;

                case "16":
                    objRetornar.DescricaoInstrucao = "Liquidação Regularizada C/Registro";
                    break;

                default:
                    objRetornar.DescricaoInstrucao = "Não foi localizado o código: " + objRetornar.CodigoInstrucao;
                    break;
                }

                objRetornar.DataDaOcorrencia =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(111, 118).ToDateTimeFromDdMmAaaa());
                //119 a 128	Ignorar Esse Campo
                objRetornar.NumeroDocumento = linha.ExtrairValorDaLinha(129, 140);
                objRetornar.CodigoDoRateio  = linha.ExtrairValorDaLinha(141, 144);
                //145 a 148	Branco
                objRetornar.DataDeVencimento =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(149, 156).ToDateTimeFromDdMmAaaa());
                objRetornar.ValorDoTituloParcela = linha.ExtrairValorDaLinha(157, 169).BoletoBrToDecimal() / 100;
                objRetornar.BancoCobrador        = linha.ExtrairValorDaLinha(170, 172).BoletoBrToInt();
                objRetornar.AgenciaCobradora     = linha.ExtrairValorDaLinha(173, 177).BoletoBrToInt();
                objRetornar.Especie              = linha.ExtrairValorDaLinha(178, 179);
                objRetornar.ValorDespesas        = linha.ExtrairValorDaLinha(180, 192).BoletoBrToDecimal() / 100;
                objRetornar.ValorOutrasDespesas  = linha.ExtrairValorDaLinha(193, 205).BoletoBrToDecimal() / 100;
                objRetornar.ValorJurosAtraso     = linha.ExtrairValorDaLinha(206, 218).BoletoBrToDecimal() / 100;
                objRetornar.ValorIof             = linha.ExtrairValorDaLinha(219, 231).BoletoBrToDecimal() / 100;
                objRetornar.ValorAbatimento      = linha.ExtrairValorDaLinha(232, 244).BoletoBrToDecimal() / 100;
                objRetornar.ValorDesconto        = linha.ExtrairValorDaLinha(245, 257).BoletoBrToDecimal() / 100;
                objRetornar.ValorLiquidoRecebido = linha.ExtrairValorDaLinha(258, 270).BoletoBrToDecimal() / 100;
                //Contempla Abatimentos e Descontos
                objRetornar.ValorOutrosDebitos = linha.ExtrairValorDaLinha(271, 283).BoletoBrToDecimal() / 100;
                //Contempla Juros e Multas
                objRetornar.ValorOutrosCreditos = linha.ExtrairValorDaLinha(284, 296).BoletoBrToDecimal() / 100;
                //297 a 298	Branco
                //299 a 299	Branco
                objRetornar.DataLiquidacao =
                    Convert.ToDateTime(linha.ExtrairValorDaLinha(300, 307).ToDateTimeFromDdMmAaaa());
                //308 a 364	Branco
                objRetornar.MotivoCodigoRejeicao = linha.ExtrairValorDaLinha(365, 394);
                objRetornar.NumeroSequencial     = linha.ExtrairValorDaLinha(395, 400).BoletoBrToInt();
            }

            return(objRetornar);
        }