br_boleto 2.1.0 → 2.2.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.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.markdown +157 -8
  5. data/br_boleto.gemspec +1 -1
  6. data/lib/br_boleto.rb +12 -1
  7. data/lib/br_boleto/association/have_conta.rb +31 -27
  8. data/lib/br_boleto/boleto/banco_brasil.rb +130 -0
  9. data/lib/br_boleto/boleto/santander.rb +77 -0
  10. data/lib/br_boleto/conta/banco_brasil.rb +156 -0
  11. data/lib/br_boleto/conta/itau.rb +8 -3
  12. data/lib/br_boleto/conta/santander.rb +208 -0
  13. data/lib/br_boleto/remessa/cnab240/banco_brasil.rb +132 -0
  14. data/lib/br_boleto/remessa/cnab240/bradesco.rb +1 -3
  15. data/lib/br_boleto/remessa/cnab240/itau.rb +0 -6
  16. data/lib/br_boleto/remessa/cnab240/santander.rb +266 -0
  17. data/lib/br_boleto/remessa/cnab400/banco_brasil.rb +264 -0
  18. data/lib/br_boleto/remessa/cnab400/bradesco.rb +1 -1
  19. data/lib/br_boleto/remessa/cnab400/santander.rb +215 -0
  20. data/lib/br_boleto/retorno/cnab240/banco_brasil.rb +10 -0
  21. data/lib/br_boleto/retorno/cnab240/base.rb +3 -2
  22. data/lib/br_boleto/retorno/cnab240/caixa.rb +3 -2
  23. data/lib/br_boleto/retorno/cnab240/itau.rb +1 -2
  24. data/lib/br_boleto/retorno/cnab240/santander.rb +38 -0
  25. data/lib/br_boleto/retorno/cnab240/sicoob.rb +3 -2
  26. data/lib/br_boleto/retorno/cnab400/banco_brasil.rb +46 -0
  27. data/lib/br_boleto/retorno/cnab400/bradesco.rb +4 -3
  28. data/lib/br_boleto/retorno/cnab400/itau.rb +2 -2
  29. data/lib/br_boleto/retorno/cnab400/santander.rb +44 -0
  30. data/lib/br_boleto/retorno/cnab400/sicoob.rb +3 -2
  31. data/lib/br_boleto/retorno/cnab400/sicredi.rb +20 -6
  32. data/lib/br_boleto/retorno/pagamento.rb +28 -7
  33. data/lib/br_boleto/version.rb +1 -1
  34. data/test/br_boleto/boleto/banco_brasil_test.rb +183 -0
  35. data/test/br_boleto/boleto/santander_test.rb +122 -0
  36. data/test/br_boleto/conta/banco_brasil_test.rb +209 -0
  37. data/test/br_boleto/conta/santantader_test.rb +222 -0
  38. data/test/br_boleto/remessa/cnab240/banco_brasil_test.rb +187 -0
  39. data/test/br_boleto/remessa/cnab240/itau_test.rb +4 -0
  40. data/test/br_boleto/remessa/cnab240/santander_test.rb +144 -0
  41. data/test/br_boleto/remessa/cnab400/banco_brasil_test.rb +285 -0
  42. data/test/br_boleto/remessa/cnab400/bradesco_test.rb +7 -0
  43. data/test/br_boleto/remessa/cnab400/santander_test.rb +174 -0
  44. data/test/br_boleto/retorno/cnab240/banco_brasil_test.rb +271 -0
  45. data/test/br_boleto/retorno/cnab240/base_test.rb +20 -10
  46. data/test/br_boleto/retorno/cnab240/bradesco_test.rb +15 -15
  47. data/test/br_boleto/retorno/cnab240/caixa_test.rb +10 -10
  48. data/test/br_boleto/retorno/cnab240/cecred_test.rb +55 -138
  49. data/test/br_boleto/retorno/cnab240/itau_test.rb +15 -15
  50. data/test/br_boleto/retorno/cnab240/santander_test.rb +282 -0
  51. data/test/br_boleto/retorno/cnab240/sicoob_test.rb +25 -15
  52. data/test/br_boleto/retorno/cnab240/sicredi_test.rb +15 -15
  53. data/test/br_boleto/retorno/cnab240/unicred_test.rb +15 -15
  54. data/test/br_boleto/retorno/cnab400/banco_brasil_test.rb +7 -0
  55. data/test/br_boleto/retorno/cnab400/bradesco_test.rb +24 -12
  56. data/test/br_boleto/retorno/cnab400/itau_test.rb +6 -4
  57. data/test/br_boleto/retorno/cnab400/santander_test.rb +7 -0
  58. data/test/br_boleto/retorno/cnab400/sicoob_test.rb +20 -10
  59. data/test/br_boleto/retorno/cnab400/sicredi_test.rb +97 -1
  60. data/test/br_boleto/retorno/cnab400/unicred.rb +18 -18
  61. data/test/br_boleto/retorno/pagamento_test.rb +2 -2
  62. data/test/factories/boleto/boleto_banco_brasil.rb +18 -0
  63. data/test/factories/boleto/boleto_santander.rb +18 -0
  64. data/test/factories/conta/banco_brasil.rb +16 -0
  65. data/test/factories/conta/santander.rb +15 -0
  66. data/test/factories/remessa/cnab240/banco_brasil.rb +9 -0
  67. data/test/factories/remessa/cnab240/santander.rb +9 -0
  68. data/test/factories/remessa/cnab400/banco_brasil.rb +8 -0
  69. data/test/factories/remessa/cnab400/santander.rb +8 -0
  70. data/test/fixtures/retorno/cnab240/banco_brasil.ret +74 -0
  71. data/test/fixtures/retorno/cnab240/cecred.ret +10 -0
  72. data/test/fixtures/retorno/cnab240/santander.ret +16 -0
  73. data/test/fixtures/retorno/cnab400/sicredi.ret +4 -0
  74. metadata +64 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 020fd56f017584d8546fcf0cca4b7c5303fa9a3e
