brcobranca 9.2.4 → 10.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (193) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -9
  3. data/HISTORY.md +71 -0
  4. data/README.md +47 -54
  5. data/Rakefile +4 -4
  6. data/lib/brcobranca/arquivos/logos/ailos.eps +412 -0
  7. data/lib/brcobranca/arquivos/logos/ailos_carne.eps +412 -0
  8. data/lib/brcobranca/arquivos/logos/safra.eps +0 -0
  9. data/lib/brcobranca/arquivos/logos/safra_carne.eps +0 -0
  10. data/lib/brcobranca/boleto/{cecred.rb → ailos.rb} +7 -5
  11. data/lib/brcobranca/boleto/banco_brasil.rb +9 -5
  12. data/lib/brcobranca/boleto/banco_brasilia.rb +5 -5
  13. data/lib/brcobranca/boleto/banco_nordeste.rb +4 -3
  14. data/lib/brcobranca/boleto/banestes.rb +4 -3
  15. data/lib/brcobranca/boleto/banrisul.rb +4 -3
  16. data/lib/brcobranca/boleto/base.rb +12 -7
  17. data/lib/brcobranca/boleto/bradesco.rb +4 -3
  18. data/lib/brcobranca/boleto/caixa.rb +10 -8
  19. data/lib/brcobranca/boleto/citibank.rb +9 -8
  20. data/lib/brcobranca/boleto/credisis.rb +6 -4
  21. data/lib/brcobranca/boleto/hsbc.rb +8 -6
  22. data/lib/brcobranca/boleto/itau.rb +5 -5
  23. data/lib/brcobranca/boleto/safra.rb +4 -4
  24. data/lib/brcobranca/boleto/santander.rb +4 -2
  25. data/lib/brcobranca/boleto/sicoob.rb +4 -3
  26. data/lib/brcobranca/boleto/sicredi.rb +6 -3
  27. data/lib/brcobranca/boleto/template/base.rb +2 -3
  28. data/lib/brcobranca/boleto/template/rghost.rb +18 -13
  29. data/lib/brcobranca/boleto/template/rghost_carne.rb +18 -12
  30. data/lib/brcobranca/boleto/unicred.rb +61 -103
  31. data/lib/brcobranca/calculo.rb +14 -9
  32. data/lib/brcobranca/calculo_data.rb +6 -5
  33. data/lib/brcobranca/currency.rb +10 -10
  34. data/lib/brcobranca/formatacao.rb +2 -1
  35. data/lib/brcobranca/formatacao_string.rb +7 -6
  36. data/lib/brcobranca/limpeza.rb +3 -3
  37. data/lib/brcobranca/remessa/base.rb +7 -10
  38. data/lib/brcobranca/remessa/cnab240/{cecred.rb → ailos.rb} +18 -15
  39. data/lib/brcobranca/remessa/cnab240/banco_brasil.rb +14 -11
  40. data/lib/brcobranca/remessa/cnab240/base.rb +56 -39
  41. data/lib/brcobranca/remessa/cnab240/base_correspondente.rb +25 -17
  42. data/lib/brcobranca/remessa/cnab240/caixa.rb +21 -13
  43. data/lib/brcobranca/remessa/cnab240/sicoob.rb +33 -30
  44. data/lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb +14 -7
  45. data/lib/brcobranca/remessa/cnab240/sicredi.rb +28 -22
  46. data/lib/brcobranca/remessa/cnab240/unicred.rb +2 -1
  47. data/lib/brcobranca/remessa/cnab400/banco_brasil.rb +9 -9
  48. data/lib/brcobranca/remessa/cnab400/banco_brasilia.rb +29 -28
  49. data/lib/brcobranca/remessa/cnab400/banco_nordeste.rb +11 -10
  50. data/lib/brcobranca/remessa/cnab400/banrisul.rb +13 -10
  51. data/lib/brcobranca/remessa/cnab400/base.rb +22 -9
  52. data/lib/brcobranca/remessa/cnab400/bradesco.rb +30 -5
  53. data/lib/brcobranca/remessa/cnab400/citibank.rb +6 -5
  54. data/lib/brcobranca/remessa/cnab400/credisis.rb +7 -5
  55. data/lib/brcobranca/remessa/cnab400/itau.rb +9 -6
  56. data/lib/brcobranca/remessa/cnab400/santander.rb +17 -15
  57. data/lib/brcobranca/remessa/cnab400/sicoob.rb +8 -11
  58. data/lib/brcobranca/remessa/cnab400/unicred.rb +185 -69
  59. data/lib/brcobranca/remessa/pagamento.rb +43 -11
  60. data/lib/brcobranca/retorno/base.rb +5 -43
  61. data/lib/brcobranca/retorno/cnab240/{cecred.rb → ailos.rb} +12 -10
  62. data/lib/brcobranca/retorno/cnab240/base.rb +8 -9
  63. data/lib/brcobranca/retorno/cnab240/caixa.rb +4 -5
  64. data/lib/brcobranca/retorno/cnab240/santander.rb +12 -8
  65. data/lib/brcobranca/retorno/cnab240/sicoob.rb +11 -9
  66. data/lib/brcobranca/retorno/cnab240/sicredi.rb +12 -9
  67. data/lib/brcobranca/retorno/cnab400/banco_brasil.rb +3 -3
  68. data/lib/brcobranca/retorno/cnab400/banco_brasilia.rb +2 -1
  69. data/lib/brcobranca/retorno/cnab400/banco_nordeste.rb +2 -1
  70. data/lib/brcobranca/retorno/cnab400/banrisul.rb +1 -1
  71. data/lib/brcobranca/retorno/cnab400/base.rb +13 -12
  72. data/lib/brcobranca/retorno/cnab400/bradesco.rb +4 -4
  73. data/lib/brcobranca/retorno/cnab400/credisis.rb +2 -1
  74. data/lib/brcobranca/retorno/cnab400/itau.rb +6 -5
  75. data/lib/brcobranca/retorno/cnab400/santander.rb +8 -7
  76. data/lib/brcobranca/retorno/cnab400/unicred.rb +63 -58
  77. data/lib/brcobranca/retorno/retorno_cbr643.rb +1 -2
  78. data/lib/brcobranca/retorno/retorno_cnab240.rb +11 -9
  79. data/lib/brcobranca/retorno/retorno_cnab400.rb +6 -5
  80. data/lib/brcobranca/util/date.rb +2 -1
  81. data/lib/brcobranca/util/empresa.rb +2 -1
  82. data/lib/brcobranca/util/errors.rb +31 -31
  83. data/lib/brcobranca/validations.rb +127 -151
  84. data/lib/brcobranca/version.rb +2 -3
  85. data/lib/brcobranca.rb +5 -5
  86. data/spec/brcobranca/base_spec.rb +20 -11
  87. data/spec/brcobranca/boleto/{cecred_spec.rb → ailos_spec.rb} +13 -12
  88. data/spec/brcobranca/boleto/banco_brasil_spec.rb +14 -12
  89. data/spec/brcobranca/boleto/banco_brasilia_spec.rb +11 -10
  90. data/spec/brcobranca/boleto/banco_nordeste_spec.rb +2 -3
  91. data/spec/brcobranca/boleto/banestes_spec.rb +10 -11
  92. data/spec/brcobranca/boleto/banrisul_spec.rb +10 -12
  93. data/spec/brcobranca/boleto/bradesco_spec.rb +36 -33
  94. data/spec/brcobranca/boleto/caixa_spec.rb +11 -12
  95. data/spec/brcobranca/boleto/citibank_spec.rb +10 -11
  96. data/spec/brcobranca/boleto/credisis_spec.rb +18 -17
  97. data/spec/brcobranca/boleto/hsbc_spec.rb +9 -10
  98. data/spec/brcobranca/boleto/itau_spec.rb +11 -12
  99. data/spec/brcobranca/boleto/safra_spec.rb +10 -11
  100. data/spec/brcobranca/boleto/santander_spec.rb +9 -10
  101. data/spec/brcobranca/boleto/sicoob_spec.rb +10 -11
  102. data/spec/brcobranca/boleto/sicredi_spec.rb +14 -10
  103. data/spec/brcobranca/boleto/unicred_spec.rb +28 -38
  104. data/spec/brcobranca/boletos_em_lote_spec.rb +7 -7
  105. data/spec/brcobranca/calculo_data_spec.rb +2 -2
  106. data/spec/brcobranca/calculo_spec.rb +13 -11
  107. data/spec/brcobranca/currency_spec.rb +26 -26
  108. data/spec/brcobranca/formatacao_spec.rb +2 -2
  109. data/spec/brcobranca/formatacao_string_spec.rb +10 -4
  110. data/spec/brcobranca/limpeza_spec.rb +2 -2
  111. data/spec/brcobranca/remessa/base_spec.rb +1 -2
  112. data/spec/brcobranca/remessa/cnab240/{cecred_spec.rb → ailos_spec.rb} +48 -47
  113. data/spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb +18 -13
  114. data/spec/brcobranca/remessa/cnab240/base_spec.rb +33 -10
  115. data/spec/brcobranca/remessa/cnab240/caixa_spec.rb +19 -17
  116. data/spec/brcobranca/remessa/cnab240/sicoob_banco_brasil_spec.rb +12 -8
  117. data/spec/brcobranca/remessa/cnab240/sicoob_spec.rb +28 -26
  118. data/spec/brcobranca/remessa/cnab240/sicredi_spec.rb +12 -10
  119. data/spec/brcobranca/remessa/cnab240/unicred_spec.rb +11 -9
  120. data/spec/brcobranca/remessa/cnab400/banco_brasil_spec.rb +6 -3
  121. data/spec/brcobranca/remessa/cnab400/banco_brasilia_spec.rb +24 -19
  122. data/spec/brcobranca/remessa/cnab400/banco_nordeste_spec.rb +19 -14
  123. data/spec/brcobranca/remessa/cnab400/banrisul_spec.rb +17 -15
  124. data/spec/brcobranca/remessa/cnab400/base_spec.rb +23 -8
  125. data/spec/brcobranca/remessa/cnab400/bradesco_spec.rb +19 -17
  126. data/spec/brcobranca/remessa/cnab400/citibank_spec.rb +14 -12
  127. data/spec/brcobranca/remessa/cnab400/credisis_spec.rb +21 -19
  128. data/spec/brcobranca/remessa/cnab400/itau_spec.rb +18 -16
  129. data/spec/brcobranca/remessa/cnab400/santander_spec.rb +24 -22
  130. data/spec/brcobranca/remessa/cnab400/sicoob_spec.rb +20 -20
  131. data/spec/brcobranca/remessa/cnab400/unicred_spec.rb +167 -166
  132. data/spec/brcobranca/remessa/pagamento_spec.rb +16 -15
  133. data/spec/brcobranca/retorno/cnab240/base_spec.rb +10 -9
  134. data/spec/brcobranca/retorno/cnab240/cecred_spec.rb +4 -2
  135. data/spec/brcobranca/retorno/cnab240/santander_spec.rb +2 -0
  136. data/spec/brcobranca/retorno/cnab240/sicoob_spec.rb +2 -0
  137. data/spec/brcobranca/retorno/cnab240/sicredi_spec.rb +2 -0
  138. data/spec/brcobranca/retorno/cnab400/banco_brasilia_spec.rb +2 -1
  139. data/spec/brcobranca/retorno/cnab400/banco_nordeste_spec.rb +2 -1
  140. data/spec/brcobranca/retorno/cnab400/banrisul_spec.rb +2 -1
  141. data/spec/brcobranca/retorno/cnab400/base_spec.rb +25 -25
  142. data/spec/brcobranca/retorno/cnab400/bradesco_spec.rb +2 -1
  143. data/spec/brcobranca/retorno/cnab400/credisis_spec.rb +5 -4
  144. data/spec/brcobranca/retorno/cnab400/itau_spec.rb +4 -2
  145. data/spec/brcobranca/retorno/cnab400/santander_spec.rb +2 -1
  146. data/spec/brcobranca/retorno/cnab400/unicred_spec.rb +28 -32
  147. data/spec/brcobranca/retorno/retorno_cbr643_spec.rb +2 -2
  148. data/spec/brcobranca/retorno/retorno_cnab400_spec.rb +2 -1
  149. data/spec/brcobranca/retorno/retorno_cnab_240_spec.rb +2 -1
  150. data/spec/brcobranca/rghost_spec.rb +4 -4
  151. data/spec/brcobranca/util/empresa_spec.rb +1 -2
  152. data/spec/brcobranca_spec.rb +1 -2
  153. metadata +85 -162
  154. data/spec/arquivos/CBR64310.RET +0 -28
  155. data/spec/arquivos/CNAB240.RET +0 -74
  156. data/spec/arquivos/CNAB240CECRED.RET +0 -10
  157. data/spec/arquivos/CNAB240SANTANDER.RET +0 -8
  158. data/spec/arquivos/CNAB240SICOOB.RET +0 -10
  159. data/spec/arquivos/CNAB240SICREDI.CRT +0 -8
  160. data/spec/arquivos/CNAB400.RET +0 -54
  161. data/spec/arquivos/CNAB400BANCOBRASILIA.RET +0 -3
  162. data/spec/arquivos/CNAB400BANCONORDESTE.RET +0 -3
  163. data/spec/arquivos/CNAB400BANRISUL.RET +0 -3
  164. data/spec/arquivos/CNAB400BRADESCO.RET +0 -8
  165. data/spec/arquivos/CNAB400CREDISIS.RET +0 -3
  166. data/spec/arquivos/CNAB400ITAU.RET +0 -54
  167. data/spec/arquivos/CNAB400SANTANDER.RET +0 -54
  168. data/spec/arquivos/CNAB400UNICRED.RET +0 -3
  169. data/spec/fixtures/remessa/remessa-banco-brasil-cnab400.rem +0 -3
  170. data/spec/fixtures/remessa/remessa-banco-brasilia-cnab400.rem +0 -3
  171. data/spec/fixtures/remessa/remessa-banco-nordeste-cnab400.rem +0 -3
  172. data/spec/fixtures/remessa/remessa-banco_brasil-cnab240.rem +0 -7
  173. data/spec/fixtures/remessa/remessa-bancoob-cnab240.rem +0 -7
  174. data/spec/fixtures/remessa/remessa-banrisul-cnab400.rem +0 -3
  175. data/spec/fixtures/remessa/remessa-bradesco-cnab400.rem +0 -3
  176. data/spec/fixtures/remessa/remessa-caixa-cnab240.rem +0 -7
  177. data/spec/fixtures/remessa/remessa-cecred-cnab240.rem +0 -7
  178. data/spec/fixtures/remessa/remessa-citibank-cnab400.rem +0 -3
  179. data/spec/fixtures/remessa/remessa-credisis-cnab400.rem +0 -3
  180. data/spec/fixtures/remessa/remessa-itau-cnab400.rem +0 -4
  181. data/spec/fixtures/remessa/remessa-santander-cnab400.rem +0 -3
  182. data/spec/fixtures/remessa/remessa-sicoob-cnab400.rem +0 -3
  183. data/spec/fixtures/remessa/remessa-sicoob-correspondente-bb-cnab240.rem +0 -4
  184. data/spec/fixtures/remessa/remessa-sicredi-cnab240.rem +0 -7
  185. data/spec/fixtures/remessa/remessa-unicred-cnab240.rem +0 -7
  186. data/spec/fixtures/remessa/remessa-unicred-cnab400.rem +0 -3
  187. data/spec/spec.opts +0 -8
  188. data/spec/spec_helper.rb +0 -38
  189. data/spec/support/remessa_helpers.rb +0 -13
  190. data/spec/support/shared_examples/busca_logotipo.rb +0 -15
  191. data/spec/support/shared_examples/cnab240.rb +0 -259
  192. data/spec/support/shared_examples/cnab400.rb +0 -180
  193. data/spec/support/shared_examples/formatos_validos.rb +0 -36
