br_boleto 1.2.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|