4
- data.tar.gz: 2c646b4f9b5e04dddd16a3887e35e0a0c01e4324
3
+ metadata.gz: 9e63b6bade6f42bb9fa2642ddd95632c7d9d0b57
4
+ data.tar.gz: 8624d1e332aad837ebb4d099fcc9e72211375f56
5
5
  SHA512:
6
- metadata.gz: 4c2d14b4e5d366fb891681d90d841cf91e2b03101da60faad9932b1b39ee5384d79cd79a125a96f5511f88ca845c25ff9e719bc4e950aef443fd5a6cd4e832e1
7
- data.tar.gz: e574dbdf4449c629f57248932a082199c03cc30bf4de4bd59452c86f08987fa9e5252574978c39405ecb07e7e4b6e3272d73b30c83eff364e8d5048e60a77e24
6
+ metadata.gz: 670443799e6482b64e9bd57426d0446f0efe503c3676714f43f1701742b68f963f4d039749cd2374a413ee073566d031a61648540a25febfb2d280cc03111aa0
7
+ data.tar.gz: 3ee9191d6629c296623abc1506e365122ca7052f07e58d60e09dc123285cd4bf6fbd604c2fa359b42c58fdd14190957aef7b8c5117dcc70e83f8326210018c53
@@ -1,3 +1,4 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - 2.2.0
3
4
  - 2.3.0
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- br_boleto (2.1.0)
4
+ br_boleto (2.2.0)
5
5
  activemodel (~> 4.2)
6
6
  activesupport (~> 4.2)
7
7
  rake (>= 0.8.7)
@@ -9,14 +9,35 @@ Emissão de Boletos Bancários em Ruby.
9
9
  **O que essa gem faz?**
10
10
 
11
11
  1. Boleto bancário (apenas os cálculos para o boleto, sem a interface) para os bancos:
12
- - Sicoob
13
- - Caixa (em andamento)
12
+ - Banco do Brasil (em andamento)
13
+ - Bradesco (em andamento)
14
+ - Caixa
15
+ - Cecred
16
+ - Itaú (em andamento)
17
+ - Santander (em andamento)
18
+ - Sicoob
19
+ - Sicredi
20
+ - Unicred
14
21
  2. Arquivo de remessa para os Bancos:
