brcobranca 6.6.0 → 6.7.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/Gemfile.lock +7 -6
- data/brcobranca.gemspec +1 -1
- data/lib/brcobranca/boleto/sicredi.rb +37 -18
- data/lib/brcobranca/boleto/unicred.rb +1 -1
- data/lib/brcobranca/remessa/base.rb +0 -2
- data/lib/brcobranca/version.rb +1 -1
- data/lib/brcobranca.rb +2 -0
- data/spec/brcobranca/boleto/sicredi_spec.rb +92 -85
- data/spec/brcobranca/boleto/unicred_spec.rb +6 -26
- metadata +17 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d4c1d2ca76237e4dcd2b446897870da4ea888a2e
|
|
4
|
+
data.tar.gz: ec2c9d2ea89c72cb75f881ed66d4eeffa019e195
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 23baaf03bb009d26e1249d302498608bbba53e61e2289e3fe667643dd563a50915f3fac33556e4399f43e3a7f43abb6b37645dbe8b12e5d3e2ae97d274f66179
|
|
7
|
+
data.tar.gz: a78c9ce561e55d5722877661602945506b56a2b3d0cbb212c10670c0a166dc6464fa6d543bf2f6e28009441f4068dd015d2d46d43e85d9442172483599dd17e7
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.3.
|
|
1
|
+
2.3.1
|
data/Gemfile.lock
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
brcobranca (6.
|
|
4
|
+
brcobranca (6.7.0)
|
|
5
5
|
activemodel (>= 3)
|
|
6
|
+
activesupport (>= 3)
|
|
6
7
|
parseline (~> 1.0.3)
|
|
7
8
|
rghost (~> 0.9)
|
|
8
9
|
rghost_barcode (~> 0.9)
|
|
@@ -23,16 +24,16 @@ GEM
|
|
|
23
24
|
simplecov (>= 0.7.1, < 1.0.0)
|
|
24
25
|
coderay (1.1.1)
|
|
25
26
|
concurrent-ruby (1.0.2)
|
|
26
|
-
coveralls (0.8.
|
|
27
|
+
coveralls (0.8.15)
|
|
27
28
|
json (>= 1.8, < 3)
|
|
28
29
|
simplecov (~> 0.12.0)
|
|
29
30
|
term-ansicolor (~> 1.3)
|
|
30
31
|
thor (~> 0.19.1)
|
|
31
|
-
tins (
|
|
32
|
+
tins (>= 1.6.0, < 2)
|
|
32
33
|
diff-lcs (1.2.5)
|
|
33
34
|
docile (1.1.5)
|
|
34
35
|
i18n (0.7.0)
|
|
35
|
-
json (2.0.
|
|
36
|
+
json (2.0.2)
|
|
36
37
|
method_source (0.8.2)
|
|
37
38
|
minitest (5.9.0)
|
|
38
39
|
parseline (1.0.3)
|
|
@@ -51,7 +52,7 @@ GEM
|
|
|
51
52
|
rspec-core (~> 3.5.0)
|
|
52
53
|
rspec-expectations (~> 3.5.0)
|
|
53
54
|
rspec-mocks (~> 3.5.0)
|
|
54
|
-
rspec-core (3.5.
|
|
55
|
+
rspec-core (3.5.2)
|
|
55
56
|
rspec-support (~> 3.5.0)
|
|
56
57
|
rspec-expectations (3.5.0)
|
|
57
58
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
@@ -80,7 +81,7 @@ GEM
|
|
|
80
81
|
thor (0.19.1)
|
|
81
82
|
thread_safe (0.3.5)
|
|
82
83
|
timecop (0.8.1)
|
|
83
|
-
tins (1.
|
|
84
|
+
tins (1.11.0)
|
|
84
85
|
tzinfo (1.2.2)
|
|
85
86
|
thread_safe (~> 0.1)
|
|
86
87
|
unicode-display_width (1.1.0)
|
data/brcobranca.gemspec
CHANGED
|
@@ -25,6 +25,6 @@ Gem::Specification.new do |gem|
|
|
|
25
25
|
gem.add_dependency 'rghost_barcode', '~> 0.9'
|
|
26
26
|
gem.add_dependency 'parseline', '~> 1.0.3'
|
|
27
27
|
gem.add_dependency 'activemodel', '>= 3'
|
|
28
|
-
|
|
28
|
+
gem.add_dependency 'activesupport', '>= 3'
|
|
29
29
|
gem.add_dependency 'unidecoder', '>= 1.1.2'
|
|
30
30
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
2
|
#
|
|
3
3
|
# Sicredi
|
|
4
|
-
# Documentação:
|
|
4
|
+
# Documentação: Maio 2016
|
|
5
5
|
#
|
|
6
6
|
module Brcobranca
|
|
7
7
|
module Boleto
|
|
@@ -15,14 +15,19 @@ module Brcobranca
|
|
|
15
15
|
validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
|
|
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
|
+
# Carteira
|
|
19
|
+
# 1 – Com Registro
|
|
20
|
+
# 3 – Sem Registro
|
|
21
|
+
# Obs.: O SICREDI não validará este campo.
|
|
22
|
+
validates_length_of :carteira, maximum: 1, message: 'deve ser menor ou igual a 1 dígitos.'
|
|
19
23
|
validates_length_of :posto, maximum: 2, message: 'deve ser menor ou igual a 2 dígitos.'
|
|
20
24
|
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'
|
|
25
|
+
validates_length_of :convenio, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
|
|
21
26
|
|
|
22
27
|
# Nova instancia do Bradesco
|
|
23
28
|
# @param (see Brcobranca::Boleto::Base#initialize)
|
|
24
29
|
def initialize(campos = {})
|
|
25
|
-
campos = { carteira: '
|
|
30
|
+
campos = { carteira: '3', especie_documento: 'A' }.merge!(campos)
|
|
26
31
|
super(campos)
|
|
27
32
|
end
|
|
28
33
|
|
|
@@ -37,7 +42,7 @@ module Brcobranca
|
|
|
37
42
|
#
|
|
38
43
|
# @return [String] 2 caracteres numéricos.
|
|
39
44
|
def carteira=(valor)
|
|
40
|
-
@carteira = valor.to_s.rjust(
|
|
45
|
+
@carteira = valor.to_s.rjust(1, '0') if valor
|
|
41
46
|
end
|
|
42
47
|
|
|
43
48
|
# Posto
|
|
@@ -53,6 +58,12 @@ module Brcobranca
|
|
|
53
58
|
@conta_corrente = valor.to_s.rjust(5, '0') if valor
|
|
54
59
|
end
|
|
55
60
|
|
|
61
|
+
# Código Beneficiário
|
|
62
|
+
# @return [String] 5 caracteres numéricos.
|
|
63
|
+
def convenio=(valor)
|
|
64
|
+
@convenio = valor.to_s.rjust(5, '0') if valor
|
|
65
|
+
end
|
|
66
|
+
|
|
56
67
|
# Dígito verificador do banco
|
|
57
68
|
# @return [String] 1 caractere.
|
|
58
69
|
def banco_dv
|
|
@@ -60,6 +71,11 @@ module Brcobranca
|
|
|
60
71
|
end
|
|
61
72
|
|
|
62
73
|
# Nosso número para exibir no boleto.
|
|
74
|
+
# O campo Nosso Número deve ser apresentado no formato AA/BXXXXX-D, onde:
|
|
75
|
+
# AA = Ano atual
|
|
76
|
+
# B = Byte que pode ser de 2 a 9. Somente será 1 se forem boletos pré-impressos.
|
|
77
|
+
# XXXXX = número sequencial
|
|
78
|
+
# D = dígito verificador calculado
|
|
63
79
|
# @return [String]
|
|
64
80
|
# @example
|
|
65
81
|
# boleto.nosso_numero_boleto #=> "14/200022-5"
|
|
@@ -67,6 +83,10 @@ module Brcobranca
|
|
|
67
83
|
"#{numero_documento_with_byte_idt[0..1]}/#{numero_documento_with_byte_idt[2..-1]}-#{nosso_numero_dv}"
|
|
68
84
|
end
|
|
69
85
|
|
|
86
|
+
def nosso_numero_codigo_barra
|
|
87
|
+
nosso_numero_boleto.gsub(/\D/, '')
|
|
88
|
+
end
|
|
89
|
+
|
|
70
90
|
def numero_documento_with_byte_idt
|
|
71
91
|
"#{data_documento.strftime('%y')}#{byte_idt}#{numero_documento}"
|
|
72
92
|
end
|
|
@@ -77,17 +97,6 @@ module Brcobranca
|
|
|
77
97
|
@numero_documento = valor.to_s.rjust(5, '0') if valor
|
|
78
98
|
end
|
|
79
99
|
|
|
80
|
-
# Codigo referente ao tipo de cobrança
|
|
81
|
-
# @return [String]: 1 caractere numérico
|
|
82
|
-
def tipo_cobranca
|
|
83
|
-
'3'
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
# Codigo referente ao tipo de carteira
|
|
87
|
-
# @return [String]: 1 caractere numérico
|
|
88
|
-
def tipo_carteira
|
|
89
|
-
'1' if carteira == '03'
|
|
90
|
-
end
|
|
91
100
|
# Dígito verificador do nosso número
|
|
92
101
|
# @return [Integer] 1 caracteres numéricos.
|
|
93
102
|
def nosso_numero_dv
|
|
@@ -96,16 +105,26 @@ module Brcobranca
|
|
|
96
105
|
end
|
|
97
106
|
|
|
98
107
|
def agencia_conta_boleto
|
|
99
|
-
"#{agencia}.#{posto}.#{
|
|
108
|
+
"#{agencia}.#{posto}.#{convenio}"
|
|
100
109
|
end
|
|
101
110
|
|
|
102
111
|
def agencia_posto_conta
|
|
103
|
-
"#{agencia}#{posto}#{
|
|
112
|
+
"#{agencia}#{posto}#{convenio}"
|
|
104
113
|
end
|
|
105
114
|
|
|
106
115
|
# Segunda parte do código de barras.
|
|
116
|
+
# Posição Tamanho Conteúdo
|
|
117
|
+
# 20 – 20 01 Código numérico correspondente ao tipo de cobrança: “1” – Com Registro “3 – Sem Registro”. Obs.: O SICREDI não validará este campo.
|
|
118
|
+
# 21 – 21 01 Código numérico correspondente ao tipo de carteira: “1” - carteira simples
|
|
119
|
+
# 22 – 30 09 Nosso número
|
|
120
|
+
# 31 – 34 # 04 # Cooperativa de crédito/agência beneficiária
|
|
121
|
+
# 35 – 36 # 02 # Posto da cooperativa de crédito/agência beneficiária
|
|
122
|
+
# 37 – 41 # 05 # Código do beneficiário
|
|
123
|
+
# 42 – 42 # 01 # Será 1 (um) quando houver valor expresso no campo “valor do documento”
|
|
124
|
+
# 43 – 43 # 01 # Filler – zeros “0”
|
|
125
|
+
# 44 – 44 # 01 # DV do campo livre calculado por módulo 11 com aproveitamento total (resto igual a 0 ou 1 DV cai para 0)
|
|
107
126
|
def codigo_barras_segunda_parte
|
|
108
|
-
campo_livre = "#{
|
|
127
|
+
campo_livre = "#{carteira}1#{nosso_numero_codigo_barra}#{agencia_posto_conta}10"
|
|
109
128
|
campo_livre + campo_livre.modulo11(mapeamento: mapeamento_para_modulo_11).to_s
|
|
110
129
|
end
|
|
111
130
|
|
|
@@ -7,7 +7,7 @@ module Brcobranca
|
|
|
7
7
|
# @param (see Brcobranca::Boleto::Base#initialize)
|
|
8
8
|
def initialize(campos = {})
|
|
9
9
|
campos = {
|
|
10
|
-
carteira: '
|
|
10
|
+
carteira: '3',
|
|
11
11
|
especie_documento: 'DM',
|
|
12
12
|
local_pagamento: 'PAGÁVEL PREFERENCIALMENTE NAS AGÊNCIAS DA UNICRED'
|
|
13
13
|
}.merge!(campos)
|
data/lib/brcobranca/version.rb
CHANGED
data/lib/brcobranca.rb
CHANGED
|
@@ -2,23 +2,22 @@
|
|
|
2
2
|
require 'spec_helper'
|
|
3
3
|
|
|
4
4
|
RSpec.describe Brcobranca::Boleto::Sicredi do
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
end
|
|
5
|
+
let(:valid_attributes) { {
|
|
6
|
+
data_documento: Date.parse('2016-08-22'),
|
|
7
|
+
data_vencimento: Date.parse('2016-08-22'),
|
|
8
|
+
valor: 195.57,
|
|
9
|
+
cedente: 'Kivanio Barbosa',
|
|
10
|
+
documento_cedente: '12345678912',
|
|
11
|
+
sacado: 'Claudio Pozzebom',
|
|
12
|
+
sacado_documento: '12345678900',
|
|
13
|
+
agencia: '0710',
|
|
14
|
+
conta_corrente: '61900',
|
|
15
|
+
convenio: '129',
|
|
16
|
+
numero_documento: '8879',
|
|
17
|
+
posto: '65',
|
|
18
|
+
byte_idt: '2',
|
|
19
|
+
carteira: '1'
|
|
20
|
+
} }
|
|
22
21
|
|
|
23
22
|
it 'Criar nova instancia com atributos padrões' do
|
|
24
23
|
boleto_novo = described_class.new
|
|
@@ -33,48 +32,87 @@ RSpec.describe Brcobranca::Boleto::Sicredi do
|
|
|
33
32
|
expect(boleto_novo.valor).to eql(0.0)
|
|
34
33
|
expect(boleto_novo.valor_documento).to eql(0.0)
|
|
35
34
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
|
36
|
-
expect(boleto_novo.carteira).to eql('
|
|
35
|
+
expect(boleto_novo.carteira).to eql('3')
|
|
37
36
|
end
|
|
38
37
|
|
|
39
38
|
it 'Criar nova instancia com atributos válidos' do
|
|
40
|
-
boleto_novo = described_class.new(
|
|
39
|
+
boleto_novo = described_class.new(valid_attributes)
|
|
41
40
|
expect(boleto_novo.banco).to eql('748')
|
|
42
41
|
expect(boleto_novo.especie_documento).to eql('A')
|
|
43
42
|
expect(boleto_novo.especie).to eql('R$')
|
|
44
43
|
expect(boleto_novo.moeda).to eql('9')
|
|
45
|
-
expect(boleto_novo.data_documento).to eql(Date.parse('
|
|
46
|
-
expect(boleto_novo.data_vencimento).to eql(Date.
|
|
44
|
+
expect(boleto_novo.data_documento).to eql(Date.parse('2016-08-22'))
|
|
45
|
+
expect(boleto_novo.data_vencimento).to eql(Date.parse('2016-08-22'))
|
|
47
46
|
expect(boleto_novo.aceite).to eql('S')
|
|
48
47
|
expect(boleto_novo.quantidade).to eql(1)
|
|
49
|
-
expect(boleto_novo.valor).to eql(
|
|
50
|
-
expect(boleto_novo.valor_documento).to eql(
|
|
48
|
+
expect(boleto_novo.valor).to eql(195.57)
|
|
49
|
+
expect(boleto_novo.valor_documento).to eql(195.57)
|
|
51
50
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
|
52
51
|
expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
|
|
53
52
|
expect(boleto_novo.documento_cedente).to eql('12345678912')
|
|
54
53
|
expect(boleto_novo.sacado).to eql('Claudio Pozzebom')
|
|
55
54
|
expect(boleto_novo.sacado_documento).to eql('12345678900')
|
|
56
55
|
expect(boleto_novo.conta_corrente).to eql('61900')
|
|
57
|
-
expect(boleto_novo.agencia).to eql('
|
|
58
|
-
expect(boleto_novo.convenio).to eql(
|
|
59
|
-
expect(boleto_novo.numero_documento).to eql('
|
|
60
|
-
expect(boleto_novo.carteira).to eql('
|
|
56
|
+
expect(boleto_novo.agencia).to eql('0710')
|
|
57
|
+
expect(boleto_novo.convenio).to eql('00129')
|
|
58
|
+
expect(boleto_novo.numero_documento).to eql('08879')
|
|
59
|
+
expect(boleto_novo.carteira).to eql('1')
|
|
61
60
|
end
|
|
62
61
|
|
|
63
|
-
it 'Montar código de barras para carteira número
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
@valid_attributes[:data_documento] = Date.parse('2012-01-19')
|
|
67
|
-
@valid_attributes[:numero_documento] = '13871'
|
|
68
|
-
@valid_attributes[:conta_corrente] = '12345'
|
|
69
|
-
@valid_attributes[:agencia] = '1234'
|
|
70
|
-
@valid_attributes[:carteira] = '03'
|
|
71
|
-
@valid_attributes[:posto] = '18'
|
|
72
|
-
@valid_attributes[:aceite] = 'N'
|
|
73
|
-
@valid_attributes[:byte_idt] = '2'
|
|
74
|
-
boleto_novo = described_class.new(@valid_attributes)
|
|
62
|
+
it 'Montar código de barras para carteira número 3' do
|
|
63
|
+
valid_attributes[:carteira] = '3'
|
|
64
|
+
boleto_novo = described_class.new(valid_attributes)
|
|
75
65
|
|
|
76
|
-
expect(boleto_novo.codigo_barras.linha_digitavel).to eql('74893.
|
|
77
|
-
expect(boleto_novo.codigo_barras_segunda_parte).to eql('
|
|
66
|
+
expect(boleto_novo.codigo_barras.linha_digitavel).to eql('74893.11626 08879.307109 65001.291056 1 68940000019557')
|
|
67
|
+
expect(boleto_novo.codigo_barras_segunda_parte).to eql('3116208879307106500129105')
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
context 'carteira número 1' do
|
|
71
|
+
it 'case 1' do
|
|
72
|
+
boleto_novo = described_class.new(valid_attributes)
|
|
73
|
+
expect(boleto_novo.codigo_barras.linha_digitavel).to eql('74891.11620 08879.307109 65001.291015 1 68940000019557')
|
|
74
|
+
expect(boleto_novo.codigo_barras_segunda_parte).to eql('1116208879307106500129101')
|
|
75
|
+
end
|
|
76
|
+
it 'case 2' do
|
|
77
|
+
valid_attributes[:valor] = 700.00
|
|
78
|
+
valid_attributes[:data_vencimento] = Date.parse('2016-07-25')
|
|
79
|
+
valid_attributes[:numero_documento] = '08902'
|
|
80
|
+
boleto_novo = described_class.new(valid_attributes)
|
|
81
|
+
expect(boleto_novo.codigo_barras.linha_digitavel).to eql('74891.11620 08902.107104 65001.291007 3 68660000070000')
|
|
82
|
+
expect(boleto_novo.codigo_barras_segunda_parte).to eql('1116208902107106500129100')
|
|
83
|
+
end
|
|
84
|
+
it 'case 3' do
|
|
85
|
+
valid_attributes[:valor] = 700.00
|
|
86
|
+
valid_attributes[:data_vencimento] = Date.parse('2016-07-25')
|
|
87
|
+
valid_attributes[:numero_documento] = '8896'
|
|
88
|
+
boleto_novo = described_class.new(valid_attributes)
|
|
89
|
+
expect(boleto_novo.codigo_barras.linha_digitavel).to eql('74891.11620 08896.307108 65001.291072 1 68660000070000')
|
|
90
|
+
expect(boleto_novo.codigo_barras_segunda_parte).to eql('1116208896307106500129107')
|
|
91
|
+
end
|
|
92
|
+
it 'case 4' do
|
|
93
|
+
valid_attributes[:valor] = 700.00
|
|
94
|
+
valid_attributes[:data_vencimento] = Date.parse('2016-07-25')
|
|
95
|
+
valid_attributes[:numero_documento] = '8899'
|
|
96
|
+
boleto_novo = described_class.new(valid_attributes)
|
|
97
|
+
expect(boleto_novo.codigo_barras.linha_digitavel).to eql('74891.11620 08899.807104 65001.291031 6 68660000070000')
|
|
98
|
+
expect(boleto_novo.codigo_barras_segunda_parte).to eql('1116208899807106500129103')
|
|
99
|
+
end
|
|
100
|
+
it 'case 5' do
|
|
101
|
+
valid_attributes[:valor] = 195.58
|
|
102
|
+
valid_attributes[:data_vencimento] = Date.parse('2016-07-25')
|
|
103
|
+
valid_attributes[:numero_documento] = '8878'
|
|
104
|
+
boleto_novo = described_class.new(valid_attributes)
|
|
105
|
+
expect(boleto_novo.codigo_barras.linha_digitavel).to eql('74891.11620 08878.507105 65001.291064 1 68660000019558')
|
|
106
|
+
expect(boleto_novo.codigo_barras_segunda_parte).to eql('1116208878507106500129106')
|
|
107
|
+
end
|
|
108
|
+
it 'case 6' do
|
|
109
|
+
valid_attributes[:valor] = 222.00
|
|
110
|
+
valid_attributes[:data_vencimento] = Date.parse('2016-08-26')
|
|
111
|
+
valid_attributes[:numero_documento] = '9048'
|
|
112
|
+
boleto_novo = described_class.new(valid_attributes)
|
|
113
|
+
expect(boleto_novo.codigo_barras.linha_digitavel).to eql('74891.11620 09048.807102 65001.291031 8 68980000022200')
|
|
114
|
+
expect(boleto_novo.codigo_barras_segunda_parte).to eql('1116209048807106500129103')
|
|
115
|
+
end
|
|
78
116
|
end
|
|
79
117
|
|
|
80
118
|
it 'Não permitir gerar boleto com atributos inválido' do
|
|
@@ -84,25 +122,14 @@ RSpec.describe Brcobranca::Boleto::Sicredi do
|
|
|
84
122
|
end
|
|
85
123
|
|
|
86
124
|
it 'Montar nosso_numero_boleto' do
|
|
87
|
-
boleto_novo = described_class.new(
|
|
88
|
-
|
|
89
|
-
boleto_novo.
|
|
90
|
-
boleto_novo.agencia = '1234'
|
|
91
|
-
boleto_novo.posto = '18'
|
|
92
|
-
boleto_novo.conta_corrente = '12345'
|
|
93
|
-
boleto_novo.numero_documento = '13871'
|
|
94
|
-
boleto_novo.carteira = '03'
|
|
95
|
-
expect(boleto_novo.nosso_numero_boleto).to eql('12/213871-5')
|
|
96
|
-
expect(boleto_novo.nosso_numero_dv).to eql(5)
|
|
125
|
+
boleto_novo = described_class.new(valid_attributes)
|
|
126
|
+
expect(boleto_novo.nosso_numero_boleto).to eql('16/208879-3')
|
|
127
|
+
expect(boleto_novo.nosso_numero_dv).to eql(3)
|
|
97
128
|
end
|
|
98
129
|
|
|
99
130
|
it 'Montar agencia_conta_boleto' do
|
|
100
|
-
boleto_novo = described_class.new(
|
|
101
|
-
|
|
102
|
-
boleto_novo.agencia = '1234'
|
|
103
|
-
boleto_novo.posto = '18'
|
|
104
|
-
boleto_novo.conta_corrente = '12345'
|
|
105
|
-
expect(boleto_novo.agencia_conta_boleto).to eql('1234.18.12345')
|
|
131
|
+
boleto_novo = described_class.new(valid_attributes)
|
|
132
|
+
expect(boleto_novo.agencia_conta_boleto).to eql('0710.65.00129')
|
|
106
133
|
end
|
|
107
134
|
|
|
108
135
|
describe 'Busca logotipo do banco' do
|
|
@@ -110,7 +137,7 @@ RSpec.describe Brcobranca::Boleto::Sicredi do
|
|
|
110
137
|
end
|
|
111
138
|
|
|
112
139
|
it 'Gerar boleto nos formatos válidos com método to_' do
|
|
113
|
-
boleto_novo = described_class.new(
|
|
140
|
+
boleto_novo = described_class.new(valid_attributes)
|
|
114
141
|
|
|
115
142
|
%w(pdf jpg tif png).each do |format|
|
|
116
143
|
file_body = boleto_novo.send("to_#{format}".to_sym)
|
|
@@ -125,13 +152,13 @@ RSpec.describe Brcobranca::Boleto::Sicredi do
|
|
|
125
152
|
end
|
|
126
153
|
|
|
127
154
|
it 'Gerar boleto nos formatos válidos' do
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
boleto_novo = described_class.new(
|
|
155
|
+
valid_attributes[:valor] = 2952.95
|
|
156
|
+
valid_attributes[:data_documento] = Date.parse('2009-04-30')
|
|
157
|
+
valid_attributes[:data_vencimento] = Date.parse('2008-02-01')
|
|
158
|
+
valid_attributes[:numero_documento] = '86452'
|
|
159
|
+
valid_attributes[:conta_corrente] = '03005'
|
|
160
|
+
valid_attributes[:agencia] = '1172'
|
|
161
|
+
boleto_novo = described_class.new(valid_attributes)
|
|
135
162
|
|
|
136
163
|
%w(pdf jpg tif png).each do |format|
|
|
137
164
|
file_body = boleto_novo.to(format)
|
|
@@ -144,24 +171,4 @@ RSpec.describe Brcobranca::Boleto::Sicredi do
|
|
|
144
171
|
expect(File.exist?(tmp_file.path)).to be_falsey
|
|
145
172
|
end
|
|
146
173
|
end
|
|
147
|
-
|
|
148
|
-
it "quando dígito verificador for 10 deve ser mapeado para 0" do
|
|
149
|
-
attributes = {
|
|
150
|
-
convenio: "2442725",
|
|
151
|
-
agencia: "0217",
|
|
152
|
-
conta_corrente: "42725",
|
|
153
|
-
byte_idt: 1,
|
|
154
|
-
posto: "24",
|
|
155
|
-
numero_documento: 25,
|
|
156
|
-
valor: 20.00,
|
|
157
|
-
data_documento: Date.parse("2015-01-18")
|
|
158
|
-
}
|
|
159
|
-
attributes = @valid_attributes.merge(attributes)
|
|
160
|
-
boleto_novo = described_class.new(attributes)
|
|
161
|
-
|
|
162
|
-
result = boleto_novo.nosso_numero_dv
|
|
163
|
-
|
|
164
|
-
expect("#{boleto_novo.agencia_posto_conta}#{boleto_novo.numero_documento_with_byte_idt}".modulo11).to eq(10)
|
|
165
|
-
expect(result).to eq(0)
|
|
166
|
-
end
|
|
167
174
|
end
|
|
@@ -13,7 +13,7 @@ RSpec.describe Brcobranca::Boleto::Unicred do
|
|
|
13
13
|
sacado_documento: '12345678900',
|
|
14
14
|
agencia: '4042',
|
|
15
15
|
conta_corrente: '61900',
|
|
16
|
-
convenio:
|
|
16
|
+
convenio: 12345,
|
|
17
17
|
numero_documento: '00168',
|
|
18
18
|
posto: '1',
|
|
19
19
|
byte_idt: '7'
|
|
@@ -33,7 +33,7 @@ RSpec.describe Brcobranca::Boleto::Unicred do
|
|
|
33
33
|
expect(boleto_novo.valor).to eql(0.0)
|
|
34
34
|
expect(boleto_novo.valor_documento).to eql(0.0)
|
|
35
35
|
expect(boleto_novo.local_pagamento).to eql('PAGÁVEL PREFERENCIALMENTE NAS AGÊNCIAS DA UNICRED')
|
|
36
|
-
expect(boleto_novo.carteira).to eql('
|
|
36
|
+
expect(boleto_novo.carteira).to eql('3')
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
it 'Criar nova instancia com atributos válidos' do
|
|
@@ -55,9 +55,9 @@ RSpec.describe Brcobranca::Boleto::Unicred do
|
|
|
55
55
|
expect(boleto_novo.sacado_documento).to eql('12345678900')
|
|
56
56
|
expect(boleto_novo.conta_corrente).to eql('61900')
|
|
57
57
|
expect(boleto_novo.agencia).to eql('4042')
|
|
58
|
-
expect(boleto_novo.convenio).to eql(
|
|
58
|
+
expect(boleto_novo.convenio).to eql("12345")
|
|
59
59
|
expect(boleto_novo.numero_documento).to eql('00168')
|
|
60
|
-
expect(boleto_novo.carteira).to eql('
|
|
60
|
+
expect(boleto_novo.carteira).to eql('3')
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
it 'Montar código de barras para carteira número 03' do
|
|
@@ -67,7 +67,7 @@ RSpec.describe Brcobranca::Boleto::Unicred do
|
|
|
67
67
|
@valid_attributes[:numero_documento] = '13871'
|
|
68
68
|
@valid_attributes[:conta_corrente] = '12345'
|
|
69
69
|
@valid_attributes[:agencia] = '1234'
|
|
70
|
-
@valid_attributes[:carteira] = '
|
|
70
|
+
@valid_attributes[:carteira] = '3'
|
|
71
71
|
@valid_attributes[:posto] = '8'
|
|
72
72
|
@valid_attributes[:aceite] = 'N'
|
|
73
73
|
@valid_attributes[:byte_idt] = '2'
|
|
@@ -91,7 +91,7 @@ RSpec.describe Brcobranca::Boleto::Unicred do
|
|
|
91
91
|
boleto_novo.posto = '18'
|
|
92
92
|
boleto_novo.conta_corrente = '12345'
|
|
93
93
|
boleto_novo.numero_documento = '13871'
|
|
94
|
-
boleto_novo.carteira = '
|
|
94
|
+
boleto_novo.carteira = '3'
|
|
95
95
|
expect(boleto_novo.nosso_numero_boleto).to eql('12/213871-5')
|
|
96
96
|
expect(boleto_novo.nosso_numero_dv).to eql(5)
|
|
97
97
|
end
|
|
@@ -144,24 +144,4 @@ RSpec.describe Brcobranca::Boleto::Unicred do
|
|
|
144
144
|
expect(File.exist?(tmp_file.path)).to be_falsey
|
|
145
145
|
end
|
|
146
146
|
end
|
|
147
|
-
|
|
148
|
-
it "quando dígito verificador for 10 deve ser mapeado para 0" do
|
|
149
|
-
attributes = {
|
|
150
|
-
convenio: "2442725",
|
|
151
|
-
agencia: "0217",
|
|
152
|
-
conta_corrente: "42725",
|
|
153
|
-
byte_idt: 1,
|
|
154
|
-
posto: "24",
|
|
155
|
-
numero_documento: 25,
|
|
156
|
-
valor: 20.00,
|
|
157
|
-
data_documento: Date.parse("2015-01-18")
|
|
158
|
-
}
|
|
159
|
-
attributes = @valid_attributes.merge(attributes)
|
|
160
|
-
boleto_novo = described_class.new(attributes)
|
|
161
|
-
|
|
162
|
-
result = boleto_novo.nosso_numero_dv
|
|
163
|
-
|
|
164
|
-
expect("#{boleto_novo.agencia_posto_conta}#{boleto_novo.numero_documento_with_byte_idt}".modulo11).to eq(10)
|
|
165
|
-
expect(result).to eq(0)
|
|
166
|
-
end
|
|
167
147
|
end
|
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: 6.
|
|
4
|
+
version: 6.7.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: 2016-07-
|
|
11
|
+
date: 2016-07-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rghost
|
|
@@ -66,6 +66,20 @@ dependencies:
|
|
|
66
66
|
- - ">="
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '3'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: activesupport
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - ">="
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '3'
|
|
76
|
+
type: :runtime
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - ">="
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '3'
|
|
69
83
|
- !ruby/object:Gem::Dependency
|
|
70
84
|
name: unidecoder
|
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -259,7 +273,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
259
273
|
requirements:
|
|
260
274
|
- GhostScript > 9.0, para gear PDF e código de Barras
|
|
261
275
|
rubyforge_project:
|
|
262
|
-
rubygems_version: 2.
|
|
276
|
+
rubygems_version: 2.5.1
|
|
263
277
|
signing_key:
|
|
264
278
|
specification_version: 4
|
|
265
279
|
summary: Gem que permite trabalhar com bloquetos de cobranca para bancos brasileiros.
|