Brunomm/br_boleto

View on GitHub
lib/br_boleto/retorno/cnab400/sicredi.rb

Summary

Maintainability
A
2 hrs
Test Coverage
# -*- encoding: utf-8 -*-
module BrBoleto
    module Retorno
        module Cnab400
            class Sicredi < BrBoleto::Retorno::Cnab400::Base
            private
                # O valor da posição que representa o nosso_numero está
                # subdividido em várias partes para o sicredi.
                #
                # Nosso Numero (Posição 048 a 062) conforme exemplo informações abaixo:
                # - Ano             - 02 posições (48 a 49) - Ano Atual
                # - Byte Idt.       - 01 posições (50 a 50) - Byte de identificação
                # - Número Seq.     - 05 posições (51 a 55) - Número sequencial
                # - DV nosso num.   - 01 posição  (56 a 56) - Dígito verificador nosso número
                # - Em branco       - 06 posições (57 a 62)
                #
                # 13 - ano atual
                # 2  - byte
                # xxxxx - número sequencial
                # D - dígito verificador calculado
                # Ex: 132xxxxxD
                #
                def detalhe_fields #:doc:
                    { #    ATRIBUTO               POSIÇÃO DA LINHA

                        carteira:                      14..14,
                        codigo_pagador_cooperativa:    15..19,
                        codigo_pagador_associado:      20..24,
                        nosso_numero_sem_dv:           48..55,
                        nosso_numero_dv:               56,
                        codigo_ocorrencia_retorno:     109..110,
                        data_ocorrencia:               111..116,
                        data_ocorrencia_sacado:        111..116,
                        numero_documento:              117..126,
                        data_vencimento:               147..152,
                        valor_titulo:                  153..165,
                        especie_titulo:                175..175,
                        valor_tarifa:                  176..188,
                        valor_outras_despesas:         189..201,
                        valor_abatimento:              228..240,
                        valor_desconto:                241..253,
                        valor_pago:                    254..266,
                        valor_ocorrencia_sacado:       254..266,
                        valor_liquido:                 254..266,
                        valor_juros_multa:             267..279,
                        valor_outros_creditos:         280..292,

                        motivo_ocorrencia_original_1:  319..320,
                        motivo_ocorrencia_original_2:  321..322,
                        motivo_ocorrencia_original_3:  323..324,
                        motivo_ocorrencia_original_4:  325..326,
                        motivo_ocorrencia_original_5:  327..328,

                        # sacado_documento:              4..17,
                        # agencia_sem_dv:                25..29,
                        # agencia_recebedora_com_dv:     169..173,
                        # banco_recebedor:               166..168,
                        # data_credito:                  296..301,
                    }
                end
            end
        end
    end
end