15
- - Sicoob (CNAB 240 e CNAB400)
16
- - Caixa (CNAB 240)
22
+ - Banco do Brasil (CNAB240 e CNAB400)
23
+ - Bradesco (CNAB240 e CNAB400)
24
+ - Caixa (CNAB240)
25
+ - Cecred (CNAB240)
26
+ - Itaú (CNAB240 e CNAB400)
27
+ - Santander (CNAB240 e CNAB400)
28
+ - Sicoob (CNAB240 e CNAB400)
29
+ - Sicredi (CNAB240 e CNAB400)
30
+ - Unicred (CNAB240 e CNAB400)
17
31
  3. Arquivo de retorno para os Bancos:
18
- - Sicoob (CNAB 240 e CNAB400)
19
- - Caixa (CNAB 240)
32
+ - Banco do Brasil (CNAB240 e CNAB400)
33
+ - Bradesco (CNAB240 e CNAB400)
34
+ - Caixa (CNAB240)
35
+ - Cecred (CNAB240)
36
+ - Itaú (CNAB240 e CNAB400)
37
+ - Santander (CNAB240 e CNAB400)
38
+ - Sicoob (CNAB240 e CNAB400)
39
+ - Sicredi (CNAB240 e CNAB400)
40
+ - Unicred (CNAB240 e CNAB400)
20
41
 
21
42
 
22
43
 
@@ -33,7 +54,15 @@ Emissão de Boletos Bancários em Ruby.
33
54
 
34
55
  Seguimos as documentações descritas abaixo:
35
56
 
57
+ * [Banco do Brasil](documentacoes_boletos/Banco do Brasil)
58
+ * [Bradesco](documentacoes_boletos/Bradesco)
59
+ * [Caixa](documentacoes_boletos/Caixa)
60
+ * [Cecred](documentacoes_boletos/cecred)
61
+ * [Itaú](documentacoes_boletos/Itaú)
62
+ * [Santander](documentacoes_boletos/Santander)
36
63
  * [Sicoob](documentacoes_boletos/Sicoob)
64
+ * [Sicredi](documentacoes_boletos/Sicredi)
65
+ * [Unicred](documentacoes_boletos/Unicred)
37
66
 
38
67
 
39
68
  ## Bancos Suportados
@@ -57,8 +86,50 @@ Para todos os bancos e carteiras implementadas, **seguimos as documentações**
57
86
  <tr>
58
87
  <td>Caixa</td>
59
88
  <td>1, 2.</td>
89
+ <td>Homologado dia 11/11/2016</td>
90
+ <td>Bruno M. Mergen</td>
91
+ </tr>
92
+ <tr>
93
+ <td>Cecred</td>
94
+ <td>1.</td>
95
+ <td>Homologado dia 07/11/2016</td>
96
+ <td>Ricardo Zanuzzo</td>
97
+ </tr>
98
+ <tr>
99
+ <td>Unicred</td>
100
+ <td>09.</td>
101
+ <td>Homologado dia 11/11/2016</td>
102
+ <td>Ricardo Zanuzzo</td>
103
+ </tr>
104
+ <tr>
105
+ <td>Sicredi</td>
106
+ <td>1, 3.</td>
107
+ <td>Homologado dia 17/11/2016</td>
108
+ <td>Ricardo Zanuzzo</td>
109
+ </tr>
110
+ <tr>
111
+ <td>Banco do Brasil</td>
112
+ <td>11, 12, 15, 16, 17, 18, 31, 51.</td>
113
+ <td>Pendente</td>
114
+ <td>Ricardo Zanuzzo</td>
115
+ </tr>
116
+ <tr>
117
+ <td>Bradesco</td>
118
+ <td>06, 09, 19, 21, 22.</td>
119
+ <td>Pendente</td>
120
+ <td>Ricardo Zanuzzo</td>
121
+ </tr>
122
+ <tr>
123
+ <td>Itaú</td>
124
+ <td>104, 105, 107, 108, 109, 112, 113, 116, 117, 119, 121, 122, 126, 131, 134, 135, 136, 142, 143, 146, 147, 150, 168, 169, 174, 175, 180, 191, 196, 198.</td>
125
+ <td>Pendente</td>
126
+ <td>Ricardo Zanuzzo</td>
127
+ </tr>
128
+ <tr>
129
+ <td>Santander</td>
130
+ <td>101, 102, 121.</td>
60
131
  <td>Pendente</td>
