brcobranca 4.0.0 → 4.1.0
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/.ruby-version +1 -1
- data/brcobranca.gemspec +5 -6
- data/lib/brcobranca/boleto/base.rb +6 -0
- data/lib/brcobranca/boleto/bradesco.rb +7 -0
- data/lib/brcobranca/boleto/caixa.rb +12 -2
- data/lib/brcobranca/boleto/santander.rb +10 -6
- data/lib/brcobranca/boleto/sicredi.rb +1 -0
- data/lib/brcobranca/boleto/template/rghost.rb +23 -12
- data/lib/brcobranca/calculo.rb +42 -0
- data/lib/brcobranca/retorno/retorno_cnab240.rb +1 -0
- data/lib/brcobranca/version.rb +1 -1
- data/spec/brcobranca/banco_bradesco_spec.rb +24 -24
- data/spec/brcobranca/{itau_spec.rb → banco_itau_spec.rb} +0 -0
- data/spec/brcobranca/{santander_spec.rb → banco_santander_spec.rb} +19 -15
- data/spec/brcobranca/retorno_cnab_240_spec.rb +1 -0
- metadata +9 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6893b89d7db26d48d9580c10adfd1a8972fe8cf2
|
|
4
|
+
data.tar.gz: 598e64afa782bd06982172c1daee939a18882881
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 584a72aec5571102db826e87060ba83a4fa0528ea70ba2ea54b7871696d4d2781792cb77ac900c7bc5d1c909b6a10374943bea59eedeb959e23760b6589755e5
|
|
7
|
+
data.tar.gz: 7ca666f4ff5401a66cc30c8276c40b681f9fc198cf7ee0973ae6966a349fbed9fa25cb569b93a6c60ac3100088ce56377b5ced8d9e5babc5b37cd6224883d235
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.2.2
|
data/brcobranca.gemspec
CHANGED
|
@@ -6,12 +6,11 @@ require 'brcobranca/version'
|
|
|
6
6
|
Gem::Specification.new do |gem|
|
|
7
7
|
gem.name = 'brcobranca'
|
|
8
8
|
gem.version = Brcobranca::VERSION
|
|
9
|
-
gem.authors = [
|
|
10
|
-
gem.description =
|
|
11
|
-
gem.summary =
|
|
12
|
-
gem.email =
|
|
13
|
-
gem.homepage =
|
|
14
|
-
|
|
9
|
+
gem.authors = ["Kivanio Barbosa"]
|
|
10
|
+
gem.description = %q{Gem para emissao de bloquetos de cobranca de bancos brasileiros.}
|
|
11
|
+
gem.summary = %q{Gem que permite trabalhar com bloquetos de cobranca para bancos brasileiros.}
|
|
12
|
+
gem.email = %q{kivanio@gmail.com}
|
|
13
|
+
gem.homepage = %q{http://rubygems.org/gems/brcobranca}
|
|
15
14
|
gem.files = `git ls-files`.split($/)
|
|
16
15
|
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
|
17
16
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
|
@@ -71,6 +71,12 @@ module Brcobranca
|
|
|
71
71
|
attr_accessor :sacado_endereco
|
|
72
72
|
# <b>REQUERIDO</b>: Documento da pessoa que receberá o boleto
|
|
73
73
|
attr_accessor :sacado_documento
|
|
74
|
+
# <b>OPCIONAL</b>: Nome do avalista
|
|
75
|
+
attr_accessor :avalista
|
|
76
|
+
# <b>OPCIONAL</b>: Documento do avalista
|
|
77
|
+
attr_accessor :avalista_documento
|
|
78
|
+
# <b>OPCIONAL</b>: Endereço da pessoa que envia o boleto
|
|
79
|
+
attr_accessor :cedente_endereco
|
|
74
80
|
|
|
75
81
|
# Validações
|
|
76
82
|
validates_presence_of :agencia, :conta_corrente, :moeda, :especie_documento, :especie, :aceite, :numero_documento, message: 'não pode estar em branco.'
|
|
@@ -11,6 +11,9 @@ module Brcobranca
|
|
|
11
11
|
# @param (see Brcobranca::Boleto::Base#initialize)
|
|
12
12
|
def initialize(campos = {})
|
|
13
13
|
campos = { carteira: '06' }.merge!(campos)
|
|
14
|
+
|
|
15
|
+
campos.merge!(local_pagamento: 'Pagável preferencialmente na Rede Bradesco ou Bradesco Expresso')
|
|
16
|
+
|
|
14
17
|
super(campos)
|
|
15
18
|
end
|
|
16
19
|
|
|
@@ -42,6 +45,10 @@ module Brcobranca
|
|
|
42
45
|
"#{carteira}/#{numero_documento}-#{nosso_numero_dv}"
|
|
43
46
|
end
|
|
44
47
|
|
|
48
|
+
def nosso_numero_dv
|
|
49
|
+
"#{carteira}#{numero_documento}".modulo11_bradesco
|
|
50
|
+
end
|
|
51
|
+
|
|
45
52
|
# Agência + conta corrente do cliente para exibir no boleto.
|
|
46
53
|
# @return [String]
|
|
47
54
|
# @example
|
|
@@ -28,8 +28,6 @@ module Brcobranca
|
|
|
28
28
|
carteira: "#{MODALIDADE_COBRANCA[:sem_registro]}#{EMISSAO_BOLETO[:cedente]}"
|
|
29
29
|
}.merge!(campos)
|
|
30
30
|
|
|
31
|
-
campos.merge!(convenio: campos[:convenio].rjust(6, '0')) if campos[:convenio]
|
|
32
|
-
campos.merge!(numero_documento: campos[:numero_documento].rjust(15, '0')) if campos[:numero_documento]
|
|
33
31
|
campos.merge!(local_pagamento: 'PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE')
|
|
34
32
|
|
|
35
33
|
super(campos)
|
|
@@ -47,6 +45,18 @@ module Brcobranca
|
|
|
47
45
|
def banco_dv
|
|
48
46
|
'0'
|
|
49
47
|
end
|
|
48
|
+
|
|
49
|
+
# Número do convênio/contrato do cliente junto ao banco.
|
|
50
|
+
# @return [String] 6 caracteres numéricos.
|
|
51
|
+
def convenio=(valor)
|
|
52
|
+
@convenio = valor.to_s.rjust(6, '0') if valor
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Número seqüencial utilizado para identificar o boleto.
|
|
56
|
+
# @return [String] 15 caracteres numéricos.
|
|
57
|
+
def numero_documento=(valor)
|
|
58
|
+
@numero_documento = valor.to_s.rjust(15, '0') if valor
|
|
59
|
+
end
|
|
50
60
|
|
|
51
61
|
# Nosso número, 17 dígitos
|
|
52
62
|
# 1 à 2: carteira
|
|
@@ -15,9 +15,7 @@ module Brcobranca
|
|
|
15
15
|
# Nova instancia do Santander
|
|
16
16
|
# @param (see Brcobranca::Boleto::Base#initialize)
|
|
17
17
|
def initialize(campos = {})
|
|
18
|
-
campos = { carteira: '102'
|
|
19
|
-
conta_corrente: '00000' # Obrigatória na classe base
|
|
20
|
-
}.merge!(campos)
|
|
18
|
+
campos = { carteira: '102' }.merge!(campos)
|
|
21
19
|
super(campos)
|
|
22
20
|
end
|
|
23
21
|
|
|
@@ -28,6 +26,12 @@ module Brcobranca
|
|
|
28
26
|
'033'
|
|
29
27
|
end
|
|
30
28
|
|
|
29
|
+
# Número da conta corrente
|
|
30
|
+
# @return [String] 9 caracteres numéricos.
|
|
31
|
+
def conta_corrente=(valor)
|
|
32
|
+
@conta_corrente = valor.to_s.rjust(9, '0') if valor
|
|
33
|
+
end
|
|
34
|
+
|
|
31
35
|
# Número do convênio/contrato do cliente junto ao banco. No Santander, é
|
|
32
36
|
# chamado de Código do Cedente.
|
|
33
37
|
# @return [String] 7 caracteres numéricos.
|
|
@@ -50,8 +54,8 @@ module Brcobranca
|
|
|
50
54
|
# Dígito verificador do nosso número.
|
|
51
55
|
# @return [String] 1 caracteres numéricos.
|
|
52
56
|
def nosso_numero_dv
|
|
53
|
-
nosso_numero = numero_documento.to_s.rjust(12, '0') unless numero_documento.nil?
|
|
54
|
-
nosso_numero.
|
|
57
|
+
nosso_numero = self.numero_documento.to_s.rjust(12, '0') unless self.numero_documento.nil?
|
|
58
|
+
nosso_numero.modulo11_santander
|
|
55
59
|
end
|
|
56
60
|
|
|
57
61
|
# Nosso número para exibir no boleto.
|
|
@@ -81,7 +85,7 @@ module Brcobranca
|
|
|
81
85
|
#
|
|
82
86
|
# @return [String] 25 caracteres numéricos.
|
|
83
87
|
def codigo_barras_segunda_parte
|
|
84
|
-
"9#{convenio}
|
|
88
|
+
"9#{self.convenio}0000#{self.numero_documento}#{self.nosso_numero_dv}0#{self.carteira}"
|
|
85
89
|
end
|
|
86
90
|
end
|
|
87
91
|
end
|
|
@@ -16,6 +16,7 @@ module Brcobranca
|
|
|
16
16
|
validates_length_of :numero_documento, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
|
|
17
17
|
validates_length_of :conta_corrente, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
|
|
18
18
|
validates_length_of :carteira, maximum: 2, message: 'deve ser menor ou igual a 2 dígitos.'
|
|
19
|
+
validates_length_of :posto, maximum: 2, message: 'deve ser menor ou igual a 2 dígitos.'
|
|
19
20
|
validates_length_of :byte_idt, is: 1, message: 'deve ser 1 se o numero foi gerado pela agencia ou 2-9 se foi gerado pelo beneficiário'
|
|
20
21
|
|
|
21
22
|
# Nova instancia do Bradesco
|
|
@@ -135,11 +135,11 @@ module Brcobranca
|
|
|
135
135
|
# LOGOTIPO do BANCO
|
|
136
136
|
doc.image(boleto.logotipo, x: '0.5 cm', y: '23.85 cm', zoom: 80)
|
|
137
137
|
# Dados
|
|
138
|
-
doc.moveto x: '5.2 cm', y: '23.
|
|
138
|
+
doc.moveto x: '5.2 cm', y: '23.9 cm'
|
|
139
139
|
doc.show "#{boleto.banco}-#{boleto.banco_dv}", tag: :grande
|
|
140
|
-
doc.moveto x: '7.5 cm', y: '23.
|
|
140
|
+
doc.moveto x: '7.5 cm', y: '23.9 cm'
|
|
141
141
|
doc.show boleto.codigo_barras.linha_digitavel, tag: :grande
|
|
142
|
-
doc.moveto x: '0.7 cm', y: '23 cm'
|
|
142
|
+
doc.moveto x: '0.7 cm', y: '23.0 cm'
|
|
143
143
|
doc.show boleto.cedente
|
|
144
144
|
doc.moveto x: '11 cm', y: '23 cm'
|
|
145
145
|
doc.show boleto.agencia_conta_boleto
|
|
@@ -157,9 +157,9 @@ module Brcobranca
|
|
|
157
157
|
doc.show boleto.nosso_numero_boleto
|
|
158
158
|
doc.moveto x: '16.5 cm', y: '22.2 cm'
|
|
159
159
|
doc.show boleto.valor_documento.to_currency
|
|
160
|
-
doc.moveto x: '1.
|
|
160
|
+
doc.moveto x: '1.5 cm', y: '20.9 cm'
|
|
161
161
|
doc.show "#{boleto.sacado} - #{boleto.sacado_documento.formata_documento}"
|
|
162
|
-
doc.moveto x: '1.
|
|
162
|
+
doc.moveto x: '1.5 cm', y: '20.6 cm'
|
|
163
163
|
doc.show "#{boleto.sacado_endereco}"
|
|
164
164
|
# FIM Primeira parte do BOLETO
|
|
165
165
|
end
|
|
@@ -169,16 +169,18 @@ module Brcobranca
|
|
|
169
169
|
# INICIO Segunda parte do BOLETO BB
|
|
170
170
|
# LOGOTIPO do BANCO
|
|
171
171
|
doc.image(boleto.logotipo, x: '0.5 cm', y: '16.8 cm', zoom: 80)
|
|
172
|
-
doc.moveto x: '5.2 cm', y: '16.
|
|
172
|
+
doc.moveto x: '5.2 cm', y: '16.9 cm'
|
|
173
173
|
doc.show "#{boleto.banco}-#{boleto.banco_dv}", tag: :grande
|
|
174
|
-
doc.moveto x: '7.5 cm', y: '16.
|
|
174
|
+
doc.moveto x: '7.5 cm', y: '16.9 cm'
|
|
175
175
|
doc.show boleto.codigo_barras.linha_digitavel, tag: :grande
|
|
176
176
|
doc.moveto x: '0.7 cm', y: '16 cm'
|
|
177
177
|
doc.show boleto.local_pagamento
|
|
178
178
|
doc.moveto x: '16.5 cm', y: '16 cm'
|
|
179
179
|
doc.show boleto.data_vencimento.to_s_br if boleto.data_vencimento
|
|
180
|
-
doc.moveto x: '
|
|
180
|
+
doc.moveto x: '1.9 cm', y: '15.5 cm'
|
|
181
181
|
doc.show boleto.cedente
|
|
182
|
+
doc.moveto x: '0.7 cm', y: '15.2 cm'
|
|
183
|
+
doc.show boleto.cedente_endereco
|
|
182
184
|
doc.moveto x: '16.5 cm', y: '15.2 cm'
|
|
183
185
|
doc.show boleto.agencia_conta_boleto
|
|
184
186
|
doc.moveto x: '0.7 cm', y: '14.4 cm'
|
|
@@ -194,11 +196,15 @@ module Brcobranca
|
|
|
194
196
|
doc.moveto x: '16.5 cm', y: '14.4 cm'
|
|
195
197
|
doc.show boleto.nosso_numero_boleto
|
|
196
198
|
doc.moveto x: '4.4 cm', y: '13.5 cm'
|
|
197
|
-
|
|
199
|
+
if boleto.variacao
|
|
200
|
+
doc.show "#{boleto.carteira}-#{boleto.variacao}"
|
|
201
|
+
else
|
|
202
|
+
doc.show boleto.carteira
|
|
203
|
+
end
|
|
198
204
|
doc.moveto x: '6.4 cm', y: '13.5 cm'
|
|
199
205
|
doc.show boleto.especie
|
|
200
|
-
doc.moveto x: '8 cm', y: '13.5 cm'
|
|
201
|
-
doc.show boleto.quantidade
|
|
206
|
+
# doc.moveto x: '8 cm', y: '13.5 cm'
|
|
207
|
+
# doc.show boleto.quantidade
|
|
202
208
|
# doc.moveto :x => '11 cm' , :y => '13.5 cm'
|
|
203
209
|
# doc.show boleto.valor.to_currency
|
|
204
210
|
doc.moveto x: '16.5 cm', y: '13.5 cm'
|
|
@@ -216,9 +222,14 @@ module Brcobranca
|
|
|
216
222
|
doc.moveto x: '0.7 cm', y: '10.7 cm'
|
|
217
223
|
doc.show boleto.instrucao6
|
|
218
224
|
doc.moveto x: '1.2 cm', y: '8.8 cm'
|
|
219
|
-
doc.show "#{boleto.sacado} - #{boleto.sacado_documento.formata_documento}" if boleto.sacado && boleto.sacado_documento
|
|
225
|
+
doc.show "#{boleto.sacado} - CPF/CNPJ: #{boleto.sacado_documento.formata_documento}" if boleto.sacado && boleto.sacado_documento
|
|
220
226
|
doc.moveto x: '1.2 cm', y: '8.4 cm'
|
|
221
227
|
doc.show "#{boleto.sacado_endereco}"
|
|
228
|
+
|
|
229
|
+
if boleto.avalista && boleto.avalista_documento
|
|
230
|
+
doc.moveto x: '2.4 cm', y: '7.47 cm'
|
|
231
|
+
doc.show "#{boleto.avalista} - #{boleto.avalista_documento}"
|
|
232
|
+
end
|
|
222
233
|
# FIM Segunda parte do BOLETO
|
|
223
234
|
end
|
|
224
235
|
end # Base
|
data/lib/brcobranca/calculo.rb
CHANGED
|
@@ -41,6 +41,48 @@ module Brcobranca
|
|
|
41
41
|
[0, 10, 11].include?(valor) ? 1 : valor
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
+
# Calcula módulo 11 com multiplicadores de 2 a 9 e 2 a 5 (Utilizado pelo Santander).
|
|
45
|
+
#
|
|
46
|
+
# @return [Integer]
|
|
47
|
+
def modulo11_santander
|
|
48
|
+
return 0 if self.to_i == 0
|
|
49
|
+
|
|
50
|
+
somatorio = 0
|
|
51
|
+
multiplicadores = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]
|
|
52
|
+
base = "#{self.rjust(12, '0')}".reverse
|
|
53
|
+
index = 0
|
|
54
|
+
|
|
55
|
+
base.each_char do |char|
|
|
56
|
+
somatorio += base[index].to_i * multiplicadores[index].to_i
|
|
57
|
+
index += 1
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
resto = somatorio % 11
|
|
61
|
+
return 1 if resto == 10
|
|
62
|
+
return 0 if resto == 1 || resto == 0
|
|
63
|
+
return 11 - resto
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Calcula módulo 11 com multiplicadores de 2, 7 a 2, e 7 a 2 (Utilizado pelo Bradesco).
|
|
67
|
+
#
|
|
68
|
+
# @return [Integer, String] Caso o resto seja 1, retorna P
|
|
69
|
+
|
|
70
|
+
def modulo11_bradesco
|
|
71
|
+
somatorio = 0
|
|
72
|
+
multiplicadores = [2, 7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
|
|
73
|
+
index = 0
|
|
74
|
+
|
|
75
|
+
self.each_char do |char|
|
|
76
|
+
somatorio += self[index].to_i * multiplicadores[index]
|
|
77
|
+
index += 1
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
resto = somatorio % 11
|
|
81
|
+
return 0 if resto == 0
|
|
82
|
+
return 'P' if resto == 1
|
|
83
|
+
return 11 - resto
|
|
84
|
+
end
|
|
85
|
+
|
|
44
86
|
# Calcula módulo 11 com multiplicaroes de 2 a 9 (Utilizado pela CAIXA - boletos SIGCB).
|
|
45
87
|
#
|
|
46
88
|
# @return [Integer]
|
|
@@ -56,6 +56,7 @@ module Brcobranca
|
|
|
56
56
|
parse.field :valor_titulo, 81..95
|
|
57
57
|
parse.field :banco_recebedor, 96..98
|
|
58
58
|
parse.field :agencia_recebedora_com_dv, 99..104
|
|
59
|
+
# parse.field :data_ocorrencia, 137..144
|
|
59
60
|
parse.field :data_credito, 145..152
|
|
60
61
|
parse.field :outras_despesas, 107..121
|
|
61
62
|
parse.field :iof_desconto, 62..76
|
data/lib/brcobranca/version.rb
CHANGED
|
@@ -11,7 +11,7 @@ describe Brcobranca::Boleto::Bradesco do
|
|
|
11
11
|
aceite: 'S',
|
|
12
12
|
quantidade: 1,
|
|
13
13
|
valor: 0.0,
|
|
14
|
-
local_pagamento: '
|
|
14
|
+
local_pagamento: 'Pagável preferencialmente na Rede Bradesco ou Bradesco Expresso',
|
|
15
15
|
cedente: 'Kivanio Barbosa',
|
|
16
16
|
documento_cedente: '12345678912',
|
|
17
17
|
sacado: 'Claudio Pozzebom',
|
|
@@ -36,7 +36,7 @@ describe Brcobranca::Boleto::Bradesco do
|
|
|
36
36
|
expect(boleto_novo.quantidade).to eql(1)
|
|
37
37
|
expect(boleto_novo.valor).to eql(0.0)
|
|
38
38
|
expect(boleto_novo.valor_documento).to eql(0.0)
|
|
39
|
-
expect(boleto_novo.local_pagamento).to eql('
|
|
39
|
+
expect(boleto_novo.local_pagamento).to eql('Pagável preferencialmente na Rede Bradesco ou Bradesco Expresso')
|
|
40
40
|
expect(boleto_novo.carteira).to eql('06')
|
|
41
41
|
|
|
42
42
|
end
|
|
@@ -54,7 +54,7 @@ describe Brcobranca::Boleto::Bradesco do
|
|
|
54
54
|
expect(boleto_novo.quantidade).to eql(1)
|
|
55
55
|
expect(boleto_novo.valor).to eql(0.0)
|
|
56
56
|
expect(boleto_novo.valor_documento).to eql(0.0)
|
|
57
|
-
expect(boleto_novo.local_pagamento).to eql('
|
|
57
|
+
expect(boleto_novo.local_pagamento).to eql('Pagável preferencialmente na Rede Bradesco ou Bradesco Expresso')
|
|
58
58
|
expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
|
|
59
59
|
expect(boleto_novo.documento_cedente).to eql('12345678912')
|
|
60
60
|
expect(boleto_novo.sacado).to eql('Claudio Pozzebom')
|
|
@@ -104,30 +104,30 @@ describe Brcobranca::Boleto::Bradesco do
|
|
|
104
104
|
it 'Montar nosso_numero_boleto' do
|
|
105
105
|
boleto_novo = described_class.new(@valid_attributes)
|
|
106
106
|
|
|
107
|
-
boleto_novo.numero_documento = '
|
|
107
|
+
boleto_novo.numero_documento = '00000000525'
|
|
108
108
|
boleto_novo.carteira = '06'
|
|
109
|
-
expect(boleto_novo.nosso_numero_boleto).to eql('06/
|
|
110
|
-
expect(boleto_novo.nosso_numero_dv).to eql(
|
|
111
|
-
|
|
112
|
-
boleto_novo.
|
|
113
|
-
|
|
114
|
-
expect(boleto_novo.
|
|
115
|
-
boleto_novo.
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
boleto_novo.
|
|
120
|
-
boleto_novo.carteira = '06'
|
|
121
|
-
expect(boleto_novo.nosso_numero_boleto).to eql('06/00000004042-8')
|
|
109
|
+
expect(boleto_novo.nosso_numero_boleto).to eql('06/00000000525-P')
|
|
110
|
+
expect(boleto_novo.nosso_numero_dv).to eql('P')
|
|
111
|
+
|
|
112
|
+
boleto_novo.numero_documento = '00000000001'
|
|
113
|
+
boleto_novo.carteira = '09'
|
|
114
|
+
expect(boleto_novo.nosso_numero_boleto).to eql('09/00000000001-1')
|
|
115
|
+
expect(boleto_novo.nosso_numero_dv).to eql(1)
|
|
116
|
+
|
|
117
|
+
boleto_novo.numero_documento = '00000000002'
|
|
118
|
+
boleto_novo.carteira = '19'
|
|
119
|
+
expect(boleto_novo.nosso_numero_boleto).to eql('19/00000000002-8')
|
|
122
120
|
expect(boleto_novo.nosso_numero_dv).to eql(8)
|
|
123
|
-
|
|
124
|
-
boleto_novo.
|
|
125
|
-
|
|
121
|
+
|
|
122
|
+
boleto_novo.numero_documento = 6
|
|
123
|
+
boleto_novo.carteira = '19'
|
|
124
|
+
expect(boleto_novo.nosso_numero_boleto).to eql('19/00000000006-0')
|
|
126
125
|
expect(boleto_novo.nosso_numero_dv).to eql(0)
|
|
127
|
-
|
|
128
|
-
boleto_novo.
|
|
129
|
-
|
|
130
|
-
expect(boleto_novo.
|
|
126
|
+
|
|
127
|
+
boleto_novo.numero_documento = '00000000001'
|
|
128
|
+
boleto_novo.carteira = '19'
|
|
129
|
+
expect(boleto_novo.nosso_numero_boleto).to eql('19/00000000001-P')
|
|
130
|
+
expect(boleto_novo.nosso_numero_dv).to eql('P')
|
|
131
131
|
end
|
|
132
132
|
|
|
133
133
|
it 'Montar agencia_conta_boleto' do
|
|
File without changes
|
|
@@ -18,7 +18,8 @@ describe Brcobranca::Boleto::Santander do
|
|
|
18
18
|
sacado_documento: '12345678900',
|
|
19
19
|
agencia: '0059',
|
|
20
20
|
convenio: 1_899_775,
|
|
21
|
-
numero_documento: '90000267'
|
|
21
|
+
numero_documento: '90000267',
|
|
22
|
+
conta_corrente: '013000123'
|
|
22
23
|
}
|
|
23
24
|
end
|
|
24
25
|
|
|
@@ -63,26 +64,26 @@ describe Brcobranca::Boleto::Santander do
|
|
|
63
64
|
expect(boleto_novo.carteira).to eql('102')
|
|
64
65
|
end
|
|
65
66
|
|
|
66
|
-
it
|
|
67
|
-
@valid_attributes[:data_documento] = Date.parse(
|
|
68
|
-
boleto_novo =
|
|
69
|
-
expect(boleto_novo.codigo_barras_segunda_parte).to eql(
|
|
70
|
-
expect(boleto_novo.codigo_barras).to eql(
|
|
71
|
-
expect(boleto_novo.codigo_barras.linha_digitavel).to eql(
|
|
67
|
+
it "Gerar boleto" do
|
|
68
|
+
@valid_attributes[:data_documento] = Date.parse("2011/10/08")
|
|
69
|
+
boleto_novo = Brcobranca::Boleto::Santander.new(@valid_attributes)
|
|
70
|
+
expect(boleto_novo.codigo_barras_segunda_parte).to eql("9189977500009000026700102")
|
|
71
|
+
expect(boleto_novo.codigo_barras).to eql("03398511500000025009189977500009000026700102")
|
|
72
|
+
expect(boleto_novo.codigo_barras.linha_digitavel).to eql("03399.18997 77500.009004 00267.001022 8 51150000002500")
|
|
72
73
|
|
|
73
74
|
@valid_attributes[:valor] = 54.00
|
|
74
|
-
@valid_attributes[:numero_documento] =
|
|
75
|
-
@valid_attributes[:data_documento] = Date.parse(
|
|
76
|
-
boleto_novo =
|
|
77
|
-
expect(boleto_novo.codigo_barras_segunda_parte).to eql(
|
|
78
|
-
expect(boleto_novo.codigo_barras).to eql(
|
|
79
|
-
expect(boleto_novo.codigo_barras.linha_digitavel).to eql(
|
|
75
|
+
@valid_attributes[:numero_documento] = "90002720"
|
|
76
|
+
@valid_attributes[:data_documento] = Date.parse("2012/09/07")
|
|
77
|
+
boleto_novo = Brcobranca::Boleto::Santander.new(@valid_attributes)
|
|
78
|
+
expect(boleto_novo.codigo_barras_segunda_parte).to eql("9189977500009000272070102")
|
|
79
|
+
expect(boleto_novo.codigo_barras).to eql("03399545000000054009189977500009000272070102")
|
|
80
|
+
expect(boleto_novo.codigo_barras.linha_digitavel).to eql("03399.18997 77500.009004 02720.701024 9 54500000005400")
|
|
80
81
|
end
|
|
81
82
|
|
|
82
83
|
it 'Não permitir gerar boleto com atributos inválido' do
|
|
83
84
|
boleto_novo = described_class.new
|
|
84
85
|
expect { boleto_novo.codigo_barras }.to raise_error(Brcobranca::BoletoInvalido)
|
|
85
|
-
expect(boleto_novo.errors.count).to eql(
|
|
86
|
+
expect(boleto_novo.errors.count).to eql(3)
|
|
86
87
|
end
|
|
87
88
|
|
|
88
89
|
it 'Montar nosso_numero_dv' do
|
|
@@ -93,6 +94,10 @@ describe Brcobranca::Boleto::Santander do
|
|
|
93
94
|
@valid_attributes[:numero_documento] = '90002720'
|
|
94
95
|
boleto_novo = described_class.new(@valid_attributes)
|
|
95
96
|
expect(boleto_novo.nosso_numero_dv).to eql(7)
|
|
97
|
+
|
|
98
|
+
@valid_attributes[:numero_documento] = "1961005"
|
|
99
|
+
boleto_novo = Brcobranca::Boleto::Santander.new(@valid_attributes)
|
|
100
|
+
expect(boleto_novo.nosso_numero_dv).to eql(0)
|
|
96
101
|
end
|
|
97
102
|
|
|
98
103
|
it 'Montar nosso_numero_boleto' do
|
|
@@ -142,5 +147,4 @@ describe Brcobranca::Boleto::Santander do
|
|
|
142
147
|
expect(File.exist?(tmp_file.path)).to be_falsey
|
|
143
148
|
end
|
|
144
149
|
end
|
|
145
|
-
|
|
146
150
|
end
|
|
@@ -18,6 +18,7 @@ describe Brcobranca::Retorno::RetornoCnab240 do
|
|
|
18
18
|
expect(pagamento.valor_titulo).to eql('000000000034400')
|
|
19
19
|
expect(pagamento.banco_recebedor).to eql('001')
|
|
20
20
|
expect(pagamento.agencia_recebedora_com_dv).to eql('020850')
|
|
21
|
+
# expect(pagamento.data_ocorrencia).to eql('02012012')
|
|
21
22
|
expect(pagamento.data_credito).to eql('02012012')
|
|
22
23
|
expect(pagamento.outras_despesas).to eql('000000000000004')
|
|
23
24
|
expect(pagamento.iof_desconto).to eql('000000000000003')
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: brcobranca
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kivanio Barbosa
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2015-04-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rghost
|
|
@@ -66,7 +66,7 @@ dependencies:
|
|
|
66
66
|
- - ">="
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '3'
|
|
69
|
-
description: Gem para
|
|
69
|
+
description: Gem para emissao de bloquetos de cobranca de bancos brasileiros.
|
|
70
70
|
email: kivanio@gmail.com
|
|
71
71
|
executables: []
|
|
72
72
|
extensions: []
|
|
@@ -123,17 +123,17 @@ files:
|
|
|
123
123
|
- spec/brcobranca/banco_brasil_spec.rb
|
|
124
124
|
- spec/brcobranca/banco_caixa_spec.rb
|
|
125
125
|
- spec/brcobranca/banco_hsbc_spec.rb
|
|
126
|
+
- spec/brcobranca/banco_itau_spec.rb
|
|
127
|
+
- spec/brcobranca/banco_santander_spec.rb
|
|
126
128
|
- spec/brcobranca/banco_sicredi_spec.rb
|
|
127
129
|
- spec/brcobranca/base_spec.rb
|
|
128
130
|
- spec/brcobranca/boletos_em_lote_spec.rb
|
|
129
131
|
- spec/brcobranca/core_ext_spec.rb
|
|
130
132
|
- spec/brcobranca/currency_spec.rb
|
|
131
|
-
- spec/brcobranca/itau_spec.rb
|
|
132
133
|
- spec/brcobranca/retorno_cbr643_spec.rb
|
|
133
134
|
- spec/brcobranca/retorno_cnab400_spec.rb
|
|
134
135
|
- spec/brcobranca/retorno_cnab_240_spec.rb
|
|
135
136
|
- spec/brcobranca/rghost_spec.rb
|
|
136
|
-
- spec/brcobranca/santander_spec.rb
|
|
137
137
|
- spec/brcobranca_spec.rb
|
|
138
138
|
- spec/spec.opts
|
|
139
139
|
- spec/spec_helper.rb
|
|
@@ -157,10 +157,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
157
157
|
requirements:
|
|
158
158
|
- GhostScript > 9.0, para gear PDF e código de Barras
|
|
159
159
|
rubyforge_project:
|
|
160
|
-
rubygems_version: 2.
|
|
160
|
+
rubygems_version: 2.4.6
|
|
161
161
|
signing_key:
|
|
162
162
|
specification_version: 4
|
|
163
|
-
summary: Gem que permite trabalhar com bloquetos de
|
|
163
|
+
summary: Gem que permite trabalhar com bloquetos de cobranca para bancos brasileiros.
|
|
164
164
|
test_files:
|
|
165
165
|
- spec/arquivos/CBR64310.RET
|
|
166
166
|
- spec/arquivos/CNAB240.RET
|
|
@@ -169,17 +169,17 @@ test_files:
|
|
|
169
169
|
- spec/brcobranca/banco_brasil_spec.rb
|
|
170
170
|
- spec/brcobranca/banco_caixa_spec.rb
|
|
171
171
|
- spec/brcobranca/banco_hsbc_spec.rb
|
|
172
|
+
- spec/brcobranca/banco_itau_spec.rb
|
|
173
|
+
- spec/brcobranca/banco_santander_spec.rb
|
|
172
174
|
- spec/brcobranca/banco_sicredi_spec.rb
|
|
173
175
|
- spec/brcobranca/base_spec.rb
|
|
174
176
|
- spec/brcobranca/boletos_em_lote_spec.rb
|
|
175
177
|
- spec/brcobranca/core_ext_spec.rb
|
|
176
178
|
- spec/brcobranca/currency_spec.rb
|
|
177
|
-
- spec/brcobranca/itau_spec.rb
|
|
178
179
|
- spec/brcobranca/retorno_cbr643_spec.rb
|
|
179
180
|
- spec/brcobranca/retorno_cnab400_spec.rb
|
|
180
181
|
- spec/brcobranca/retorno_cnab_240_spec.rb
|
|
181
182
|
- spec/brcobranca/rghost_spec.rb
|
|
182
|
-
- spec/brcobranca/santander_spec.rb
|
|
183
183
|
- spec/brcobranca_spec.rb
|
|
184
184
|
- spec/spec.opts
|
|
185
185
|
- spec/spec_helper.rb
|