bbrcobranca 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|