61
- <td></td>
132
+ <td>Ricardo Zanuzzo</td>
62
133
  </tr>
63
134
  </table>
64
135
 
@@ -89,8 +160,86 @@ Para todos os bancos e carteiras implementadas, **seguimos as documentações**
89
160
  <tr>
90
161
  <td>Caixa</td>
91
162
  <td>240</td>
163
+ <td>Homologado dia 11/11/2016</td>
164
+ <td>Bruno M. Merge</td>
165
+ </tr>
166
+ <tr>
167
+ <td>Cecred</td>
168
+ <td>240</td>
169
+ <td>Homologado dia 07/11/2016</td>
170
+ <td>Ricardo Zanuzzo</td>
171
+ </tr>
172
+ <tr>
173
+ <td>Unicred</td>
174
+ <td>240</td>
175
+ <td>Homologado dia 11/11/2016</td>
176
+ <td>Ricardo Zanuzzo</td>
177
+ </tr>
178
+ <tr>
179
+ <td>Unicred</td>
180
+ <td>400</td>
181
+ <td>Pendente</td>
182
+ <td>Ricardo Zanuzzo</td>
183
+ </tr>
184
+ <tr>
185
+ <td>Sicredi</td>
186
+ <td>240</td>
187
+ <td>Homologado dia 17/11/2016</td>
188
+ <td>Ricardo Zanuzzo</td>
189
+ </tr>
190
+ <tr>
191
+ <td>Sicredi</td>
192
+ <td>400</td>
193
+ <td>Pendente</td>
194
+ <td>Ricardo Zanuzzo</td>
195
+ </tr>
196
+ <tr>
197
+ <td>Banco do Brasil</td>
198
+ <td>240</td>
199
+ <td>Pendente</td>
200
+ <td>Ricardo Zanuzzo</td>
201
+ </tr>
202
+ <tr>
203
+ <td>Banco do Brasil</td>
204
+ <td>400</td>
205
+ <td>Pendente</td>
206
+ <td>Ricardo Zanuzzo</td>
207
+ </tr>
208
+ <tr>
209
+ <td>Bradesco</td>
210
+ <td>240</td>
211
+ <td>Pendente</td>
212
+ <td>Ricardo Zanuzzo</td>
213
+ </tr>
214
+ <tr>
215
+ <td>Bradesco</td>
216
+ <td>400</td>
217
+ <td>Pendente</td>
218
+ <td>Ricardo Zanuzzo</td>
219
+ </tr>
220
+ <tr>
221
+ <td>Itaú</td>
222
+ <td>240</td>
223
+ <td>Pendente</td>
224
+ <td>Ricardo Zanuzzo</td>
225
+ </tr>
226
+ <tr>
227
+ <td>Itaú</td>
228
+ <td>400</td>
229
+ <td>Pendente</td>
230
+ <td>Ricardo Zanuzzo</td>
231
+ </tr>
232
+ <tr>
233
+ <td>Santander</td>
234
+ <td>240</td>
235
+ <td>Pendente</td>
236
+ <td>Ricardo Zanuzzo</td>
237
+ </tr>
238
+ <tr>
239
+ <td>Santander</td>
240
+ <td>400</td>
92
241
  <td>Pendente</td>
93
- <td></td>
242
+ <td>Ricardo Zanuzzo</td>
94
243
  </tr>
95
244
  </table>
96
245
 
@@ -19,7 +19,7 @@ Gem::Specification.new do |gem|
19
19
  # gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
20
20
  gem.require_paths = ["lib"]
21
21
 
22
- gem.required_ruby_version = ['~> 2.2', '~> 2.3']
22
+ gem.required_ruby_version = '>= 2.2.0'
23
23
 
24
24
 