@@ -1,4 +1,5 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  module Brcobranca
3
4
  module Remessa
4
5
  module Cnab240
@@ -72,7 +73,7 @@ module Brcobranca
72
73
  #
73
74
  def monta_header_arquivo
74
75
  header_arquivo = '' # CAMPO TAMANHO
75
- header_arquivo << cod_banco # codigo do banco 3
76
+ header_arquivo += cod_banco # codigo do banco 3
76
77
  header_arquivo << '0000' # lote do servico 4
77
78
  header_arquivo << '0' # tipo de registro 1
78
79
  header_arquivo << ''.rjust(9, ' ') # uso exclusivo FEBRABAN 9
@@ -104,7 +105,7 @@ module Brcobranca
104
105
  #
105
106
  def monta_header_lote(nro_lote)
106
107
  header_lote = '' # CAMPO TAMANHO
107
- header_lote << cod_banco # codigo banco 3
108
+ header_lote += cod_banco # codigo banco 3
108
109
  header_lote << nro_lote.to_s.rjust(4, '0') # lote servico 4
109
110
  header_lote << '1' # tipo de registro 1
110
111
  header_lote << 'R' # tipo de operacao 1
@@ -138,8 +139,9 @@ module Brcobranca
138
139
  # @return [String]
139
140
  #
