bbrcobranca 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/README.md +3 -6
- data/lib/bbrcobranca.rb +0 -3
- data/lib/bbrcobranca/boleto/itau.rb +5 -0
- data/lib/bbrcobranca/boleto/santander.rb +17 -9
- data/lib/bbrcobranca/version.rb +1 -1
- data/spec/brcobranca/boleto/itau_spec.rb +9 -0
- data/spec/brcobranca/boleto/santander_spec.rb +11 -0
- metadata +1 -3
- data/lib/bbrcobranca/boleto/itau_adimplere.rb +0 -159
- data/lib/bbrcobranca/boleto/santander_adimplere.rb +0 -73
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c0671ce4d1bfd91d27b00ee73c4c86916422478
|
4
|
+
data.tar.gz: 8f48b644d39e06abfe345547941244df34dbba6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa1a203939e9535719b75612f2252cd3434e38100be5db68289e516901f2c53f6ada67ce95aab1a3a098e5efe6e1d101c65305044dbf82f797a0602dc35f5551
|
7
|
+
data.tar.gz: 941c1a5ed7291de2993501bc982a0ebfd33c4da44e7141656311e3afd21078b394a68163a116d3ad83e0bd115a37195bac23d6b4bede648767ddfd55ee81e9cb
|
data/CHANGELOG.md
CHANGED
@@ -1 +1,15 @@
|
|
1
1
|
# Change Log
|
2
|
+
|
3
|
+
## 0.0.2 (30/08/2018)
|
4
|
+
|
5
|
+
- Adiciona campo `codigo_barras` para gerador de boleto Itau
|
6
|
+
- Adiciona campos `codigo_barras` e `nosso_numero_dv` para gerador de boleto Santander
|
7
|
+
|
8
|
+
## 0.0.1 (30/08/2018)
|
9
|
+
|
10
|
+
- Renomeia classes para lançar como Bbrcobraca
|
11
|
+
|
12
|
+
## Before 0.0.1
|
13
|
+
|
14
|
+
- Fork brcobranca gem
|
15
|
+
- Adiciona campos `linha_cabecalho1`, `linha_cabecalho2`, `logotipo_cabecalho` e `linha_digitavel` para permitir maior customização dos boletos
|
data/README.md
CHANGED
@@ -2,11 +2,8 @@
|
|
2
2
|
|
3
3
|
Fork modificado do brcobranca.
|
4
4
|
|
5
|
-
## Motivo do fork
|
5
|
+
## Motivo do fork?
|
6
6
|
|
7
|
-
|
7
|
+
Permitir maior customização de boletos gerados.
|
8
8
|
|
9
|
-
|
10
|
-
- linha_cabecalho2
|
11
|
-
- logotipo_cabecalho
|
12
|
-
- linha_digitavel
|
9
|
+
Veja nosso [CHANGELOG.md](https://github.com/adimplere/bbrcobranca/blob/master/CHANGELOG.md) para mais informações
|
data/lib/bbrcobranca.rb
CHANGED
@@ -112,10 +112,7 @@ module Bbrcobranca
|
|
112
112
|
autoload :Banrisul, 'bbrcobranca/boleto/banrisul'
|
113
113
|
autoload :Credisis, 'bbrcobranca/boleto/credisis'
|
114
114
|
autoload :Cecred, 'bbrcobranca/boleto/cecred'
|
115
|
-
autoload :SantanderAdimplere, 'bbrcobranca/boleto/santander_adimplere'
|
116
115
|
autoload :BradescoGRB, 'bbrcobranca/boleto/bradesco_grb'
|
117
|
-
autoload :ItauAdimplere, 'bbrcobranca/boleto/itau_adimplere'
|
118
|
-
|
119
116
|
|
120
117
|
# Módulos para classes de template
|
121
118
|
module Template
|
@@ -6,6 +6,7 @@ module Bbrcobranca
|
|
6
6
|
class Itau < Base # Banco Itaú
|
7
7
|
# Usado somente em carteiras especiais com registro para complementar o número do cocumento
|
8
8
|
attr_reader :seu_numero
|
9
|
+
attr_writer :codigo_barras
|
9
10
|
|
10
11
|
validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
|
11
12
|
validates_length_of :convenio, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
|
@@ -21,6 +22,10 @@ module Bbrcobranca
|
|
21
22
|
super(campos)
|
22
23
|
end
|
23
24
|
|
25
|
+
def codigo_barras
|
26
|
+
instance_variable_get("@codigo_barras") || super
|
27
|
+
end
|
28
|
+
|
24
29
|
# Codigo do banco emissor (3 dígitos sempre)
|
25
30
|
#
|
26
31
|
# @return [String] 3 caracteres numéricos.
|
@@ -5,6 +5,8 @@
|
|
5
5
|
module Bbrcobranca
|
6
6
|
module Boleto
|
7
7
|
class Santander < Base # Banco Santander
|
8
|
+
attr_writer :codigo_barras, :nosso_numero_dv
|
9
|
+
|
8
10
|
validates_presence_of :convenio, message: 'não pode estar em branco.'
|
9
11
|
validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
|
10
12
|
validates_length_of :convenio, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
|
@@ -17,6 +19,21 @@ module Bbrcobranca
|
|
17
19
|
super(campos)
|
18
20
|
end
|
19
21
|
|
22
|
+
def codigo_barras
|
23
|
+
instance_variable_get("@codigo_barras") || super
|
24
|
+
end
|
25
|
+
|
26
|
+
def nosso_numero_dv
|
27
|
+
if instance_variable_get("@nosso_numero_dv")
|
28
|
+
instance_variable_get("@nosso_numero_dv").gsub(/\D/, '')
|
29
|
+
else
|
30
|
+
nosso_numero.modulo11(
|
31
|
+
multiplicador: (2..9).to_a,
|
32
|
+
mapeamento: { 10 => 0, 11 => 0 }
|
33
|
+
) { |total| 11 - (total % 11) }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
20
37
|
# Codigo do banco emissor (3 dígitos sempre)
|
21
38
|
#
|
22
39
|
# @return [String] 3 caracteres numéricos.
|
@@ -43,15 +60,6 @@ module Bbrcobranca
|
|
43
60
|
@nosso_numero = valor.to_s.rjust(7, '0') if valor
|
44
61
|
end
|
45
62
|
|
46
|
-
# Dígito verificador do nosso número.
|
47
|
-
# @return [String] 1 caracteres numéricos.
|
48
|
-
def nosso_numero_dv
|
49
|
-
nosso_numero.modulo11(
|
50
|
-
multiplicador: (2..9).to_a,
|
51
|
-
mapeamento: { 10 => 0, 11 => 0 }
|
52
|
-
) { |total| 11 - (total % 11) }
|
53
|
-
end
|
54
|
-
|
55
63
|
# Nosso número para exibir no boleto.
|
56
64
|
# @return [String]
|
57
65
|
# @example
|
data/lib/bbrcobranca/version.rb
CHANGED
@@ -58,6 +58,15 @@ RSpec.describe Bbrcobranca::Boleto::Itau do
|
|
58
58
|
expect(boleto_novo.carteira).to eql('175')
|
59
59
|
end
|
60
60
|
|
61
|
+
it 'usa codigo de barras dado' do
|
62
|
+
boleto = described_class.new(
|
63
|
+
@valid_attributes.merge(codigo_barras: '34191377000000135001750025828170810536789000')
|
64
|
+
)
|
65
|
+
expect(boleto.codigo_barras).to eq(
|
66
|
+
'34191377000000135001750025828170810536789000'
|
67
|
+
)
|
68
|
+
end
|
69
|
+
|
61
70
|
it '#usa_seu_numero?' do
|
62
71
|
@valid_attributes[:carteira] = 198
|
63
72
|
boleto_novo = described_class.new(@valid_attributes)
|
@@ -34,6 +34,17 @@ RSpec.describe Bbrcobranca::Boleto::Santander do
|
|
34
34
|
expect(boleto_novo.carteira).to eql('102')
|
35
35
|
end
|
36
36
|
|
37
|
+
it 'usa codigo de barras e nosso numero dv dados' do
|
38
|
+
boleto_novo = described_class.new(
|
39
|
+
@valid_attributes.merge(
|
40
|
+
codigo_barras: '03399511500000025009189977500000900002690102',
|
41
|
+
nosso_numero_dv: '8'
|
42
|
+
)
|
43
|
+
)
|
44
|
+
expect(boleto_novo.codigo_barras).to eql('03399511500000025009189977500000900002690102')
|
45
|
+
expect(boleto_novo.nosso_numero_boleto).to eql('9000026-8')
|
46
|
+
end
|
47
|
+
|
37
48
|
it 'Criar nova instancia com atributos válidos' do
|
38
49
|
boleto_novo = described_class.new(@valid_attributes)
|
39
50
|
expect(boleto_novo.banco).to eql('033')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bbrcobranca
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Glauco Custódio
|
@@ -122,9 +122,7 @@ files:
|
|
122
122
|
- lib/bbrcobranca/boleto/credisis.rb
|
123
123
|
- lib/bbrcobranca/boleto/hsbc.rb
|
124
124
|
- lib/bbrcobranca/boleto/itau.rb
|
125
|
-
- lib/bbrcobranca/boleto/itau_adimplere.rb
|
126
125
|
- lib/bbrcobranca/boleto/santander.rb
|
127
|
-
- lib/bbrcobranca/boleto/santander_adimplere.rb
|
128
126
|
- lib/bbrcobranca/boleto/sicoob.rb
|
129
127
|
- lib/bbrcobranca/boleto/sicredi.rb
|
130
128
|
- lib/bbrcobranca/boleto/template/base.rb
|
@@ -1,159 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
#
|
3
|
-
|
4
|
-
module Bbrcobranca
|
5
|
-
module Boleto
|
6
|
-
class ItauAdimplere < Base # Banco Itaú
|
7
|
-
# Usado somente em carteiras especiais com registro para complementar o número do cocumento
|
8
|
-
attr_reader :seu_numero
|
9
|
-
attr_writer :codigo_barras
|
10
|
-
|
11
|
-
def codigo_barras
|
12
|
-
instance_variable_get("@codigo_barras")
|
13
|
-
end
|
14
|
-
|
15
|
-
def logotipo
|
16
|
-
if Bbrcobranca.configuration.gerador == :rghost_carne
|
17
|
-
File.join(
|
18
|
-
brcobranca_path, "lib", "bbrcobranca", "arquivos", "logos", "itau_carne.eps"
|
19
|
-
)
|
20
|
-
else
|
21
|
-
File.join(brcobranca_path, "lib", "bbrcobranca", "arquivos", "logos", "itau.eps")
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
|
26
|
-
validates_length_of :convenio, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
|
27
|
-
validates_length_of :nosso_numero, maximum: 8, message: 'deve ser menor ou igual a 8 dígitos.'
|
28
|
-
validates_length_of :conta_corrente, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
|
29
|
-
with_options if: :usa_seu_numero? do |v|
|
30
|
-
v.validates_length_of :seu_numero, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
|
31
|
-
end
|
32
|
-
# Nova instancia do Itau
|
33
|
-
# @param (see Bbrcobranca::Boleto::Base#initialize)
|
34
|
-
def initialize(campos = {})
|
35
|
-
campos = { carteira: '175' }.merge!(campos)
|
36
|
-
super(campos)
|
37
|
-
end
|
38
|
-
|
39
|
-
# Codigo do banco emissor (3 dígitos sempre)
|
40
|
-
#
|
41
|
-
# @return [String] 3 caracteres numéricos.
|
42
|
-
def banco
|
43
|
-
'341'
|
44
|
-
end
|
45
|
-
|
46
|
-
# Número do convênio/contrato do cliente junto ao banco.
|
47
|
-
# @return [String] 5 caracteres numéricos.
|
48
|
-
def convenio=(valor)
|
49
|
-
@convenio = valor.to_s.rjust(5, '0') if valor
|
50
|
-
end
|
51
|
-
|
52
|
-
# Conta corrente
|
53
|
-
# @return [String] 5 caracteres numéricos.
|
54
|
-
def conta_corrente=(valor)
|
55
|
-
@conta_corrente = valor.to_s.rjust(5, '0') if valor
|
56
|
-
end
|
57
|
-
|
58
|
-
# Número seqüencial utilizado para identificar o boleto.
|
59
|
-
# @return [String] 8 caracteres numéricos.
|
60
|
-
def nosso_numero=(valor)
|
61
|
-
@nosso_numero = valor.to_s.rjust(8, '0') if valor
|
62
|
-
end
|
63
|
-
|
64
|
-
# Número seqüencial utilizado para identificar o boleto.
|
65
|
-
# @return [String] 7 caracteres numéricos.
|
66
|
-
def seu_numero=(valor)
|
67
|
-
@seu_numero = valor.to_s.rjust(7, '0') if valor
|
68
|
-
end
|
69
|
-
|
70
|
-
def usa_seu_numero?
|
71
|
-
%w(198 106 107 122 142 143 195 196).include?(carteira.to_s)
|
72
|
-
end
|
73
|
-
|
74
|
-
# Dígito verificador do nosso número.
|
75
|
-
#
|
76
|
-
# Para a grande maioria das carteiras, são considerados para a obtenção do DAC/DV, os dados
|
77
|
-
# "AGENCIA(sem DAC/DV)/CONTA(sem DAC/DV)/CARTEIRA/NOSSO NUMERO", calculado pelo criterio do Modulo 10.<br/>
|
78
|
-
# A excecao, estão as carteiras 112, 126, 131, 146, 150 e 168 cuja obtenção esta baseada apenas nos
|
79
|
-
# dados "CARTEIRA/NOSSO NUMERO".
|
80
|
-
#
|
81
|
-
# @return [String] 1 caracteres numéricos.
|
82
|
-
def nosso_numero_dv
|
83
|
-
if %w(112 126 131 146 150 168).include?(carteira)
|
84
|
-
"#{carteira}#{nosso_numero}".modulo10
|
85
|
-
else
|
86
|
-
"#{agencia}#{conta_corrente}#{carteira}#{nosso_numero}".modulo10
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
# Calcula o dígito verificador para conta corrente do Itau.
|
91
|
-
# Retorna apenas o dígito verificador da conta ou nil caso seja impossível calcular.
|
92
|
-
def agencia_conta_corrente_dv
|
93
|
-
"#{agencia}#{conta_corrente}".modulo10
|
94
|
-
end
|
95
|
-
|
96
|
-
# Nosso número para exibir no boleto.
|
97
|
-
# @return [String]
|
98
|
-
# @example
|
99
|
-
# boleto.nosso_numero_boleto #=> "175/12345678-4"
|
100
|
-
def nosso_numero_boleto
|
101
|
-
"#{carteira}/#{nosso_numero}-#{nosso_numero_dv}"
|
102
|
-
end
|
103
|
-
|
104
|
-
# Agência + conta corrente do cliente para exibir no boleto.
|
105
|
-
# @return [String]
|
106
|
-
# @example
|
107
|
-
# boleto.agencia_conta_boleto #=> "0811 / 53678-8"
|
108
|
-
def agencia_conta_boleto
|
109
|
-
"#{agencia} / #{conta_corrente}-#{agencia_conta_corrente_dv}"
|
110
|
-
end
|
111
|
-
|
112
|
-
# Segunda parte do código de barras.
|
113
|
-
#
|
114
|
-
# CARTEIRAS 198, 106, 107,122, 142, 143, 195 e 196<br/>
|
115
|
-
# 01 a 03 | 03 | 9(3) | Código do Banco na Câmara de Compensação = ‘341’<br/>
|
116
|
-
# 04 a 04 | 01 | 9(1) | Código da Moeda = '9'<br/>
|
117
|
-
# 05 a 05 | 01 | 9(1) | DAC do Código de Barras MOD 11-2a9<br/>
|
118
|
-
# 06 a 09 | 04 | 9(04) | Fator de Vencimento<br/>
|
119
|
-
# 10 a 19 | 10 | 9(08) | V(2) Valor<br/>
|
120
|
-
# 20 a 22 | 03 | 9(3) | Carteira<br/>
|
121
|
-
# 23 a 30 | 08 | 9(8) | Nosso Número<br/>
|
122
|
-
# 31 a 37 | 07 | 9(7) | Seu Número (Número do Documento)<br/>
|
123
|
-
# 38 a 42 | 05 | 9(5) | Código do Cliente (fornecido pelo Banco)<br/>
|
124
|
-
# 43 a 43 | 01 | 9(1) | DAC dos campos acima (posições 20 a 42) MOD 10<br/>
|
125
|
-
# 44 a 44 | 01 | 9(1) | Zero<br/>
|
126
|
-
#
|
127
|
-
# DEMAIS CARTEIRAS<br/>
|
128
|
-
# 01 a 03 | 03 | 9(03) | Código do Banco na Câmara de Compensação = '341'<br/>
|
129
|
-
# 04 a 04 | 01 | 9(01) | Código da Moeda = '9'<br/>
|
130
|
-
# 05 a 05 | 01 | 9(01) | DAC código de Barras MOD 11-2a9<br/>
|
131
|
-
# 06 a 09 | 04 | 9(04) | Fator de Vencimento<br/>
|
132
|
-
# 10 a 19 | 10 | 9(08)V(2) | Valor<br/>
|
133
|
-
# 20 a 22 | 03 | 9(03) | Carteira<br/>
|
134
|
-
# 23 a 30 | 08 | 9(08) | Nosso Número<br/>
|
135
|
-
# 31 a 31 | 01 | 9(01) | DAC [Agência /Conta/Carteira/Nosso Número] MOD 10<br/>
|
136
|
-
# 32 a 35 | 04 | 9(04) | N.º da Agência cedente<br/>
|
137
|
-
# 36 a 40 | 05 | 9(05) | N.º da Conta Corrente<br/>
|
138
|
-
# 41 a 41 | 01 | 9(01) | DAC [Agência/Conta Corrente] MOD 10<br/>
|
139
|
-
# 42 a 44 | 03 | 9(03) | Zeros<br/>
|
140
|
-
#
|
141
|
-
# @return [String] 25 caracteres numéricos.
|
142
|
-
def codigo_barras_segunda_parte
|
143
|
-
case carteira.to_i
|
144
|
-
when 198, 106, 107, 122, 142, 143, 195, 196
|
145
|
-
dv = "#{carteira}#{nosso_numero}#{seu_numero}#{convenio}".modulo10
|
146
|
-
"#{carteira}#{nosso_numero}#{seu_numero}#{convenio}#{dv}0"
|
147
|
-
else
|
148
|
-
"#{carteira}#{nosso_numero}#{nosso_numero_dv}#{agencia}#{conta_corrente}#{agencia_conta_corrente_dv}000"
|
149
|
-
end
|
150
|
-
end
|
151
|
-
|
152
|
-
private
|
153
|
-
|
154
|
-
def brcobranca_path
|
155
|
-
@brcobranca_path ||= Gem::Specification.find_by_name("bbrcobranca").gem_dir
|
156
|
-
end
|
157
|
-
end
|
158
|
-
end
|
159
|
-
end
|
@@ -1,73 +0,0 @@
|
|
1
|
-
module Bbrcobranca
|
2
|
-
module Boleto
|
3
|
-
class SantanderAdimplere < Base
|
4
|
-
attr_writer :codigo_barras, :nosso_numero_dv
|
5
|
-
|
6
|
-
def codigo_barras
|
7
|
-
instance_variable_get("@codigo_barras").remove(/\D/) rescue nil
|
8
|
-
end
|
9
|
-
|
10
|
-
def nosso_numero_dv
|
11
|
-
instance_variable_get("@nosso_numero_dv").remove(/\D/) rescue nil
|
12
|
-
end
|
13
|
-
|
14
|
-
def logotipo
|
15
|
-
if Bbrcobranca.configuration.gerador == :rghost_carne
|
16
|
-
File.join(
|
17
|
-
brcobranca_path, "lib", "bbrcobranca", "arquivos", "logos", "santander_carne.eps"
|
18
|
-
)
|
19
|
-
else
|
20
|
-
File.join(brcobranca_path, "lib", "bbrcobranca", "arquivos", "logos", "santander.eps")
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
validates_presence_of :convenio, message: 'não pode estar em branco.'
|
25
|
-
validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
|
26
|
-
validates_length_of :convenio, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
|
27
|
-
validates_length_of :nosso_numero, maximum: 8, message: 'deve ser menor ou igual a 8 dígitos.'
|
28
|
-
|
29
|
-
def initialize(campos = {})
|
30
|
-
campos = { carteira: '102' }.merge!(campos)
|
31
|
-
super(campos)
|
32
|
-
end
|
33
|
-
|
34
|
-
def banco
|
35
|
-
'033'
|
36
|
-
end
|
37
|
-
|
38
|
-
def conta_corrente=(valor)
|
39
|
-
@conta_corrente = valor.to_s.rjust(9, '0') if valor
|
40
|
-
end
|
41
|
-
|
42
|
-
def convenio=(valor)
|
43
|
-
@convenio = valor.to_s.rjust(7, '0') if valor
|
44
|
-
end
|
45
|
-
|
46
|
-
def nosso_numero=(valor)
|
47
|
-
@nosso_numero = valor.to_s.rjust(8, '0') if valor
|
48
|
-
end
|
49
|
-
|
50
|
-
def nosso_numero_boleto
|
51
|
-
if nosso_numero_dv
|
52
|
-
"#{nosso_numero}-#{nosso_numero_dv}"
|
53
|
-
else
|
54
|
-
nosso_numero
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
def agencia_conta_boleto
|
59
|
-
"#{agencia}/#{convenio}"
|
60
|
-
end
|
61
|
-
|
62
|
-
def codigo_barras_segunda_parte
|
63
|
-
"9#{convenio}00000#{nosso_numero}#{nosso_numero_dv}0#{carteira}"
|
64
|
-
end
|
65
|
-
|
66
|
-
private
|
67
|
-
|
68
|
-
def brcobranca_path
|
69
|
-
@brcobranca_path ||= Gem::Specification.find_by_name("bbrcobranca").gem_dir
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|