25
25
  gem.add_dependency "rake", '>= 0.8.7'
@@ -77,6 +77,8 @@ module BrBoleto
77
77
  autoload :Sicredi
78
78
  autoload :Cecred
79
79
  autoload :Itau
80
+ autoload :BancoBrasil
81
+ autoload :Santander
80
82
  end
81
83
 
82
84
  module Boleto
@@ -90,6 +92,8 @@ module BrBoleto
90
92
  autoload :Sicredi
91
93
  autoload :Cecred
92
94
  autoload :Itau
95
+ autoload :BancoBrasil
96
+ autoload :Santander
93
97
  end
94
98
 
95
99
 
@@ -109,6 +113,8 @@ module BrBoleto
109
113
  autoload :Sicredi
110
114
  autoload :Cecred
111
115
  autoload :Itau
116
+ autoload :BancoBrasil
117
+ autoload :Santander
112
118
  end
113
119
  module Cnab400
114
120
  extend ActiveSupport::Autoload
@@ -118,6 +124,8 @@ module BrBoleto
118
124
  autoload :Unicred
119
125
  autoload :Sicredi
120
126
  autoload :Itau
127
+ autoload :BancoBrasil
128
+ autoload :Santander
121
129
  end
122
130
  end
123
131
 
@@ -135,6 +143,8 @@ module BrBoleto
135
143
  autoload :Sicredi
136
144
  autoload :Cecred
137
145
  autoload :Itau
146
+ autoload :BancoBrasil
147
+ autoload :Santander
138
148
  end
139
149
  module Cnab400
140
150
  extend ActiveSupport::Autoload
@@ -144,11 +154,12 @@ module BrBoleto
144
154
  autoload :Unicred
145
155
  autoload :Sicredi
146
156
  autoload :Itau
157
+ autoload :BancoBrasil
158
+ autoload :Santander
147
159
  end
148
160
  end
149
161
 
150
162
 
151
-
152
163
  # Módulo que possui classes que realizam os cálculos dos campos que serão mostrados nos boletos.
153
164
  #
154
165
  module Calculos
@@ -33,32 +33,34 @@ module BrBoleto
33
33
 
34
34
  ####################### VALIDAÇÔES DA CONTA #######################
35
35
  # Devem ser sobrescrita a cada classe que utilizar, pois pode variar
36
- def valid_conta_corrente_length; end
37
- def valid_conta_corrente_minimum; end
38
- def valid_conta_corrente_maximum; end
39
- def valid_conta_corrente_required; end
40
- def valid_modalidade_length; end
41
- def valid_modalidade_minimum; end
42
- def valid_modalidade_maximum; end
43
- def valid_modalidade_required; end
44
- def valid_codigo_cedente_length; end
45
- def valid_codigo_cedente_minimum; end
46
- def valid_codigo_cedente_maximum; end
47
- def valid_codigo_cedente_required; end
48
- def valid_codigo_cedente_inclusion; end
49
- def valid_endereco_required; end
50
- def valid_carteira_length; end
51
- def valid_carteira_minimum; end
52
- def valid_carteira_maximum; end
53
- def valid_carteira_required; end
54
- def valid_convenio_length; end
55
- def valid_convenio_minimum; end
56
- def valid_convenio_maximum; end
57
- def valid_convenio_required; end
58
- def valid_modalidade_inclusion; end
59
- def valid_carteira_inclusion; end
60
- def valid_convenio_inclusion; end
61
- def valid_versao_aplicativo_required; end # Banco da Caixa
36
+ def valid_conta_corrente_length; end
37
+ def valid_conta_corrente_minimum; end
38
+ def valid_conta_corrente_maximum; end
39
+ def valid_conta_corrente_required; end
40
+ def valid_modalidade_length; end
41
+ def valid_modalidade_minimum; end
42
+ def valid_modalidade_maximum; end
43
+ def valid_modalidade_required; end
44
+ def valid_codigo_cedente_length; end
45
+ def valid_codigo_cedente_minimum; end
46
+ def valid_codigo_cedente_maximum; end
47
+ def valid_codigo_cedente_required; end
48
+ def valid_codigo_cedente_inclusion; end
49
+ def valid_endereco_required; end
50
+ def valid_carteira_length; end
51
+ def valid_carteira_minimum; end
52
+ def valid_carteira_maximum; end
53
+ def valid_carteira_required; end
54
+ def valid_convenio_length; end
55
+ def valid_convenio_minimum; end
56
+ def valid_convenio_maximum; end
57
+ def valid_convenio_required; end
58
+ def valid_modalidade_inclusion; end
59
+ def valid_carteira_inclusion; end
60
+ def valid_convenio_inclusion; end
61
+ def valid_versao_aplicativo_required; end # Banco da Caixa
62
+ def valid_variacao_carteira_required; end # Banco do Brasil
63
+ def valid_codigo_transmissao_required; end # Banco Santander
62
64
 
