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
  #
3
4
  # @author Kivanio Barbosa
4
5
  module Brcobranca
@@ -14,7 +15,7 @@ module Brcobranca
14
15
  total = 0
15
16
  multiplicador = 2
16
17
 
17
- to_s.split(//).reverse!.each do |caracter|
18
+ to_s.chars.reverse!.each do |caracter|
18
19
  total += (caracter.to_i * multiplicador).soma_digitos
19
20
  multiplicador = multiplicador == 2 ? 1 : 2
20
21
  end
@@ -35,7 +36,7 @@ module Brcobranca
35
36
  options[:multiplicador] ||= [9, 8, 7, 6, 5, 4, 3, 2]
36
37
 
37
38
  total = multiplicador(fatores: options[:multiplicador], reverse: options[:reverse])
38
- valor = block_given? ? yield(total) : (total % 11)
39
+ valor = _block ? yield(total) : (total % 11)
39
40
 
40
41
  options[:mapeamento][valor] || valor
41
42
  end
@@ -56,8 +57,8 @@ module Brcobranca
56
57
  # 13 (-9 ) #=> 4
57
58
  # 18 (-9 ) #=> 9
58
59
  def soma_digitos
59
- total = self.to_i
60
- total = total - 9 if total > 9
60
+ total = to_i
61
+ total -= 9 if total > 9
61
62
  total
62
63
  end
63
64
 
@@ -73,11 +74,11 @@ module Brcobranca
73
74
  total = 0
74
75
  multiplicador_posicao = 0
75
76
  fatores = options[:fatores]
76
- numeros = options[:reverse].nil? ? to_s.split(//).reverse! : to_s.split(//)
77
+ numeros = options[:reverse].nil? ? to_s.chars.reverse! : to_s.chars
77
78
 
78
79
  numeros.each do |caracter|
79
80
  fator = fatores[multiplicador_posicao]
80
- total += block_given? ? yield(caracter, fator) : (caracter.to_i * fator)
81
+ total += _block ? yield(caracter, fator) : (caracter.to_i * fator)
81
82
  multiplicador_posicao = multiplicador_posicao < (fatores.size - 1) ? (multiplicador_posicao + 1) : 0
82
83
  end
83
84
  total
@@ -91,7 +92,9 @@ module Brcobranca
91
92
  raise ArgumentError, 'Número inválido' unless is_number?
92
93
 
93
94
  digito_1 = modulo10
94
- digito_2 = "#{self}#{digito_1}".modulo11(multiplicador: [2, 3, 4, 5, 6, 7]) { |total| (total < 11 ? total : total % 11) }
95
+ digito_2 = "#{self}#{digito_1}".modulo11(multiplicador: [2, 3, 4, 5, 6, 7]) do |total|
96
+ (total < 11 ? total : total % 11)
97
+ end
95
98
 
96
99
  while digito_2 == 1
97
100
  digito_1 = if digito_1 == 9
@@ -100,7 +103,9 @@ module Brcobranca
100
103
  digito_1 + 1
101
104
  end
102
105
 
103
- digito_2 = "#{self}#{digito_1}".modulo11(multiplicador: [2, 3, 4, 5, 6, 7]) { |total| (total < 11 ? total : total % 11) }
106
+ digito_2 = "#{self}#{digito_1}".modulo11(multiplicador: [2, 3, 4, 5, 6, 7]) do |total|
107
+ (total < 11 ? total : total % 11)
108
+ end
104
109
  end
105
110
 
106
111
  digito_2 = 11 - digito_2 if digito_2 != 0
@@ -1,4 +1,5 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
4
  # @author Kivanio Barbosa
4
5
 
@@ -8,11 +9,11 @@ module Brcobranca
8
9
  # Métodos auxiliares de cálculos envolvendo Datas.
9
10
  module CalculoData
10
11
  # Calcula o número de dias corridos entre a <b>data base ("Fixada" em 07.10.1997)</b> e a <b>data de vencimento</b> desejada.
11
- # A partir de 22.02.2025, o fator retorna para '1000' adicionando- se '1' a cada dia subsequente a este fator
12
+ # A partir de 22.02.2025, o fator retorna para '1000' adicionando- se '1' a cada dia subsequente a este fator
12
13
  # até que chegue a 9999 novamente onde deve ser usada nova data base começando de 1000.
13
14
  #
14
- # Somente serão considerados válidos para pagamento os boletos com 3.000 fatores de vencimento anteriores
15
- # e 5.500 fatores futuros, ambos em relação a data atual.
15
+ # Somente serão considerados válidos para pagamento os boletos com 3.000 fatores de vencimento anteriores
16
+ # e 5.500 fatores futuros, ambos em relação a data atual.
16
17
  # Boletos fora deste controle não serão considerados validos para pagamento na rede bancária.
17
18
  # Ex. Hoje é 13/03/2014 (fator 6.001)
18
19
  # Limite para emissão ou pagamento de boletos vencido: 24/12/2005 (fator 3.000)
@@ -25,7 +26,7 @@ module Brcobranca
25
26
  data_base = Date.parse '1997-10-07'
26
27
  fator_vencimento = Integer(self - data_base)
27
28
  while fator_vencimento > 9999
28
- data_base = data_base + 10000
29
+ data_base += 10_000
29
30
  fator_vencimento = Integer(self - data_base) + 1000
30
31
  end
31
32
  fator_vencimento.to_s
@@ -1,27 +1,27 @@
1
- # -*- encoding: utf-8 -*-
2
- #
1
+ # frozen_string_literal: true
3
2
 
4
3
  # @author Fernando Vieira do http://simplesideias.com.br
5
- module Brcobranca #:nodoc:[all]
6
- module Currency #:nodoc:[all]
4
+ module Brcobranca # :nodoc:[all]
5
+ module Currency # :nodoc:[all]
7
6
  # Implementação feita por Fernando Vieira do http://simplesideias.com.br
8
7
  # post http://simplesideias.com.br/usando-number_to_currency-em-modelos-no-rails
9
8
  BRL = { delimiter: '.', separator: ',', unit: 'R$', precision: 2, position: 'before' }.freeze
10
9
  USD = { delimiter: ',', separator: '.', unit: 'US$', precision: 2, position: 'before' }.freeze
11
10
  DEFAULT = BRL.merge(unit: '')
12
11
 
13
- module String #:nodoc:[all]
12
+ module String # :nodoc:[all]
14
13
  def to_number(_options = {})
15
14
  return tr(',', '.').to_f if numeric?
15
+
16
16
  nil
17
17
  end
18
18
 
19
19
  def numeric?
20
- self =~ /^(\+|-)?[0-9]+((\.|,)[0-9]+)?$/ ? true : false
20
+ /^(\+|-)?[0-9]+((\.|,)[0-9]+)?$/.match?(self)
21
21
  end
22
22
  end
23
23
 
24
- module Number #:nodoc:[all]
24
+ module Number # :nodoc:[all]
25
25
  def to_currency(options = {})
26
26
  number = self
27
27
  default = Brcobranca::Currency::DEFAULT
@@ -29,14 +29,14 @@ module Brcobranca #:nodoc:[all]
29
29
  precision = options[:precision] || default[:precision]
30
30
  unit = options[:unit] || default[:unit]
31
31
  position = options[:position] || default[:position]
32
- separator = precision > 0 ? options[:separator] || default[:separator] : ''
32
+ separator = precision.positive? ? options[:separator] || default[:separator] : ''
33
33
  delimiter = options[:delimiter] || default[:delimiter]
34
34
 
35
35
  begin
36
36
  parts = number.with_precision(precision).split('.')
37
37
  number = parts[0].to_i.with_delimiter(delimiter) + separator + parts[1].to_s
38
38
  position == 'before' ? unit + number : number + unit
39
- rescue
39
+ rescue StandardError
40
40
  number
41
41
  end
42
42
  end
@@ -47,7 +47,7 @@ module Brcobranca #:nodoc:[all]
47
47
  parts = number.to_s.split(separator)
48
48
  parts[0].gsub!(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1#{delimiter}")
49
49
  parts.join separator
50
- rescue
50
+ rescue StandardError
51
51
  self
52
52
  end
53
53
  end
@@ -1,4 +1,5 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
4
  # @author Kivanio Barbosa
4
5
  module Brcobranca
@@ -1,4 +1,5 @@
1
- #
1
+ # frozen_string_literal: true
2
+
2
3
  module Brcobranca
3
4
  # Métodos auxiliares de formatação de strings
4
5
  module FormatacaoString
@@ -18,16 +19,16 @@ module Brcobranca
18
19
 
19
20
  def truncate(truncate_at)
20
21
  return dup unless length > truncate_at
21
- "#{self[0, truncate_at]}"
22
+
23
+ (self[0, truncate_at]).to_s
22
24
  end
23
25
 
24
26
  def remove_accents
25
- self.tr(
26
- "ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž",
27
- "AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHhIIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnOOOOOOooooooOoOoOoRrRrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz"
27
+ tr(
28
+ 'ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž',
29
+ 'AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHhIIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnOOOOOOooooooOoOoOoRrRrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz'
28
30
  )
29
31
  end
30
-
31
32
  end
32
33
  end
33
34
 
@@ -1,5 +1,5 @@
1
- # -*- encoding: utf-8 -*-
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  module Brcobranca
4
4
  module Limpeza
5
5
  # Transforma Float em String preservando o zero a direita.
@@ -9,7 +9,7 @@ module Brcobranca
9
9
  # 1.9 #=> 190
10
10
  # 1.93 #=> 193
11
11
  def limpa_valor_moeda
12
- inicio, fim = to_s.split(/\./)
12
+ inicio, fim = to_s.split('.')
13
13
  (inicio + fim.ljust(2, '0'))
14
14
  end
15
15
  end
@@ -1,6 +1,6 @@
1
- # -*- encoding: utf-8 -*-
2
- require 'unidecoder'
1
+ # frozen_string_literal: true
3
2
 
3
+ require 'active_support/core_ext/object/blank'
4
4
  module Brcobranca
5
5
  module Remessa
6
6
  class Base
@@ -33,9 +33,7 @@ module Brcobranca
33
33
  record.errors.add(attr, 'não pode estar vazio.') if value.empty?
34
34
  value.each do |pagamento|
35
35
  if pagamento.is_a? Brcobranca::Remessa::Pagamento
36
- if pagamento.invalid?
37
- pagamento.errors.full_messages.each { |msg| record.errors.add(attr, msg) }
38
- end
36
+ pagamento.errors.full_messages.each { |msg| record.errors.add(attr, msg) } if pagamento.invalid?
39
37
  else
40
38
  record.errors.add(attr, 'cada item deve ser um objeto Pagamento.')
41
39
  end
@@ -59,18 +57,17 @@ module Brcobranca
59
57
  end
60
58
 
61
59
  def quantidade_titulos_cobranca
62
- pagamentos.length.to_s.rjust(6, "0")
60
+ pagamentos.length.to_s.rjust(6, '0')
63
61
  end
64
62
 
65
63
  def totaliza_valor_titulos
66
- pagamentos.inject(0.0) { |sum, pagamento| sum += pagamento.valor.to_f }
64
+ pagamentos.inject(0.0) { |sum, pagamento| sum + pagamento.valor.to_f }
67
65
  end
68
66
 
69
67
  def valor_titulos_carteira(tamanho = 17)
70
- total = sprintf "%.2f", totaliza_valor_titulos
71
- total.somente_numeros.rjust(tamanho, "0")
68
+ total = format '%.2f', totaliza_valor_titulos
69
+ total.somente_numeros.rjust(tamanho, '0')
72
70
  end
73
-
74
71
  end
75
72
  end
76
73
  end
@@ -1,8 +1,9 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  module Brcobranca
3
4
  module Remessa
4
5
  module Cnab240
5
- class Cecred < Brcobranca::Remessa::Cnab240::Base
6
+ class Ailos < Brcobranca::Remessa::Cnab240::Base
6
7
  # digito da agencia
7
8
  attr_accessor :digito_agencia
8
9
 
@@ -32,7 +33,7 @@ module Brcobranca
32
33
  end
33
34
 
34
35
  def nome_banco
35
- 'CECRED'.ljust(30, ' ')
36
+ 'AILOS'.ljust(30, ' ')
36
37
  end
37
38
 
38
39
  def versao_layout_arquivo
@@ -78,11 +79,11 @@ module Brcobranca
78
79
  end
79
80
 
80
81
  def agencia_conta_corrente_dv
81
- " "
82
+ ' '
82
83
  end
83
84
 
84
85
  def complemento_header
85
- "#{''.rjust(29, ' ')}"
86
+ ''.rjust(29, ' ').to_s
86
87
  end
87
88
 
88
89
  def complemento_trailer
@@ -90,7 +91,7 @@ module Brcobranca
90
91
  end
91
92
 
92
93
  def tipo_documento
93
- "1"
94
+ '1'
94
95
  end
95
96
 
96
97
  def complemento_p(pagamento)
@@ -99,7 +100,8 @@ module Brcobranca
99
100
  # dv conta corrente 1
100
101
  # dv agencia/conta 1
101
102
  # ident. titulo 20
102
- "#{conta_corrente.rjust(12, '0')}#{conta_corrente_dv}#{agencia_conta_corrente_dv}#{ajusta_nosso_numero(pagamento)}"
103
+ "#{conta_corrente.rjust(12,
104
+ '0')}#{conta_corrente_dv}#{agencia_conta_corrente_dv}#{ajusta_nosso_numero(pagamento)}"
103
105
  end
104
106
 
105
107
  def ajusta_nosso_numero(pagamento)
@@ -107,7 +109,7 @@ module Brcobranca
107
109
  end
108
110
 
109
111
  def identificacao_titulo_empresa(pagamento)
110
- pagamento.documento_ou_numero.to_s.ljust(25, " ")
112
+ pagamento.documento_ou_numero.to_s.ljust(25, ' ')
111
113
  end
112
114
 
113
115
  def complemento_trailer
@@ -121,28 +123,29 @@ module Brcobranca
121
123
  # Qt. Títulos em Cobrança Descontada 6
122
124
  # Vl. Títulos em Carteira Descontada 15 + 2 decimais
123
125
  total_cobranca_simples = "#{quantidade_titulos_cobranca}#{valor_titulos_carteira}"
124
- total_cobranca_vinculada = "".rjust(23, "0")
125
- total_cobranca_caucionada = "".rjust(23, "0")
126
- total_cobranca_descontada = "".rjust(23, "0")
126
+ total_cobranca_vinculada = ''.rjust(23, '0')
127
+ total_cobranca_caucionada = ''.rjust(23, '0')
128
+ total_cobranca_descontada = ''.rjust(23, '0')
127
129
 
128
130
  "#{total_cobranca_simples}#{total_cobranca_vinculada}#{total_cobranca_caucionada}"\
129
- "#{total_cobranca_descontada}".ljust(217, ' ')
131
+ "#{total_cobranca_descontada}".ljust(217, ' ')
130
132
  end
131
133
 
132
134
  def total_segmentos(pagamentos)
133
- pagamentos.inject(0) { |total, pagamento| total += pagamento.codigo_multa != '0' ? 3 : 2 }
135
+ pagamentos.inject(0) { |total, pagamento| total += pagamento.codigo_multa == '0' ? 2 : 3 }
134
136
  end
135
137
 
136
138
  def monta_segmento_r(pagamento, nro_lote, contador)
137
139
  return nil if pagamento.codigo_multa == '0'
140
+
138
141
  super(pagamento, nro_lote, contador)
139
142
  end
140
143
 
141
- def codigo_baixa(pagamento)
144
+ def codigo_baixa(_pagamento)
142
145
  '2'
143
146
  end
144
147
 
145
- def dias_baixa(pagamento)
148
+ def dias_baixa(_pagamento)
146
149
  ''.rjust(3, ' ')
147
150
  end
148
151
  end
@@ -1,10 +1,12 @@
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 BancoBrasil < Brcobranca::Remessa::Cnab240::Base
6
7
  # variacao da carteira
7
8
  attr_accessor :variacao
9
+
8
10
  # identificacao da emissao do boleto (attr na classe base)
9
11
  # campo nao tratado pelo sistema do Banco do Brasil
10
12
  # identificacao da distribuicao do boleto (attr na classe base)
@@ -20,10 +22,10 @@ module Brcobranca
20
22
 
21
23
  def initialize(campos = {})
22
24
  campos = { emissao_boleto: '0',
23
- distribuicao_boleto: '0',
24
- especie_titulo: '02',
25
- codigo_baixa: '00',
26
- codigo_carteira: '7',}.merge!(campos)
25
+ distribuicao_boleto: '0',
26
+ especie_titulo: '02',
27
+ codigo_baixa: '00',
28
+ codigo_carteira: '7' }.merge!(campos)
27
29
  super(campos)
28
30
  end
29
31
 
@@ -65,7 +67,7 @@ module Brcobranca
65
67
  "#{convenio.rjust(9, '0')}0014#{carteira}#{variacao} "
66
68
  end
67
69
 
68
- alias_method :convenio_lote, :codigo_convenio
70
+ alias convenio_lote codigo_convenio
69
71
 
70
72
  def info_conta
71
73
  # CAMPO TAMANHO
@@ -101,13 +103,13 @@ module Brcobranca
101
103
  def formata_nosso_numero(nosso_numero)
102
104
  quantidade = case convenio.to_s.size
103
105
  # convenio de 4 posicoes com nosso numero de 7
104
- when 4 then
106
+ when 4
105
107
  7
106
108
  # convenio de 6 posicoes com nosso numero de 5
107
- when 6 then
109
+ when 6
108
110
  5
109
111
  # convenio de 7 posicoes com nosso numero de 10
110
- when 7 then
112
+ when 7
111
113
  10
112
114
  else
113
115
  raise Brcobranca::NaoImplementado, 'Tipo de convênio não implementado.'
@@ -136,8 +138,9 @@ module Brcobranca
136
138
  #
137
139
  def monta_segmento_p(pagamento, nro_lote, sequencial)
138
140
  # campos com * na frente nao foram implementados
141
+ segmento_p = ''
139
142
  # # DESCRICAO TAMANHO
140
- segmento_p = cod_banco # codigo banco 3
143
+ segmento_p += cod_banco # codigo banco 3
141
144
  segmento_p << nro_lote.to_s.rjust(4, '0') # lote de servico 4
142
145
  segmento_p << '3' # tipo de registro 1
143
146
  segmento_p << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
@@ -227,7 +230,7 @@ module Brcobranca
227
230
  # No caso de carteira 31 ou carteira 11/17 modalidade Vinculada,
228
231
  # se não informado nenhum código,
229
232
  # o sistema assume automaticamente Protesto em 3 dias úteis.
230
- segmento_p << pagamento.codigo_protesto # cod. para protesto 1
233
+ segmento_p << pagamento.codigo_protesto # cod. para protesto 1
231
234
  # Preencher de acordo com o código informado na posição 221.
232
235
  # Para código '1' – é possível, de 6 a 29 dias, 35o, 40o, dia corrido.
233
236
  # Para código '2' – é possível, 3o, 4o ou 5o dia útil.