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