63
65
 
64
66
  def set_regras_tamanho_e_validations!
@@ -95,7 +97,9 @@ module BrBoleto
95
97
  @conta.valid_convenio_required = valid_convenio_required if "#{valid_convenio_required}".present?
96
98
  @conta.valid_convenio_inclusion = valid_convenio_inclusion if "#{valid_convenio_inclusion}".present?
97
99
 
98
- @conta.valid_versao_aplicativo_required = valid_versao_aplicativo_required if "#{valid_versao_aplicativo_required}".present?
100
+ @conta.valid_versao_aplicativo_required = valid_versao_aplicativo_required if "#{valid_versao_aplicativo_required}".present?
101
+ @conta.valid_variacao_carteira_required = valid_variacao_carteira_required if "#{valid_variacao_carteira_required}".present?
102
+ @conta.valid_codigo_transmissao_required = valid_codigo_transmissao_required if "#{valid_codigo_transmissao_required}".present?
99
103
 
100
104
  end
101
105
 
@@ -0,0 +1,130 @@
1
+ # encoding: utf-8
2
+ module BrBoleto
3
+ module Boleto
4
+ # Implementação de emissão de boleto bancário pelo Banco BancoBrasil.
5
+ #
6
+ # === Documentação Implementada
7
+ #
8
+ # A documentação na qual essa implementação foi baseada está localizada na pasta
9
+ # 'documentacoes_dos_boletos/bradesco' dentro dessa biblioteca.
10
+ class BancoBrasil < Base
11
+ def conta_class
12
+ BrBoleto::Conta::BancoBrasil
13
+ end
14
+
15
+ ################# VALIDAÇÕES DINÂMICAS #################
16
+ def valid_numero_documento_maximum
17
+ numero_documento_esperado[conta.convenio.to_s.size]
18
+ end
19
+
20
+ def valid_carteira_inclusion
21
+ %w[11 12 15 16 17 18 31 51]
22
+ end
23
+
24
+ # Tamanho máximo de uma conta corrente no Banco BancoBrasil
25
+ def valid_conta_corrente_maximum
26
+ 8
27
+ end
28
+
29
+ # Tamanho máximo para o codigo_cedente/Convênio
30
+ # def valid_convenio_maximum
31
+ # 8
32
+ # end
33
+
34
+ # codigo_cedente/Convênio deve ser obrigatório
35
+ def valid_convenio_required
36
+ true
37
+ end
38
+ ##########################################################
39
+
40
+ # === Código do Convênio VS. Número do Documento
41
+ #
42
+ # No caso do Banco do Brasil, o tamanho do código do cedente ditará o tamanho do número do documento.
43
+ # Ou seja, quando o código do cedente for X, o tamanho do número do documento deverá ser Y.
44
+ # Segue abaixo:
45
+ # ______________________________________________________________
46
+ # | Tamanho do Código Cedente | Tamanho do Número do documento |
47
+ # |----------------------------|--------------------------------|
48
+ # | 04 | 07 |
49
+ # | 06 | 05 |
50
+ # | 07 | 10 |
51
+ # | 08 | 09 |
52
+ # ---------------------------------------------------------------
53
+ #
54
+ def numero_documento_esperado
55
+ { 0 => 0, 4 => 7, 6 => 5, 7 => 10, 8 => 9 }
56
+ end
57
+
58
+
59
+ # Conforme descrito na documentação, o valor que deve constar em local do pagamento é
60
+ # "Pagável em qualquer banco até o vencimento. Após, atualize o boleto no site bb.com.br"
61
+ def default_values
62
+ super.merge({
63
+ :local_pagamento => 'Pagável em qualquer banco até o vencimento. Após, atualize o boleto no site bb.com.br'
64
+ })
65
+ end
66
+
67
+ # Nosso Número descrito na documentação (Pag. 18 a 22):
68
+ #
69
+ # ==== Código do Convênio (4 dígitos) Número do Documento (7 dígitos) - Nosso número DV
70
+ # Exemplo: 44447777777-D
71
+ #
72
+ # ==== Código do Convênio (6 dígitos) Número do Documento (5 dígitos) - Nosso número DV
73
+ # Exemplo: 66666655555-D
74
+ #
75
+ # ==== Código do Convênio (7 dígitos) Número do Documento (10 digitos)
76
+ # Exemplo: 77777771010101010
77
+ #
78
+ # ==== Código do Convênio (8 dígitos) Número do Documento (9 dígitos)
79
+ # Exemplo: 88888888999999999
80
+ #
81
+ def nosso_numero
82
+ tamanho = conta.convenio.to_s.size
83
+ if tamanho == 7 or tamanho == 8
84
+ "#{conta.convenio}#{numero_documento}"
85
+ else
86
+ "#{conta.convenio}#{numero_documento}-#{digito_verificador_nosso_numero}"
87
+ end
88
+ end
89
+
90
+ # Para o cálculo do dígito, será necessário acrescentar o código do convenio
91
+ # antes do Nosso Número (número do documento), e aplicar o módulo 11, com fatores de 2 a 7.
92
+ # @return [String] Retorno do cálculo do módulo 11 na base 7 (2,3,4,5,6,7)
93
+ def digito_verificador_nosso_numero
94
+ BrBoleto::Calculos::Modulo11FatorDe9a2RestoX.new("#{conta.convenio}#{numero_documento}")
95
+ end
96
+
97
+ # === Código de barras do banco com Convênio de 4 e 6 dígitos
98
+ # ___________________________________________________________________________
99
+ # | Posição | Tamanho | Descrição |
100
+ # |-----------------|---------------|-----------------------------------------|
101
+ # | 20-30 | 11 | Nosso-Número, sem dígito verificador |
102
+ # | 20-23 ou 20-25 | 4 ou 6 | Código do cedente fornecido pelo Banco |
103
+ # | 24-30 ou 26-30 | 7 ou 5 | Nosso-Número, sem dígito verificador |
104
+ # | 31-34 | 04 | Agência (sem o dígito) |
105
+ # | 35-42 | 08 | Conta corrente (sem o dígito) |
106
+ # | 43-44 | 02 | Carteira |
107
+ # -----------------------------------------------------------------------------
108
+ #
109
+ # === Código de barras do banco com Convênio de 7 e 8 dígitos
110
+ # ___________________________________________________________________________
111
+ # | Posição | Tamanho | Descrição |
112
+ # |-----------------|---------------|-----------------------------------------|
113
+ # | 20-30 | 17 | Nosso-Número, sem dígito verificador |
114
+ # | 20-32 ou 20-33 | 7 ou 8 | Código do cedente fornecido pelo Banco |
115
+ # | 33-42 ou 34-42 | 9 ou 10 | Nosso-Número, sem dígito verificador |
116
+ # | 43-44 | 02 | Carteira |
117
+ # ----------------------------------------------------------------------------
118
+ #
119
+ def codigo_de_barras_do_banco
120
+ tamanho = conta.convenio.to_s.size
121
+ if tamanho == 7 or tamanho == 8
122
+ "000000#{conta.convenio}#{numero_documento}#{conta.carteira}"
123
+ else
124
+ "#{conta.convenio}#{numero_documento}#{conta.agencia}#{conta.conta_corrente}#{conta.carteira}"
125
+ end
126
+ end
127
+
128
+ end
129
+ end
130
+ end