140
141
  def monta_segmento_p(pagamento, nro_lote, sequencial)
142
+ segmento_p = ''
141
143
  # # DESCRICAO TAMANHO
142
- segmento_p = cod_banco # codigo banco 3
144
+ segmento_p += cod_banco # codigo banco 3
143
145
  segmento_p << nro_lote.to_s.rjust(4, '0') # lote de servico 4
144
146
  segmento_p << '3' # tipo de registro 1
145
147
  segmento_p << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
@@ -194,7 +196,7 @@ module Brcobranca
194
196
  #
195
197
  def monta_segmento_q(pagamento, nro_lote, sequencial)
196
198
  segmento_q = '' # CAMPO TAMANHO
197
- segmento_q << cod_banco # codigo banco 3
199
+ segmento_q += cod_banco # codigo banco 3
198
200
  segmento_q << nro_lote.to_s.rjust(4, '0') # lote de servico 4
199
201
  segmento_q << '3' # tipo de registro 1
200
202
  segmento_q << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
@@ -211,7 +213,7 @@ module Brcobranca
211
213
  segmento_q << pagamento.cidade_sacado.format_size(15) # cidade 15
212
214
  segmento_q << pagamento.uf_sacado # uf 2
213
215
  segmento_q << pagamento.identificacao_avalista(false) # identificacao do sacador 1
