br_boleto 1.2.2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile.lock +1 -1
- data/README.markdown +278 -98
- data/br_boleto.gemspec +5 -3
- data/lib/br_boleto/active_model_base.rb +1 -1
- data/lib/br_boleto/association/have_conta.rb +109 -0
- data/lib/br_boleto/association/have_pagador.rb +38 -0
- data/lib/br_boleto/association/have_pagamentos.rb +44 -0
- data/lib/br_boleto/boleto/base.rb +50 -379
- data/lib/br_boleto/boleto/caixa.rb +28 -143
- data/lib/br_boleto/boleto/sicoob.rb +24 -144
- data/lib/br_boleto/conta/base.rb +288 -0
- data/lib/br_boleto/conta/caixa.rb +109 -0
- data/lib/br_boleto/conta/sicoob.rb +64 -0
- data/lib/br_boleto/helper/default_codes.rb +33 -0
- data/lib/br_boleto/helper/format_value.rb +1 -0
- data/lib/br_boleto/helper/number.rb +30 -0
- data/lib/br_boleto/pagador.rb +82 -0
- data/lib/br_boleto/remessa/base.rb +28 -50
- data/lib/br_boleto/remessa/cnab240/base.rb +22 -131
- data/lib/br_boleto/remessa/cnab240/caixa.rb +16 -62
- data/lib/br_boleto/remessa/cnab240/helper/header_arquivo.rb +7 -7
- data/lib/br_boleto/remessa/cnab240/helper/header_lote.rb +6 -6
- data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +22 -22
- data/lib/br_boleto/remessa/cnab240/helper/segmento_q.rb +16 -16
- data/lib/br_boleto/remessa/cnab240/helper/segmento_r.rb +3 -3
- data/lib/br_boleto/remessa/cnab240/helper/segmento_s.rb +3 -3
- data/lib/br_boleto/remessa/cnab240/helper/trailer_arquivo.rb +3 -3
- data/lib/br_boleto/remessa/cnab240/helper/trailer_lote.rb +3 -3
- data/lib/br_boleto/remessa/cnab240/sicoob.rb +36 -73
- data/lib/br_boleto/remessa/cnab400/base.rb +95 -0
- data/lib/br_boleto/remessa/cnab400/helper/detalhe.rb +136 -0
- data/lib/br_boleto/remessa/cnab400/helper/header.rb +114 -0
- data/lib/br_boleto/remessa/cnab400/helper/trailer.rb +50 -0
- data/lib/br_boleto/remessa/cnab400/sicoob.rb +249 -0
- data/lib/br_boleto/remessa/lote.rb +1 -23
- data/lib/br_boleto/remessa/pagamento.rb +188 -51
- data/lib/br_boleto/retorno/base.rb +9 -0
- data/lib/br_boleto/retorno/cnab240/base.rb +2 -10
- data/lib/br_boleto/retorno/cnab400/base.rb +48 -0
- data/lib/br_boleto/retorno/cnab400/sicoob.rb +42 -0
- data/lib/br_boleto/retorno/pagamento.rb +12 -6
- data/lib/br_boleto/string_methods.rb +8 -2
- data/lib/br_boleto/validations.rb +19 -0
- data/lib/br_boleto/version.rb +3 -3
- data/lib/br_boleto.rb +38 -8
- data/lib/config/locales/br-boleto-en.yml +89 -0
- data/lib/config/locales/br-boleto-pt-BR.yml +89 -0
- data/test/br_boleto/association/have_conta_test.rb +319 -0
- data/test/br_boleto/association/have_pagador_test.rb +110 -0
- data/test/br_boleto/association/have_pagamentos_test.rb +113 -0
- data/test/br_boleto/boleto/base_test.rb +127 -201
- data/test/br_boleto/boleto/caixa_test.rb +58 -72
- data/test/br_boleto/boleto/sicoob_test.rb +88 -147
- data/test/br_boleto/conta/base_test.rb +490 -0
- data/test/br_boleto/conta/caixa_test.rb +154 -0
- data/test/br_boleto/conta/sicoob_test.rb +144 -0
- data/test/br_boleto/helper/number_test.rb +29 -0
- data/test/br_boleto/pagador_test.rb +158 -0
- data/test/br_boleto/remessa/base_test.rb +37 -62
- data/test/br_boleto/remessa/cnab240/base_test.rb +75 -95
- data/test/br_boleto/remessa/cnab240/caixa_test.rb +61 -96
- data/test/br_boleto/remessa/cnab240/helper/header_arquivo_test.rb +11 -11
- data/test/br_boleto/remessa/cnab240/helper/header_lote_test.rb +8 -8
- data/test/br_boleto/remessa/cnab240/helper/segmento_p_test.rb +17 -15
- data/test/br_boleto/remessa/cnab240/helper/segmento_q_test.rb +13 -13
- data/test/br_boleto/remessa/cnab240/helper/segmento_r_test.rb +2 -2
- data/test/br_boleto/remessa/cnab240/helper/segmento_s_test.rb +3 -3
- data/test/br_boleto/remessa/cnab240/helper/trailer_arquivo_test.rb +1 -1
- data/test/br_boleto/remessa/cnab240/helper/trailer_lote_test.rb +1 -1
- data/test/br_boleto/remessa/cnab240/sicoob_test.rb +136 -131
- data/test/br_boleto/remessa/cnab400/base_test.rb +263 -0
- data/test/br_boleto/remessa/cnab400/sicoob_test.rb +179 -0
- data/test/br_boleto/remessa/lote_test.rb +2 -41
- data/test/br_boleto/remessa/pagamento_test.rb +186 -188
- data/test/br_boleto/retorno/base_test.rb +0 -1
- data/test/br_boleto/retorno/cnab240/base_test.rb +12 -11
- data/test/br_boleto/retorno/cnab240/caixa_test.rb +11 -11
- data/test/br_boleto/retorno/cnab240/sicoob_test.rb +11 -11
- data/test/br_boleto/retorno/cnab400/sicoob_test.rb +227 -0
- data/test/br_boleto/retorno/pagamento_test.rb +6 -6
- data/test/factories/boleto/base.rb +9 -7
- data/test/factories/boleto/boleto_caixa.rb +2 -9
- data/test/factories/boleto/boleto_sicoob.rb +10 -8
- data/test/factories/conta/base.rb +10 -0
- data/test/factories/conta/caixa.rb +15 -0
- data/test/factories/conta/sicoob.rb +16 -0
- data/test/factories/pagador.rb +15 -0
- data/test/factories/remessa/base.rb +0 -6
- data/test/factories/remessa/cnab240/base.rb +0 -10
- data/test/factories/remessa/cnab240/caixa.rb +1 -6
- data/test/factories/remessa/cnab240/sicoob.rb +1 -10
- data/test/factories/remessa/cnab400/base.rb +8 -0
- data/test/factories/remessa/cnab400/sicoob.rb +8 -0
- data/test/factories/remessa/pagamento.rb +8 -7
- data/test/fixtures/remessa/cnab240/sicoob.rem +8 -0
- data/test/{files → fixtures}/retorno/cnab240/caixa.ret +0 -0
- data/test/{files → fixtures}/retorno/cnab240/padrao240.ret +0 -0
- data/test/fixtures/retorno/cnab400/sicoob.ret +7 -0
- data/test/inheritance/boleto_test.rb +4 -1
- data/test/inheritance/sicoob_test.rb +23 -7
- data/test/test_helper.rb +70 -0
- metadata +63 -6
@@ -23,51 +23,34 @@ module BrBoleto
|
|
23
23
|
#
|
24
24
|
#
|
25
25
|
class Caixa < Base
|
26
|
-
#Modalidades de cobranças válidas conforme a documentação
|
27
|
-
def self.modalidade_cobranca_validas
|
28
|
-
%w(1 2)
|
29
|
-
end
|
30
26
|
|
31
|
-
def
|
32
|
-
|
27
|
+
def conta_class
|
28
|
+
BrBoleto::Conta::Caixa
|
33
29
|
end
|
34
30
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
#
|
40
|
-
def self.tamanho_maximo_agencia
|
41
|
-
4
|
42
|
-
end
|
31
|
+
################# VALIDAÇÕES DINÂMICAS #################
|
32
|
+
def valid_numero_documento_maximum
|
33
|
+
15
|
34
|
+
end
|
43
35
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
#
|
49
|
-
def self.tamanho_maximo_codigo_cedente
|
50
|
-
6
|
51
|
-
end
|
36
|
+
# Tamanho máximo para o codigo_cedente/Convênio
|
37
|
+
def valid_convenio_maximum
|
38
|
+
6
|
39
|
+
end
|
52
40
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
#
|
58
|
-
def self.tamanho_maximo_numero_documento
|
59
|
-
15
|
60
|
-
end
|
41
|
+
# codigo_cedente/Convênio deve ser obrigatório
|
42
|
+
def valid_convenio_required
|
43
|
+
true
|
44
|
+
end
|
61
45
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
end
|
46
|
+
# Carteira deve ter 2 digitos
|
47
|
+
def valid_carteira_length
|
48
|
+
2
|
49
|
+
end
|
50
|
+
def valid_carteira_inclusion
|
51
|
+
%w{14 24}
|
52
|
+
end
|
53
|
+
##########################################################
|
71
54
|
|
72
55
|
# Conforme descrito na documentação, o valor que deve constar em local do pagamento é
|
73
56
|
# "PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE"
|
@@ -78,70 +61,8 @@ module BrBoleto
|
|
78
61
|
})
|
79
62
|
end
|
80
63
|
|
81
|
-
# Validações para os campos abaixo:
|
82
|
-
#
|
83
|
-
# * Agencia
|
84
|
-
# * Codigo Cedente
|
85
|
-
# * Número do documento
|
86
|
-
#
|
87
|
-
# Se você quiser sobrescrever os metodos, <b>ficará a sua responsabilidade.</b>
|
88
|
-
# Basta você sobrescrever os métodos de validação:
|
89
|
-
#
|
90
|
-
# class Caixa < BrBoleto::Core::Caixa
|
91
|
-
# def self.tamanho_maximo_agencia
|
92
|
-
# 6
|
93
|
-
# end
|
94
|
-
#
|
95
|
-
# def self.tamanho_maximo_codigo_cedente
|
96
|
-
# 9
|
97
|
-
# end
|
98
|
-
#
|
99
|
-
# def self.tamanho_maximo_numero_documento
|
100
|
-
# 10
|
101
|
-
# end
|
102
|
-
# end
|
103
|
-
#
|
104
|
-
# Obs.: Mudar as regras de validação podem influenciar na emissão do boleto em si.
|
105
|
-
# Talvez você precise analisar o efeito no #codigo_de_barras e na #linha_digitável (ambos podem ser
|
106
|
-
# sobreescritos também).
|
107
|
-
#
|
108
|
-
validates :agencia, :codigo_cedente, presence: true
|
109
|
-
|
110
|
-
validates :agencia, length: { maximum: tamanho_maximo_agencia }, if: :deve_validar_agencia?
|
111
|
-
validates :codigo_cedente, length: { maximum: tamanho_maximo_codigo_cedente }, if: :deve_validar_codigo_cedente?
|
112
|
-
validates :numero_documento, length: { maximum: tamanho_maximo_numero_documento }, if: :deve_validar_numero_documento?
|
113
|
-
|
114
|
-
validates :carteira, inclusion: { in: ->(object) { object.class.carteiras_suportadas } }, if: :deve_validar_carteira?
|
115
|
-
|
116
|
-
# @return [String] Código do Banco descrito na documentação.
|
117
|
-
#
|
118
|
-
def codigo_banco
|
119
|
-
'104'
|
120
|
-
end
|
121
|
-
|
122
|
-
# @return [String] Dígito do código do banco descrito na documentação.
|
123
|
-
#
|
124
|
-
def digito_codigo_banco
|
125
|
-
'0'
|
126
|
-
end
|
127
|
-
|
128
|
-
# Campo Agência / Código do Cedente
|
129
|
-
#
|
130
|
-
# @return [String]
|
131
|
-
#
|
132
|
-
def agencia_codigo_cedente
|
133
|
-
"#{agencia} / #{codigo_cedente}-#{digito_verificador_codigo_cedente}"
|
134
|
-
end
|
135
|
-
|
136
|
-
def digito_verificador_codigo_cedente
|
137
|
-
BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new(codigo_cedente)
|
138
|
-
end
|
139
|
-
def digito_verificador_codigo_beneficiario
|
140
|
-
digito_verificador_codigo_cedente
|
141
|
-
end
|
142
|
-
|
143
64
|
def digito_verificador_nosso_numero
|
144
|
-
BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new("#{carteira}#{numero_documento}")
|
65
|
+
BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new("#{conta.carteira}#{numero_documento}")
|
145
66
|
end
|
146
67
|
|
147
68
|
# Mostra o campo nosso número calculando o dígito verificador do nosso número.
|
@@ -149,7 +70,7 @@ module BrBoleto
|
|
149
70
|
# @return [String]
|
150
71
|
#
|
151
72
|
def nosso_numero
|
152
|
-
"#{carteira}#{numero_documento}-#{digito_verificador_nosso_numero}"
|
73
|
+
"#{conta.carteira}#{numero_documento}-#{digito_verificador_nosso_numero}"
|
153
74
|
end
|
154
75
|
|
155
76
|
|
@@ -170,17 +91,7 @@ module BrBoleto
|
|
170
91
|
# @return [String]
|
171
92
|
#
|
172
93
|
def tipo_cobranca
|
173
|
-
carteira[0] if carteira.present?
|
174
|
-
end
|
175
|
-
|
176
|
-
# Modalidade de cobrança
|
177
|
-
# As vezes é chamado de modalidade de cobrança e as vezes é chamado de tipo de cobrança
|
178
|
-
# Por isso foi criado o metodo modalidade_cobrança que é a mesma coisa que o tipo_cobranca
|
179
|
-
#
|
180
|
-
# @return [String]
|
181
|
-
#
|
182
|
-
def modalidade_cobranca
|
183
|
-
tipo_cobranca
|
94
|
+
conta.carteira[0] if conta.carteira.present?
|
184
95
|
end
|
185
96
|
|
186
97
|
# O Identificado de Emissão é o 2° e ultimo caracter da carteira
|
@@ -189,35 +100,9 @@ module BrBoleto
|
|
189
100
|
# @return [String]
|
190
101
|
#
|
191
102
|
def identificador_de_emissao
|
192
|
-
carteira.last if carteira.present?
|
193
|
-
end
|
194
|
-
|
195
|
-
# Formata a carteira dependendo se ela é registrada ou não.
|
196
|
-
#
|
197
|
-
# Para cobrança COM registro usar: <b>RG</b>
|
198
|
-
# Para Cobrança SEM registro usar: <b>SR</b>
|
199
|
-
#
|
200
|
-
# @return [String]
|
201
|
-
#
|
202
|
-
def carteira_formatada
|
203
|
-
if carteira.in?(carteiras_com_registro)
|
204
|
-
'RG'
|
205
|
-
else
|
206
|
-
'SR'
|
207
|
-
end
|
103
|
+
conta.carteira.last if conta.carteira.present?
|
208
104
|
end
|
209
105
|
|
210
|
-
# Retorna as carteiras com registro da Caixa Econômica Federal.
|
211
|
-
# <b>Você pode sobrescrever esse método na subclasse caso exista mais
|
212
|
-
# carteiras com registro na Caixa Econômica Federal.</b>
|
213
|
-
#
|
214
|
-
# @return [Array]
|
215
|
-
#
|
216
|
-
def carteiras_com_registro
|
217
|
-
%w(14)
|
218
|
-
end
|
219
|
-
|
220
|
-
|
221
106
|
# === Código de barras do banco
|
222
107
|
#
|
223
108
|
# ________________________________________________________________________________________
|
@@ -243,8 +128,8 @@ module BrBoleto
|
|
243
128
|
|
244
129
|
def composicao_codigo_barras
|
245
130
|
return @composicao_codigo_barras if @composicao_codigo_barras
|
246
|
-
@composicao_codigo_barras = "#{
|
247
|
-
@composicao_codigo_barras << "#{
|
131
|
+
@composicao_codigo_barras = "#{conta.codigo_cedente}"
|
132
|
+
@composicao_codigo_barras << "#{conta.codigo_cedente_dv}"
|
248
133
|
@composicao_codigo_barras << "#{nosso_numero_de_3_a_5}"
|
249
134
|
@composicao_codigo_barras << "#{tipo_cobranca}"
|
250
135
|
@composicao_codigo_barras << "#{nosso_numero_de_6_a_8}"
|
@@ -9,115 +9,32 @@ module BrBoleto
|
|
9
9
|
# 'documentacoes_dos_boletos/sicoob' dentro dessa biblioteca.
|
10
10
|
#
|
11
11
|
class Sicoob < Base
|
12
|
-
|
13
|
-
|
14
|
-
# '1/01' - Simples com registro
|
15
|
-
# '1/02' - Simples sem registro
|
16
|
-
# '3/03' - Garantida Caucionada
|
17
|
-
#
|
18
|
-
attr_accessor :modalidade_cobranca
|
19
|
-
|
20
|
-
def modalidade_cobranca
|
21
|
-
if @modalidade_cobranca.present?
|
22
|
-
@modalidade_cobranca.to_s.rjust(2, '0')
|
23
|
-
else
|
24
|
-
'01'
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
#Modalidades de cobranças válidas conforme a documentação
|
29
|
-
def self.modalidade_cobranca_validas
|
30
|
-
%{'01' '02' '03'}
|
31
|
-
end
|
32
|
-
|
33
|
-
def deve_validar_modalidade_cobranca?
|
34
|
-
true
|
12
|
+
def conta_class
|
13
|
+
BrBoleto::Conta::Sicoob
|
35
14
|
end
|
36
15
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
else
|
44
|
-
'001'
|
16
|
+
################# VALIDAÇÕES DINÂMICAS #################
|
17
|
+
def valid_numero_documento_maximum
|
18
|
+
7
|
19
|
+
end
|
20
|
+
def valid_modalidade_inclusion
|
21
|
+
%w{01 02 03}
|
45
22
|
end
|
46
|
-
end
|
47
|
-
|
48
|
-
|
49
|
-
# Tamanho máximo de uma agência no Banco Sicoob.
|
50
|
-
# <b>Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.</b>
|
51
|
-
#
|
52
|
-
# @return [Fixnum] 4
|
53
|
-
#
|
54
|
-
def self.tamanho_maximo_agencia
|
55
|
-
4
|
56
|
-
end
|
57
|
-
|
58
|
-
# Tamanho máximo do codigo cedente no Banco Sicoob.
|
59
|
-
# <b>Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.</b>
|
60
|
-
#
|
61
|
-
# @return [Fixnum] 7
|
62
|
-
#
|
63
|
-
def self.tamanho_maximo_codigo_cedente
|
64
|
-
7
|
65
|
-
end
|
66
|
-
|
67
|
-
# Tamanho máximo do numero do documento no Boleto.
|
68
|
-
# <b>Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.</b>
|
69
|
-
#
|
70
|
-
# @return [Fixnum] 6
|
71
|
-
#
|
72
|
-
def self.tamanho_maximo_numero_documento
|
73
|
-
7
|
74
|
-
end
|
75
|
-
|
76
|
-
# <b>Carteiras suportadas.</b>
|
77
|
-
#
|
78
|
-
# <b>Método criado para validar se a carteira informada é suportada.</b>
|
79
|
-
#
|
80
|
-
# @return [Array]
|
81
|
-
#
|
82
|
-
def self.carteiras_suportadas
|
83
|
-
%w[1 3]
|
84
|
-
end
|
85
|
-
|
86
|
-
# Validações para os campos abaixo:
|
87
|
-
#
|
88
|
-
# * Agencia
|
89
|
-
# * Codigo Cedente
|
90
|
-
# * Número do documento
|
91
|
-
#
|
92
|
-
# Se você quiser sobrescrever os metodos, <b>ficará a sua responsabilidade.</b>
|
93
|
-
# Basta você sobrescrever os métodos de validação:
|
94
|
-
#
|
95
|
-
# class Sicoob < BrBoleto::Core::Sicoob
|
96
|
-
# def self.tamanho_maximo_agencia
|
97
|
-
# 6
|
98
|
-
# end
|
99
|
-
#
|
100
|
-
# def self.tamanho_maximo_codigo_cedente
|
101
|
-
# 9
|
102
|
-
# end
|
103
|
-
#
|
104
|
-
# def self.tamanho_maximo_numero_documento
|
105
|
-
# 10
|
106
|
-
# end
|
107
|
-
# end
|
108
|
-
#
|
109
|
-
# Obs.: Mudar as regras de validação podem influenciar na emissão do boleto em si.
|
110
|
-
# Talvez você precise analisar o efeito no #codigo_de_barras e na #linha_digitável (ambos podem ser
|
111
|
-
# sobreescritos também).
|
112
|
-
#
|
113
|
-
validates :agencia, :codigo_cedente, presence: true
|
114
23
|
|
115
|
-
|
116
|
-
|
117
|
-
|
24
|
+
def valid_carteira_inclusion
|
25
|
+
%w[1 3]
|
26
|
+
end
|
27
|
+
|
28
|
+
# Tamanho máximo para o codigo_cedente/Convênio
|
29
|
+
def valid_convenio_maximum
|
30
|
+
6
|
31
|
+
end
|
118
32
|
|
119
|
-
|
120
|
-
|
33
|
+
# codigo_cedente/Convênio deve ser obrigatório
|
34
|
+
def valid_convenio_required
|
35
|
+
true
|
36
|
+
end
|
37
|
+
##########################################################
|
121
38
|
|
122
39
|
def default_values
|
123
40
|
super.merge({
|
@@ -125,26 +42,6 @@ module BrBoleto
|
|
125
42
|
})
|
126
43
|
end
|
127
44
|
|
128
|
-
# @return [String] Código do Banco descrito na documentação.
|
129
|
-
#
|
130
|
-
def codigo_banco
|
131
|
-
'756'
|
132
|
-
end
|
133
|
-
|
134
|
-
# @return [String] Dígito do código do banco descrito na documentação.
|
135
|
-
#
|
136
|
-
def digito_codigo_banco
|
137
|
-
'0'
|
138
|
-
end
|
139
|
-
|
140
|
-
# Campo Agência / Código do Cedente
|
141
|
-
#
|
142
|
-
# @return [String]
|
143
|
-
#
|
144
|
-
def agencia_codigo_cedente
|
145
|
-
"#{agencia} / #{codigo_cedente}"
|
146
|
-
end
|
147
|
-
|
148
45
|
# O nosso número descrino na documentação é formado pelo numero do documento mais o digito
|
149
46
|
# verificador no nosso_numero, que é um cálculo descrito na documentação.
|
150
47
|
#
|
@@ -154,24 +51,6 @@ module BrBoleto
|
|
154
51
|
"#{numero_documento}-#{digito_verificador_nosso_numero}"
|
155
52
|
end
|
156
53
|
|
157
|
-
# Tipo de cobrança
|
158
|
-
# Ex: :com_registro, :sem_registro, :garantia_caucionada
|
159
|
-
#
|
160
|
-
# Obs: O VALOR DESSE METODO NÃO INFLUÊNCIA NA GERAÇÃO DO BOLETO
|
161
|
-
# É APENAS PARA QUESTÃO DE INFORMAÇÃO CASO PRECISE PARA OUTRAS COISAS.
|
162
|
-
#
|
163
|
-
def tipo_cobranca_formatada
|
164
|
-
case "#{modalidade_cobranca}".rjust(2, "0")
|
165
|
-
when '01'
|
166
|
-
:com_registro
|
167
|
-
when '02'
|
168
|
-
:sem_registro
|
169
|
-
when '03'
|
170
|
-
:caucionada
|
171
|
-
end
|
172
|
-
end
|
173
|
-
|
174
|
-
|
175
54
|
# === Código de barras do banco
|
176
55
|
#
|
177
56
|
# ___________________________________________________________
|
@@ -184,15 +63,16 @@ module BrBoleto
|
|
184
63
|
# | 34 - 41 | 08 | Nosso Número do título |
|
185
64
|
# | 42 - 44 | 03 | Número da Parcela do Título (001) |
|
186
65
|
# |___________________________________________________________|
|
66
|
+
# Tamanho total: 25
|
187
67
|
#
|
188
68
|
# @return [String]
|
189
69
|
#
|
190
70
|
def codigo_de_barras_do_banco
|
191
|
-
"#{carteira}#{agencia}#{
|
71
|
+
"#{conta.carteira}#{conta.agencia}#{conta.modalidade}#{conta.codigo_cedente}#{conta.codigo_cedente_dv}#{nosso_numero.gsub('-','')}#{parcelas}"
|
192
72
|
end
|
193
73
|
|
194
74
|
def digito_verificador_nosso_numero
|
195
|
-
BrBoleto::Calculos::Modulo11Fator3197.new("#{agencia}#{codigo_cedente.rjust(
|
75
|
+
BrBoleto::Calculos::Modulo11Fator3197.new("#{conta.agencia}#{conta.codigo_cedente.rjust(9, '0')}#{conta.codigo_cedente_dv}#{numero_documento}")
|
196
76
|
end
|
197
77
|
end
|
198
78
|
end
|