brcobranca 9.2.4 → 10.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +43 -9
- data/HISTORY.md +71 -0
- data/README.md +47 -54
- data/Rakefile +4 -4
- data/lib/brcobranca/arquivos/logos/ailos.eps +412 -0
- data/lib/brcobranca/arquivos/logos/ailos_carne.eps +412 -0
- data/lib/brcobranca/arquivos/logos/safra.eps +0 -0
- data/lib/brcobranca/arquivos/logos/safra_carne.eps +0 -0
- data/lib/brcobranca/boleto/{cecred.rb → ailos.rb} +7 -5
- data/lib/brcobranca/boleto/banco_brasil.rb +9 -5
- data/lib/brcobranca/boleto/banco_brasilia.rb +5 -5
- data/lib/brcobranca/boleto/banco_nordeste.rb +4 -3
- data/lib/brcobranca/boleto/banestes.rb +4 -3
- data/lib/brcobranca/boleto/banrisul.rb +4 -3
- data/lib/brcobranca/boleto/base.rb +12 -7
- data/lib/brcobranca/boleto/bradesco.rb +4 -3
- data/lib/brcobranca/boleto/caixa.rb +10 -8
- data/lib/brcobranca/boleto/citibank.rb +9 -8
- data/lib/brcobranca/boleto/credisis.rb +6 -4
- data/lib/brcobranca/boleto/hsbc.rb +8 -6
- data/lib/brcobranca/boleto/itau.rb +5 -5
- data/lib/brcobranca/boleto/safra.rb +4 -4
- data/lib/brcobranca/boleto/santander.rb +4 -2
- data/lib/brcobranca/boleto/sicoob.rb +4 -3
- data/lib/brcobranca/boleto/sicredi.rb +6 -3
- data/lib/brcobranca/boleto/template/base.rb +2 -3
- data/lib/brcobranca/boleto/template/rghost.rb +18 -13
- data/lib/brcobranca/boleto/template/rghost_carne.rb +18 -12
- data/lib/brcobranca/boleto/unicred.rb +61 -103
- data/lib/brcobranca/calculo.rb +14 -9
- data/lib/brcobranca/calculo_data.rb +6 -5
- data/lib/brcobranca/currency.rb +10 -10
- data/lib/brcobranca/formatacao.rb +2 -1
- data/lib/brcobranca/formatacao_string.rb +7 -6
- data/lib/brcobranca/limpeza.rb +3 -3
- data/lib/brcobranca/remessa/base.rb +7 -10
- data/lib/brcobranca/remessa/cnab240/{cecred.rb → ailos.rb} +18 -15
- data/lib/brcobranca/remessa/cnab240/banco_brasil.rb +14 -11
- data/lib/brcobranca/remessa/cnab240/base.rb +56 -39
- data/lib/brcobranca/remessa/cnab240/base_correspondente.rb +25 -17
- data/lib/brcobranca/remessa/cnab240/caixa.rb +21 -13
- data/lib/brcobranca/remessa/cnab240/sicoob.rb +33 -30
- data/lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb +14 -7
- data/lib/brcobranca/remessa/cnab240/sicredi.rb +28 -22
- data/lib/brcobranca/remessa/cnab240/unicred.rb +2 -1
- data/lib/brcobranca/remessa/cnab400/banco_brasil.rb +9 -9
- data/lib/brcobranca/remessa/cnab400/banco_brasilia.rb +29 -28
- data/lib/brcobranca/remessa/cnab400/banco_nordeste.rb +11 -10
- data/lib/brcobranca/remessa/cnab400/banrisul.rb +13 -10
- data/lib/brcobranca/remessa/cnab400/base.rb +22 -9
- data/lib/brcobranca/remessa/cnab400/bradesco.rb +30 -5
- data/lib/brcobranca/remessa/cnab400/citibank.rb +6 -5
- data/lib/brcobranca/remessa/cnab400/credisis.rb +7 -5
- data/lib/brcobranca/remessa/cnab400/itau.rb +9 -6
- data/lib/brcobranca/remessa/cnab400/santander.rb +17 -15
- data/lib/brcobranca/remessa/cnab400/sicoob.rb +8 -11
- data/lib/brcobranca/remessa/cnab400/unicred.rb +185 -69
- data/lib/brcobranca/remessa/pagamento.rb +43 -11
- data/lib/brcobranca/retorno/base.rb +5 -43
- data/lib/brcobranca/retorno/cnab240/{cecred.rb → ailos.rb} +12 -10
- data/lib/brcobranca/retorno/cnab240/base.rb +8 -9
- data/lib/brcobranca/retorno/cnab240/caixa.rb +4 -5
- data/lib/brcobranca/retorno/cnab240/santander.rb +12 -8
- data/lib/brcobranca/retorno/cnab240/sicoob.rb +11 -9
- data/lib/brcobranca/retorno/cnab240/sicredi.rb +12 -9
- data/lib/brcobranca/retorno/cnab400/banco_brasil.rb +3 -3
- data/lib/brcobranca/retorno/cnab400/banco_brasilia.rb +2 -1
- data/lib/brcobranca/retorno/cnab400/banco_nordeste.rb +2 -1
- data/lib/brcobranca/retorno/cnab400/banrisul.rb +1 -1
- data/lib/brcobranca/retorno/cnab400/base.rb +13 -12
- data/lib/brcobranca/retorno/cnab400/bradesco.rb +4 -4
- data/lib/brcobranca/retorno/cnab400/credisis.rb +2 -1
- data/lib/brcobranca/retorno/cnab400/itau.rb +6 -5
- data/lib/brcobranca/retorno/cnab400/santander.rb +8 -7
- data/lib/brcobranca/retorno/cnab400/unicred.rb +63 -58
- data/lib/brcobranca/retorno/retorno_cbr643.rb +1 -2
- data/lib/brcobranca/retorno/retorno_cnab240.rb +11 -9
- data/lib/brcobranca/retorno/retorno_cnab400.rb +6 -5
- data/lib/brcobranca/util/date.rb +2 -1
- data/lib/brcobranca/util/empresa.rb +2 -1
- data/lib/brcobranca/util/errors.rb +31 -31
- data/lib/brcobranca/validations.rb +127 -151
- data/lib/brcobranca/version.rb +2 -3
- data/lib/brcobranca.rb +5 -5
- data/spec/brcobranca/base_spec.rb +20 -11
- data/spec/brcobranca/boleto/{cecred_spec.rb → ailos_spec.rb} +13 -12
- data/spec/brcobranca/boleto/banco_brasil_spec.rb +14 -12
- data/spec/brcobranca/boleto/banco_brasilia_spec.rb +11 -10
- data/spec/brcobranca/boleto/banco_nordeste_spec.rb +2 -3
- data/spec/brcobranca/boleto/banestes_spec.rb +10 -11
- data/spec/brcobranca/boleto/banrisul_spec.rb +10 -12
- data/spec/brcobranca/boleto/bradesco_spec.rb +36 -33
- data/spec/brcobranca/boleto/caixa_spec.rb +11 -12
- data/spec/brcobranca/boleto/citibank_spec.rb +10 -11
- data/spec/brcobranca/boleto/credisis_spec.rb +18 -17
- data/spec/brcobranca/boleto/hsbc_spec.rb +9 -10
- data/spec/brcobranca/boleto/itau_spec.rb +11 -12
- data/spec/brcobranca/boleto/safra_spec.rb +10 -11
- data/spec/brcobranca/boleto/santander_spec.rb +9 -10
- data/spec/brcobranca/boleto/sicoob_spec.rb +10 -11
- data/spec/brcobranca/boleto/sicredi_spec.rb +14 -10
- data/spec/brcobranca/boleto/unicred_spec.rb +28 -38
- data/spec/brcobranca/boletos_em_lote_spec.rb +7 -7
- data/spec/brcobranca/calculo_data_spec.rb +2 -2
- data/spec/brcobranca/calculo_spec.rb +13 -11
- data/spec/brcobranca/currency_spec.rb +26 -26
- data/spec/brcobranca/formatacao_spec.rb +2 -2
- data/spec/brcobranca/formatacao_string_spec.rb +10 -4
- data/spec/brcobranca/limpeza_spec.rb +2 -2
- data/spec/brcobranca/remessa/base_spec.rb +1 -2
- data/spec/brcobranca/remessa/cnab240/{cecred_spec.rb → ailos_spec.rb} +48 -47
- data/spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb +18 -13
- data/spec/brcobranca/remessa/cnab240/base_spec.rb +33 -10
- data/spec/brcobranca/remessa/cnab240/caixa_spec.rb +19 -17
- data/spec/brcobranca/remessa/cnab240/sicoob_banco_brasil_spec.rb +12 -8
- data/spec/brcobranca/remessa/cnab240/sicoob_spec.rb +28 -26
- data/spec/brcobranca/remessa/cnab240/sicredi_spec.rb +12 -10
- data/spec/brcobranca/remessa/cnab240/unicred_spec.rb +11 -9
- data/spec/brcobranca/remessa/cnab400/banco_brasil_spec.rb +6 -3
- data/spec/brcobranca/remessa/cnab400/banco_brasilia_spec.rb +24 -19
- data/spec/brcobranca/remessa/cnab400/banco_nordeste_spec.rb +19 -14
- data/spec/brcobranca/remessa/cnab400/banrisul_spec.rb +17 -15
- data/spec/brcobranca/remessa/cnab400/base_spec.rb +23 -8
- data/spec/brcobranca/remessa/cnab400/bradesco_spec.rb +19 -17
- data/spec/brcobranca/remessa/cnab400/citibank_spec.rb +14 -12
- data/spec/brcobranca/remessa/cnab400/credisis_spec.rb +21 -19
- data/spec/brcobranca/remessa/cnab400/itau_spec.rb +18 -16
- data/spec/brcobranca/remessa/cnab400/santander_spec.rb +24 -22
- data/spec/brcobranca/remessa/cnab400/sicoob_spec.rb +20 -20
- data/spec/brcobranca/remessa/cnab400/unicred_spec.rb +167 -166
- data/spec/brcobranca/remessa/pagamento_spec.rb +16 -15
- data/spec/brcobranca/retorno/cnab240/base_spec.rb +10 -9
- data/spec/brcobranca/retorno/cnab240/cecred_spec.rb +4 -2
- data/spec/brcobranca/retorno/cnab240/santander_spec.rb +2 -0
- data/spec/brcobranca/retorno/cnab240/sicoob_spec.rb +2 -0
- data/spec/brcobranca/retorno/cnab240/sicredi_spec.rb +2 -0
- data/spec/brcobranca/retorno/cnab400/banco_brasilia_spec.rb +2 -1
- data/spec/brcobranca/retorno/cnab400/banco_nordeste_spec.rb +2 -1
- data/spec/brcobranca/retorno/cnab400/banrisul_spec.rb +2 -1
- data/spec/brcobranca/retorno/cnab400/base_spec.rb +25 -25
- data/spec/brcobranca/retorno/cnab400/bradesco_spec.rb +2 -1
- data/spec/brcobranca/retorno/cnab400/credisis_spec.rb +5 -4
- data/spec/brcobranca/retorno/cnab400/itau_spec.rb +4 -2
- data/spec/brcobranca/retorno/cnab400/santander_spec.rb +2 -1
- data/spec/brcobranca/retorno/cnab400/unicred_spec.rb +28 -32
- data/spec/brcobranca/retorno/retorno_cbr643_spec.rb +2 -2
- data/spec/brcobranca/retorno/retorno_cnab400_spec.rb +2 -1
- data/spec/brcobranca/retorno/retorno_cnab_240_spec.rb +2 -1
- data/spec/brcobranca/rghost_spec.rb +4 -4
- data/spec/brcobranca/util/empresa_spec.rb +1 -2
- data/spec/brcobranca_spec.rb +1 -2
- metadata +85 -162
- data/spec/arquivos/CBR64310.RET +0 -28
- data/spec/arquivos/CNAB240.RET +0 -74
- data/spec/arquivos/CNAB240CECRED.RET +0 -10
- data/spec/arquivos/CNAB240SANTANDER.RET +0 -8
- data/spec/arquivos/CNAB240SICOOB.RET +0 -10
- data/spec/arquivos/CNAB240SICREDI.CRT +0 -8
- data/spec/arquivos/CNAB400.RET +0 -54
- data/spec/arquivos/CNAB400BANCOBRASILIA.RET +0 -3
- data/spec/arquivos/CNAB400BANCONORDESTE.RET +0 -3
- data/spec/arquivos/CNAB400BANRISUL.RET +0 -3
- data/spec/arquivos/CNAB400BRADESCO.RET +0 -8
- data/spec/arquivos/CNAB400CREDISIS.RET +0 -3
- data/spec/arquivos/CNAB400ITAU.RET +0 -54
- data/spec/arquivos/CNAB400SANTANDER.RET +0 -54
- data/spec/arquivos/CNAB400UNICRED.RET +0 -3
- data/spec/fixtures/remessa/remessa-banco-brasil-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-banco-brasilia-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-banco-nordeste-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-banco_brasil-cnab240.rem +0 -7
- data/spec/fixtures/remessa/remessa-bancoob-cnab240.rem +0 -7
- data/spec/fixtures/remessa/remessa-banrisul-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-bradesco-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-caixa-cnab240.rem +0 -7
- data/spec/fixtures/remessa/remessa-cecred-cnab240.rem +0 -7
- data/spec/fixtures/remessa/remessa-citibank-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-credisis-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-itau-cnab400.rem +0 -4
- data/spec/fixtures/remessa/remessa-santander-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-sicoob-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-sicoob-correspondente-bb-cnab240.rem +0 -4
- data/spec/fixtures/remessa/remessa-sicredi-cnab240.rem +0 -7
- data/spec/fixtures/remessa/remessa-unicred-cnab240.rem +0 -7
- data/spec/fixtures/remessa/remessa-unicred-cnab400.rem +0 -3
- data/spec/spec.opts +0 -8
- data/spec/spec_helper.rb +0 -38
- data/spec/support/remessa_helpers.rb +0 -13
- data/spec/support/shared_examples/busca_logotipo.rb +0 -15
- data/spec/support/shared_examples/cnab240.rb +0 -259
- data/spec/support/shared_examples/cnab400.rb +0 -180
- data/spec/support/shared_examples/formatos_validos.rb +0 -36
data/lib/brcobranca/calculo.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
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.
|
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 =
|
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 =
|
60
|
-
total
|
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.
|
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 +=
|
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])
|
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])
|
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
|
-
#
|
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
|
29
|
+
data_base += 10_000
|
29
30
|
fator_vencimento = Integer(self - data_base) + 1000
|
30
31
|
end
|
31
32
|
fator_vencimento.to_s
|
data/lib/brcobranca/currency.rb
CHANGED
@@ -1,27 +1,27 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# frozen_string_literal: true
|
3
2
|
|
4
3
|
# @author Fernando Vieira do http://simplesideias.com.br
|
5
|
-
module Brcobranca
|
6
|
-
module Currency
|
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
|
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
|
-
|
20
|
+
/^(\+|-)?[0-9]+((\.|,)[0-9]+)?$/.match?(self)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
module Number
|
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
|
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
|
-
#
|
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
|
-
|
22
|
+
|
23
|
+
(self[0, truncate_at]).to_s
|
22
24
|
end
|
23
25
|
|
24
26
|
def remove_accents
|
25
|
-
|
26
|
-
|
27
|
-
|
27
|
+
tr(
|
28
|
+
'ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž',
|
29
|
+
'AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHhIIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnOOOOOOooooooOoOoOoRrRrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz'
|
28
30
|
)
|
29
31
|
end
|
30
|
-
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
data/lib/brcobranca/limpeza.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
#
|
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
|
-
#
|
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,
|
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
|
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 =
|
71
|
-
total.somente_numeros.rjust(tamanho,
|
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
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
module Brcobranca
|
3
4
|
module Remessa
|
4
5
|
module Cnab240
|
5
|
-
class
|
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
|
-
'
|
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
|
-
|
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
|
-
|
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,
|
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 =
|
125
|
-
total_cobranca_caucionada =
|
126
|
-
total_cobranca_descontada =
|
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
|
-
|
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
|
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(
|
144
|
+
def codigo_baixa(_pagamento)
|
142
145
|
'2'
|
143
146
|
end
|
144
147
|
|
145
|
-
def dias_baixa(
|
148
|
+
def dias_baixa(_pagamento)
|
146
149
|
''.rjust(3, ' ')
|
147
150
|
end
|
148
151
|
end
|
@@ -1,10 +1,12 @@
|
|
1
|
-
#
|
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
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
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
|
106
|
+
when 4
|
105
107
|
7
|
106
108
|
# convenio de 6 posicoes com nosso numero de 5
|
107
|
-
when 6
|
109
|
+
when 6
|
108
110
|
5
|
109
111
|
# convenio de 7 posicoes com nosso numero de 10
|
110
|
-
when 7
|
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
|
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
|
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.
|