214
- segmento_q << pagamento.documento_avalista.to_s.rjust(15, '0')# documento sacador 15
216
+ segmento_q << pagamento.documento_avalista.to_s.rjust(15, '0') # documento sacador 15
215
217
  segmento_q << pagamento.nome_avalista.format_size(40) # nome avalista 40
216
218
  segmento_q << ''.rjust(3, '0') # cod. banco correspondente 3
217
219
  segmento_q << ''.rjust(20, ' ') # nosso numero banco correspondente 20
@@ -232,19 +234,19 @@ module Brcobranca
232
234
  #
233
235
  def monta_segmento_r(pagamento, nro_lote, sequencial)
234
236
  segmento_r = '' # CAMPO TAMANHO
235
- segmento_r << cod_banco # codigo banco 3
237
+ segmento_r += cod_banco # codigo banco 3
236
238
  segmento_r << nro_lote.to_s.rjust(4, '0') # lote de servico 4
237
239
  segmento_r << '3' # tipo do registro 1
238
240
  segmento_r << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
239
241
  segmento_r << 'R' # cod. segmento 1
240
242
  segmento_r << ' ' # uso exclusivo 1
241
243
  segmento_r << pagamento.identificacao_ocorrencia # cod. movimento remessa 2
242
- segmento_r << "0" # cod. desconto 2 1
243
- segmento_r << "".rjust(8, '0') # data desconto 2 8
244
- segmento_r << "".rjust(15, '0') # valor desconto 2 15
245
- segmento_r << "0" # cod. desconto 3 1
246
- segmento_r << "".rjust(8, '0') # data desconto 3 8
247
- segmento_r << "".rjust(15, '0') # valor desconto 3 15
244
+ segmento_r << '0' # cod. desconto 2 1
245
+ segmento_r << ''.rjust(8, '0') # data desconto 2 8
246
+ segmento_r << ''.rjust(15, '0') # valor desconto 2 15
247
+ segmento_r << '0' # cod. desconto 3 1
248
+ segmento_r << ''.rjust(8, '0') # data desconto 3 8
249
+ segmento_r << ''.rjust(15, '0') # valor desconto 3 15
248
250
  segmento_r << pagamento.codigo_multa # codigo multa 1
249
251
  segmento_r << data_multa(pagamento) # data multa 8
250
252
  segmento_r << pagamento.formata_percentual_multa(15) # valor multa 15
@@ -267,7 +269,7 @@ module Brcobranca
267
269
  #
268
270
  def monta_trailer_lote(nro_lote, nro_registros)
269
271
  trailer_lote = '' # CAMPO # TAMANHO
270
- trailer_lote << cod_banco # codigo banco 3
272
+ trailer_lote += cod_banco # codigo banco 3
271
273
  trailer_lote << nro_lote.to_s.rjust(4, '0') # lote de servico 4
272
274
  trailer_lote << '5' # tipo de servico 1
273
275
  trailer_lote << ''.rjust(9, ' ') # uso exclusivo 9
@@ -294,7 +296,11 @@ module Brcobranca
294
296
  # nro de lotes 6
295
297
  # nro de registros(linhas) 6
296
298
  # uso FEBRABAN 211
297
- "#{cod_banco}99999#{''.rjust(9, ' ')}#{nro_lotes.to_s.rjust(6, '0')}#{sequencial.to_s.rjust(6, '0')}#{''.rjust(211, ' ')}"
299
+ "#{cod_banco}99999#{''.rjust(9,
300
+ ' ')}#{nro_lotes.to_s.rjust(6,
301
+ '0')}#{sequencial.to_s.rjust(6,
302
+ '0')}#{''.rjust(211,
303
+ ' ')}"
298
304
  end
299
305
 
300
306
  # Monta um lote para o arquivo
@@ -309,7 +315,7 @@ module Brcobranca
309
315
  #
310
316
  def monta_lote(nro_lote)
311
317
  # contador dos registros do lote
312
- contador = 1 #header
318
+ contador = 1 # header
313
319
 
314
320
  lote = [monta_header_lote(nro_lote)]
315
321
 
@@ -320,16 +326,16 @@ module Brcobranca
320
326
  contador += 1
321
327
  lote << monta_segmento_q(pagamento, nro_lote, contador)
322
328
  contador += 1
323
- if self.respond_to?(:monta_segmento_r)
324
- seg_r = monta_segmento_r(pagamento, nro_lote, contador)
329
+ next unless respond_to?(:monta_segmento_r)
330
+
331
+ seg_r = monta_segmento_r(pagamento, nro_lote, contador)
325
332
 
326
- if seg_r.present?
327
- lote << seg_r
328
- contador += 1
329
- end
333
+ if seg_r.present?
334
+ lote << seg_r
335
+ contador += 1
330
336
  end
331
337
  end
332
- contador += 1 #trailer
338
+ contador += 1 # trailer
333
339
 
334
340
  lote << monta_trailer_lote(nro_lote, contador)
335
341
 
@@ -353,13 +359,14 @@ module Brcobranca
353
359
 
354
360
  arquivo << monta_trailer_arquivo(contador, total_linhas)
355
361
 
356
- remittance = arquivo.join("\r\n").to_ascii.upcase
362
+ remittance = arquivo.join("\r\n").remove_accents.upcase
357
363
  remittance << "\n"
358
- remittance.encode(remittance.encoding, universal_newline: true).encode(remittance.encoding, crlf_newline: true)
364
+ remittance.encode(remittance.encoding, universal_newline: true).encode(remittance.encoding,
365
+ crlf_newline: true)
359
366
  end
360
367
 
361
368
  def total_segmentos(pagamentos)
362
- if self.respond_to?(:monta_segmento_r)
369
+ if respond_to?(:monta_segmento_r)
363
370
  pagamentos.size * 3
364
371
  else
365
372
  pagamentos.size * 2
@@ -371,7 +378,8 @@ module Brcobranca
371
378
  # Este metodo deve ser sobrescrevido na classe do banco
372
379
  #
373
380
  def complemento_header
374
- raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
381
+ raise Brcobranca::NaoImplementado,
382
+ 'Sobreescreva este método na classe referente ao banco que você esta criando'
375
383
  end
376
384
 
377
385
  # Numero da versao do layout do arquivo
@@ -379,7 +387,8 @@ module Brcobranca
379
387
  # Este metodo deve ser sobrescrevido na classe do banco
380
388
  #
381
389
  def versao_layout_arquivo
382
- raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
390
+ raise Brcobranca::NaoImplementado,
391
+ 'Sobreescreva este método na classe referente ao banco que você esta criando'
383
392
  end
384
393
 
385
394
  # Numero da versao do layout do lote
@@ -387,7 +396,8 @@ module Brcobranca
387
396
  # Este metodo deve ser sobrescrevido na classe do banco
388
397
  #
389
398
  def versao_layout_lote
390
- raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
399
+ raise Brcobranca::NaoImplementado,
400
+ 'Sobreescreva este método na classe referente ao banco que você esta criando'
391
401
  end
392
402
 
393
403
  # Densidade de gravacao do arquivo
@@ -410,7 +420,8 @@ module Brcobranca
410
420
  # Este metodo deve ser sobrescrevido na classe do banco
411
421
  #
412
422
  def convenio_lote
413
- raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
423
+ raise Brcobranca::NaoImplementado,
424
+ 'Sobreescreva este método na classe referente ao banco que você esta criando'
414
425
  end
415
426
 
416
427
  # Nome do banco
@@ -418,7 +429,8 @@ module Brcobranca
418
429
  # Este metodo deve ser sobrescrevido na classe do banco
419
430
  #
420
431
  def nome_banco
421
- raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
432
+ raise Brcobranca::NaoImplementado,
433
+ 'Sobreescreva este método na classe referente ao banco que você esta criando'
422
434
  end
423
435
 
424
436
  # Codigo do banco
@@ -426,7 +438,8 @@ module Brcobranca
426
438
  # Este metodo deve ser sobrescrevido na classe do banco
427
439
  #
428
440
  def cod_banco
429
- raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
441
+ raise Brcobranca::NaoImplementado,
442
+ 'Sobreescreva este método na classe referente ao banco que você esta criando'
430
443
  end
431
444
 
432
445
  # Informacoes da conta do cedente
@@ -434,7 +447,8 @@ module Brcobranca
434
447
  # Este metodo deve ser sobrescrevido na classe do banco
435
448
  #
436
449
  def info_conta
437
- raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
450
+ raise Brcobranca::NaoImplementado,
451
+ 'Sobreescreva este método na classe referente ao banco que você esta criando'
438
452
  end
439
453
 
440
454
  # Codigo do convenio
@@ -442,7 +456,8 @@ module Brcobranca
442
456
  # Este metodo deve ser sobrescrevido na classe do banco
443
457
  #
444
458
  def codigo_convenio
445
- raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
459
+ raise Brcobranca::NaoImplementado,
460
+ 'Sobreescreva este método na classe referente ao banco que você esta criando'
446
461
  end
447
462
 
448
463
  # Complemento do Segmento R
@@ -450,7 +465,7 @@ module Brcobranca
450
465
  # Sobreescreva caso necessário
451
466
  def complemento_r
452
467
  segmento_r = ''
453
- segmento_r << ''.rjust(20, ' ') # Exclusivo FEBRABAN 20
468
+ segmento_r += ''.rjust(20, ' ') # Exclusivo FEBRABAN 20
454
469
  segmento_r << ''.rjust(8, '0') # Cod. Ocor do Pagador 8
455
470
  segmento_r << ''.rjust(3, '0') # Cod. do Banco conta débito 3
456
471
  segmento_r << ''.rjust(5, '0') # Cod. da Agencia do débito 5
@@ -465,12 +480,14 @@ module Brcobranca
465
480
 
466
481
  def data_multa(pagamento)
467
482
  return ''.rjust(8, '0') if pagamento.codigo_multa == '0'
483
+
468
484
  pagamento.data_vencimento.strftime('%d%m%Y')
469
485
  end
470
486
 
471
487
  def data_mora(pagamento)
472
- return "".rjust(8, "0") unless %w( 1 2 ).include? pagamento.tipo_mora
473
- pagamento.data_vencimento.strftime("%d%m%Y")
488
+ return ''.rjust(8, '0') unless %w[1 2].include? pagamento.tipo_mora
489
+
490
+ pagamento.data_vencimento.strftime('%d%m%Y')
474
491
  end
475
492
 
476
493
  def codigo_desconto(pagamento)
@@ -482,7 +499,7 @@ module Brcobranca
482
499
  end
483
500
 
484
501
  def dias_baixa(pagamento)
485
- pagamento.dias_baixa.to_s.rjust(3, "0")
502
+ pagamento.dias_baixa.to_s.rjust(3, '0')
486
503
  end
487
504
 
488
505
  # Identificacao do titulo da empresa
@@ -500,7 +517,7 @@ module Brcobranca
500
517
  #
501
518
  # Sobreescreva caso necessário
502
519
  def exclusivo_servico
503
- "".rjust(2, " ")
520
+ ''.rjust(2, ' ')
504
521
  end
505
522
 
506
523
  def dv_agencia_cobradora
@@ -1,4 +1,5 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  module Brcobranca
3
4
  module Remessa
4
5
  module Cnab240
@@ -65,7 +66,7 @@ module Brcobranca
65
66
  #
66
67
  def monta_header_arquivo
67
68
  header_arquivo = '' # CAMPO TAMANHO
68
- header_arquivo << cod_banco # codigo do banco 3
69
+ header_arquivo += cod_banco # codigo do banco 3
69
70
  header_arquivo << '0000' # zeros 4
70
71
  header_arquivo << '1' # registro header do lote 1
71
72
  header_arquivo << 'R' # tipo operacao: R-remessa 1
@@ -93,7 +94,7 @@ module Brcobranca
93
94
  def monta_segmento_p(pagamento, sequencial)
94
95
  # # DESCRICAO TAMANHO
95
96
  segmento_p = ''.rjust(7, '0') # codigo banco 7
96
- segmento_p << '3' # tipo de registro 1
97
+ segmento_p += '3' # tipo de registro 1
97
98
  segmento_p << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
98
99
  segmento_p << 'P' # cod. segmento 1
99
100
  segmento_p << ' ' # uso exclusivo 1
@@ -128,7 +129,6 @@ module Brcobranca
128
129
  segmento_p
129
130
  end
130
131
 
131
-
132
132
  # Monta o registro segmento Q do arquivo
133
133
  #
134
134
  # @param pagamento [Brcobranca::Remessa::Pagamento]
@@ -140,7 +140,7 @@ module Brcobranca
140
140
  #
141
141
  def monta_segmento_q(pagamento, sequencial)
142
142
  segmento_q = '' # CAMPO TAMANHO
143
- segmento_q << ''.rjust(7, '0') # zeros 3
143
+ segmento_q += ''.rjust(7, '0') # zeros 3
144
144
  segmento_q << '3' # registro detalhe 1
145
145
  segmento_q << sequencial.to_s.rjust(5, '0') # lote de servico 5
146
146
  segmento_q << 'Q' # cod. segmento 1
@@ -178,7 +178,6 @@ module Brcobranca
178
178
  "0#{pagamento.identificacao_avalista(false)}"
179
179
  end
180
180
 
181
-
182
181
  # Monta o registro trailer do arquivo
183
182
  #
184
183
  # @param nro_lotes [Integer]
@@ -197,7 +196,11 @@ module Brcobranca
197
196
  # nro de lotes 6
198
197
  # nro de registros(linhas) 6
199
198
  # uso FEBRABAN 211
200
- "#{cod_banco}99999#{''.rjust(9, ' ')}#{nro_lotes.to_s.rjust(6, '0')}#{sequencial.to_s.rjust(6, '0')}#{''.rjust(211, ' ')}"
199
+ "#{cod_banco}99999#{''.rjust(9,
200
+ ' ')}#{nro_lotes.to_s.rjust(6,
201
+ '0')}#{sequencial.to_s.rjust(6,
202
+ '0')}#{''.rjust(211,
203
+ ' ')}"
201
204
  end
202
205
 
203
206
  # Monta um lote para o arquivo
@@ -210,9 +213,9 @@ module Brcobranca
210
213
  #
211
214
  # @return [Array]
212
215
  #
213
- def monta_lote(nro_lote)
216
+ def monta_lote(_nro_lote)
214
217
  # contador dos registros do lote
215
- contador = 1 #header
218
+ contador = 1 # header
216
219
 
217
220
  lote = []
218
221
 
@@ -224,7 +227,7 @@ module Brcobranca
224
227
  lote << monta_segmento_q(pagamento, contador)
225
228
  contador += 1
226
229
  end
227
- contador += 1 #trailer
230
+ contador += 1 # trailer
228
231
 
229
232
  lote
230
233
  end
@@ -244,7 +247,7 @@ module Brcobranca
244
247
 
245
248
  arquivo << monta_trailer_arquivo(contador, ((pagamentos.size * 2) + (contador * 2) + 2))
246
249
 
247
- arquivo.join("\r\n").to_ascii.upcase
250
+ arquivo.join("\r\n").remove_accents.upcase
248
251
  end
249
252
 
250
253
  # Complemento do registro
@@ -252,7 +255,8 @@ module Brcobranca
252
255
  # Este metodo deve ser sobrescrevido na classe do banco
253
256
  #
254
257
  def complemento_header
255
- raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
258
+ raise Brcobranca::NaoImplementado,
259
+ 'Sobreescreva este método na classe referente ao banco que você esta criando'
256
260
  end
257
261
 
258
262
  # Informacoes do convenio para o lote
@@ -260,7 +264,8 @@ module Brcobranca
260
264
  # Este metodo deve ser sobrescrevido na classe do banco
261
265
  #
262
266
  def convenio_lote
263
- raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
267
+ raise Brcobranca::NaoImplementado,
268
+ 'Sobreescreva este método na classe referente ao banco que você esta criando'
264
269
  end
265
270
 
266
271
  # Codigo do banco
@@ -268,7 +273,8 @@ module Brcobranca
268
273
  # Este metodo deve ser sobrescrevido na classe do banco
269
274
  #
270
275
  def cod_banco
271
- raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
276
+ raise Brcobranca::NaoImplementado,
277
+ 'Sobreescreva este método na classe referente ao banco que você esta criando'
272
278
  end
273
279
 
274
280
  # Informacoes da conta do cedente
@@ -276,7 +282,8 @@ module Brcobranca
276
282
  # Este metodo deve ser sobrescrevido na classe do banco
277
283
  #
278
284
  def info_conta
279
- raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
285
+ raise Brcobranca::NaoImplementado,
286
+ 'Sobreescreva este método na classe referente ao banco que você esta criando'
280
287
  end
281
288
 
282
289
  # Codigo do convenio
@@ -284,14 +291,15 @@ module Brcobranca
284
291
  # Este metodo deve ser sobrescrevido na classe do banco
285
292
  #
286
293
  def codigo_convenio
287
- raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
294
+ raise Brcobranca::NaoImplementado,
295
+ 'Sobreescreva este método na classe referente ao banco que você esta criando'
288
296
  end
289
297
 
290
298
  # Codigo para protesto
291
299
  #
292
300
  # Sobreescreva caso necessário
293
301
  def codigo_protesto
294
- "0"
302
+ '0'
295
303
  end
296
304
  end
297
305
  end
@@ -1,4 +1,5 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  module Brcobranca
3
4
  module Remessa
4
5
  module Cnab240
@@ -13,6 +14,7 @@ module Brcobranca
13
14
  # 14: título Registrado emissão Cedente
14
15
  # 21: título Sem Registro emissão CAIXA
15
16
  attr_accessor :modalidade_carteira
17
+
16
18
  # identificacao da emissao do boleto (attr na classe base)
17
19
  # opcoes:
18
20
  # ‘1’ = Banco Emite
@@ -101,7 +103,7 @@ module Brcobranca
101
103
  end
102
104
 
103
105
  def exclusivo_servico
104
- "00"
106
+ '00'
105
107
  end
106
108
 
107
109
  def complemento_trailer
@@ -109,7 +111,7 @@ module Brcobranca
109
111
  end
110
112
 
111
113
  def tipo_documento
112
- "2"
114
+ '2'
113
115
  end
114
116
 
115
117
  def complemento_p(pagamento)
@@ -118,44 +120,50 @@ module Brcobranca
118
120
  # uso CAIXA 11
119
121
  # modalidade carteira 2
120
122
  # ident. titulo 15
121
- "#{convenio.rjust(6, '0')}#{''.rjust(11, '0')}#{modalidade_carteira}#{pagamento.nosso_numero.to_s.rjust(15, '0')}"
123
+ "#{convenio.rjust(6,
124
+ '0')}#{''.rjust(11,
125
+ '0')}#{modalidade_carteira}#{pagamento.nosso_numero.to_s.rjust(15, '0')}"
122
126
  end
123
127
 
124
128
  def complemento_r
125
129
  segmento_r = ''
126
- segmento_r << ''.rjust(50, ' ') # e-mail do sacado 50
130
+ segmento_r += ''.rjust(50, ' ') # e-mail do sacado 50
127
131
  segmento_r << ''.rjust(11, ' ') # exclusivo FEBRABAN 11
128
132
  segmento_r
129
133
  end
130
134
 
131
135
  def numero(pagamento)
132
- "#{pagamento.formata_documento_ou_numero(11, "0")}#{''.rjust(4, ' ')}"
136
+ "#{pagamento.formata_documento_ou_numero(11, '0')}#{''.rjust(4, ' ')}"
133
137
  end
134
138
 
135
139
  def identificacao_titulo_empresa(pagamento)
136
- "#{pagamento.formata_documento_ou_numero(11, "0")}#{''.rjust(14, ' ')}"
140
+ "#{pagamento.formata_documento_ou_numero(11, '0')}#{''.rjust(14, ' ')}"
137
141
  end
138
142
 
139
143
  def data_multa(pagamento)
140
144
  return ''.rjust(8, '0') if pagamento.codigo_multa == '0'
145
+
141
146
  data_multa = pagamento.data_vencimento + 1
142
147
  data_multa.strftime('%d%m%Y')
143
148
  end
144
149
 
145
150
  def codigo_baixa(pagamento)
146
- return "1" if pagamento.codigo_protesto.to_s == "3"
147
- "2"
151
+ return '1' if pagamento.codigo_protesto.to_s == '3'
152
+
153
+ '2'
148
154
  end
149
155
 
150
156
  def dias_baixa(pagamento)
151
- return "120" if pagamento.codigo_protesto.to_s == "3"
152
- "000"
157
+ return '120' if pagamento.codigo_protesto.to_s == '3'
158
+
159
+ '000'
153
160
  end
154
161
 
155
162
  def data_mora(pagamento)
156
- return "".rjust(8, "0") unless %w( 1 2 ).include? pagamento.tipo_mora
163
+ return ''.rjust(8, '0') unless %w[1 2].include? pagamento.tipo_mora
164
+
157
165
  data_mora = pagamento.data_vencimento + 1
158
- data_mora.strftime("%d%m%Y")
166
+ data_mora.strftime('%d%m%Y')
159
167
  end
160
168
  end
161
169
  end
@@ -1,10 +1,11 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  module Brcobranca
3
4
  module Remessa
4
5
  module Cnab240
5
6
  class Sicoob < Brcobranca::Remessa::Cnab240::Base
7
+ attr_accessor :modalidade_carteira, :tipo_formulario, :parcela, :posto
6
8
 
7
- attr_accessor :modalidade_carteira
8
9
  # identificacao da emissao do boleto (attr na classe base)
9
10
  # opcoes:
10
11
  # ‘1’ = Banco Emite
@@ -14,21 +15,17 @@ module Brcobranca
14
15
  # opcoes:
15
16
  # ‘1’ = Banco distribui
16
17
  # ‘2’ = Cliente distribui
17
-
18
- attr_accessor :tipo_formulario
19
18
  # Tipo Formulário - 01 posição (15 a 15):
20
19
  # "1" -auto-copiativo
21
20
  # "3" -auto-envelopável
22
21
  # "4" -A4 sem envelopamento
23
22
  # "6" -A4 sem envelopamento 3 vias
24
-
25
- attr_accessor :parcela
26
23
  # Parcela - 02 posições (11 a 12) - "01" se parcela única
27
24
 
28
- attr_accessor :posto
29
25
  # Mantém a informação do posto de atendimento dentro da agência.
30
26
 
31
- validates_presence_of :modalidade_carteira, :tipo_formulario, :parcela, :convenio, message: 'não pode estar em branco.'
27
+ validates_presence_of :modalidade_carteira, :tipo_formulario, :parcela, :convenio,
28
+ message: 'não pode estar em branco.'
32
29
  # Remessa 400 - 8 digitos
33
30
  # Remessa 240 - 12 digitos
34
31
  validates_length_of :conta_corrente, maximum: 8, message: 'deve ter 8 dígitos.'
@@ -37,13 +34,13 @@ module Brcobranca
37
34
 
38
35
  def initialize(campos = {})
39
36
  campos = { emissao_boleto: '2',
40
- distribuicao_boleto: '2',
41
- especie_titulo: '02',
42
- tipo_formulario: '4',
43
- parcela: '01',
44
- modalidade_carteira: '01',
45
- forma_cadastramento: '0',
46
- posto: '00'}.merge!(campos)
37
+ distribuicao_boleto: '2',
38
+ especie_titulo: '02',
39
+ tipo_formulario: '4',
40
+ parcela: '01',
41
+ modalidade_carteira: '01',
42
+ forma_cadastramento: '0',
43
+ posto: '00' }.merge!(campos)
47
44
  super(campos)
48
45
  end
49
46
 
@@ -93,7 +90,7 @@ module Brcobranca
93
90
  ''.rjust(20, ' ')
94
91
  end
95
92
 
96
- alias_method :convenio_lote, :codigo_convenio
93
+ alias convenio_lote codigo_convenio
97
94
 
98
95
  def info_conta
99
96
  # CAMPO TAMANHO
@@ -120,12 +117,12 @@ module Brcobranca
120
117
  # Qt. Títulos em Cobrança Descontada 6
121
118
  # Vl. Títulos em Carteira Descontada 15 + 2 decimais
122
119
  total_cobranca_simples = "#{quantidade_titulos_cobranca}#{valor_titulos_carteira}"
123
- total_cobranca_vinculada = "".rjust(23, "0")
124
- total_cobranca_caucionada = "".rjust(23, "0")
125
- total_cobranca_descontada = "".rjust(23, "0")
120
+ total_cobranca_vinculada = ''.rjust(23, '0')
121
+ total_cobranca_caucionada = ''.rjust(23, '0')
122
+ total_cobranca_descontada = ''.rjust(23, '0')
126
123
 
127
124
  "#{total_cobranca_simples}#{total_cobranca_vinculada}#{total_cobranca_caucionada}"\
128
- "#{total_cobranca_descontada}".ljust(217, ' ')
125
+ "#{total_cobranca_descontada}".ljust(217, ' ')
129
126
  end
130
127
 
131
128
  # Monta o registro trailer do arquivo
@@ -146,7 +143,13 @@ module Brcobranca
146
143
  # nro de lotes 6
147
144
  # nro de registros(linhas) 6
148
145
  # uso FEBRABAN 211
149
- "#{cod_banco}99999#{''.rjust(9, ' ')}#{nro_lotes.to_s.rjust(6, '0')}#{sequencial.to_s.rjust(6, '0')}#{''.rjust(6, '0')}#{''.rjust(205, ' ')}"
146
+ "#{cod_banco}99999#{''.rjust(9,
147
+ ' ')}#{nro_lotes.to_s.rjust(6,
148
+ '0')}#{sequencial.to_s.rjust(6,
149
+ '0')}#{''.rjust(6,
150
+ '0')}#{''.rjust(
151
+ 205, ' '
152
+ )}"
150
153
  end
151
154
 
152
155
  def complemento_p(pagamento)
@@ -158,22 +161,21 @@ module Brcobranca
158
161
  "#{conta_corrente.rjust(12, '0')}#{digito_conta} #{formata_nosso_numero(pagamento.nosso_numero)}"
159
162
  end
160
163
 
161
-
162
164
  def monta_segmento_r(pagamento, nro_lote, sequencial)
163
165
  segmento_r = '' # CAMPO TAMANHO
164
- segmento_r << cod_banco # codigo banco 3
166
+ segmento_r += cod_banco # codigo banco 3
165
167
  segmento_r << nro_lote.to_s.rjust(4, '0') # lote de servico 4
166
168
  segmento_r << '3' # lote de servico 1
167
169
  segmento_r << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
168
170
  segmento_r << 'R' # cod. segmento 1
169
171
  segmento_r << ' ' # uso exclusivo 1
170
172
  segmento_r << '01' # cod. movimento remessa 2
171
- segmento_r << "0" # cod. desconto 2 1
172
- segmento_r << "".rjust(8, '0') # data desconto 2 8
173
- segmento_r << "".rjust(15, '0') # valor desconto 2 15
174
- segmento_r << "0" # cod. desconto 3 1
175
- segmento_r << "".rjust(8, '0') # data desconto 3 8
176
- segmento_r << "".rjust(15, '0') # valor desconto 3 15
173
+ segmento_r << '0' # cod. desconto 2 1
174
+ segmento_r << ''.rjust(8, '0') # data desconto 2 8
175
+ segmento_r << ''.rjust(15, '0') # valor desconto 2 15
176
+ segmento_r << '0' # cod. desconto 3 1
177
+ segmento_r << ''.rjust(8, '0') # data desconto 3 8
178
+ segmento_r << ''.rjust(15, '0') # valor desconto 3 15
177
179
  segmento_r << pagamento.codigo_multa # codigo multa 1
178
180
  segmento_r << data_multa(pagamento) # data multa 8
179
181
  segmento_r << pagamento.formata_percentual_multa(15) # valor multa 15
@@ -195,6 +197,7 @@ module Brcobranca
195
197
 
196
198
  def data_multa(pagamento)
197
199
  return ''.rjust(8, '0') if pagamento.codigo_multa == '0'
200
+
198
201
  pagamento.data_vencimento.strftime('%d%m%Y')
199
202
  end
200
203
 
@@ -217,7 +220,7 @@ module Brcobranca
217
220
  "#{nosso_numero.to_s.rjust(10, '0')}#{parcela}#{modalidade_carteira}#{tipo_formulario} "
218
221
  end
219
222
 
220
- def dias_baixa(pagamento)
223
+ def dias_baixa(_pagamento)
221
224
  ''.rjust(3, ' ')
222
225
  end
223
226
  end