brcobranca 9.1.2 → 9.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +2 -3
- data/lib/brcobranca.rb +1 -0
- data/lib/brcobranca/arquivos/logos/safra.eps +17863 -0
- data/lib/brcobranca/arquivos/logos/safra_carne.eps +17863 -0
- data/lib/brcobranca/boleto/safra.rb +144 -0
- data/lib/brcobranca/version.rb +1 -1
- data/spec/brcobranca/base_spec.rb +10 -10
- data/spec/brcobranca/boleto/banco_brasil_spec.rb +4 -4
- data/spec/brcobranca/boleto/banco_nordeste_spec.rb +4 -4
- data/spec/brcobranca/boleto/banestes_spec.rb +4 -4
- data/spec/brcobranca/boleto/banrisul_spec.rb +4 -4
- data/spec/brcobranca/boleto/bradesco_spec.rb +4 -4
- data/spec/brcobranca/boleto/caixa_spec.rb +2 -2
- data/spec/brcobranca/boleto/hsbc_spec.rb +4 -4
- data/spec/brcobranca/boleto/itau_spec.rb +4 -4
- data/spec/brcobranca/boleto/safra_spec.rb +152 -0
- data/spec/brcobranca/boleto/santander_spec.rb +4 -4
- data/spec/brcobranca/boleto/sicoob_spec.rb +4 -4
- data/spec/brcobranca/boleto/sicredi_spec.rb +4 -4
- data/spec/brcobranca/boleto/unicred_spec.rb +4 -4
- metadata +8 -3
@@ -0,0 +1,144 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
#
|
3
|
+
|
4
|
+
module Brcobranca
|
5
|
+
module Boleto
|
6
|
+
class Safra < Base # Banco Safra
|
7
|
+
validates_length_of :agencia, maximum: 5, message: 'deve ser menor ou igual a 4 dígitos.'
|
8
|
+
validates_length_of :nosso_numero, maximum: 8, message: 'deve ser menor ou igual a 8 dígitos.'
|
9
|
+
validates_length_of :conta_corrente, maximum: 9, message: 'deve ser menor ou igual a 5 dígitos.'
|
10
|
+
|
11
|
+
# Codigo do banco emissor (3 dígitos sempre)
|
12
|
+
#
|
13
|
+
# @return [String] 3 caracteres numéricos.
|
14
|
+
def banco
|
15
|
+
'422'
|
16
|
+
end
|
17
|
+
|
18
|
+
# Agência
|
19
|
+
#
|
20
|
+
# @return [String] 5 caracteres numéricos.
|
21
|
+
def agencia=(valor)
|
22
|
+
@agencia = valor.to_s.rjust(5, '0') if valor
|
23
|
+
end
|
24
|
+
|
25
|
+
# Conta corrente
|
26
|
+
# @return [String] 9 caracteres numéricos.
|
27
|
+
def conta_corrente=(valor)
|
28
|
+
@conta_corrente = valor.to_s.rjust(9, '0') if valor
|
29
|
+
end
|
30
|
+
|
31
|
+
# Número seqüencial utilizado para identificar o boleto.
|
32
|
+
# @return [String] 8 caracteres numéricos.
|
33
|
+
def nosso_numero=(valor)
|
34
|
+
@nosso_numero = valor.to_s.rjust(8, '0') if valor
|
35
|
+
end
|
36
|
+
|
37
|
+
# Dígito verificador do nosso número.
|
38
|
+
#
|
39
|
+
# @return [String] 1 caracteres numéricos.
|
40
|
+
def nosso_numero_dv
|
41
|
+
nosso_numero.modulo11(
|
42
|
+
reverse: false,
|
43
|
+
mapeamento: { 10 => 0, 11 => 1 }
|
44
|
+
) { |total| 11 - (total % 11) }
|
45
|
+
end
|
46
|
+
|
47
|
+
# Nosso número para exibir no boleto.
|
48
|
+
# @return [String]
|
49
|
+
# @example
|
50
|
+
# boleto.nosso_numero_boleto #=> "175/12345678-4"
|
51
|
+
def nosso_numero_boleto
|
52
|
+
"#{nosso_numero}-#{nosso_numero_dv}"
|
53
|
+
end
|
54
|
+
|
55
|
+
# Agência + conta corrente do cliente para exibir no boleto.
|
56
|
+
# @return [String]
|
57
|
+
# @example
|
58
|
+
# boleto.agencia_conta_boleto #=> "0811 / 53678-8"
|
59
|
+
def agencia_conta_boleto
|
60
|
+
"#{agencia} / #{conta_corrente}"
|
61
|
+
end
|
62
|
+
|
63
|
+
# Segunda parte do código de barras.
|
64
|
+
#
|
65
|
+
# ORMATAÇÃO DO CÓDIGO DE BARRAS - COBRANÇA REGISTRADA
|
66
|
+
# Campo
|
67
|
+
# Significado
|
68
|
+
#
|
69
|
+
# Formato
|
70
|
+
# Posições
|
71
|
+
# Conteúdo
|
72
|
+
# DE
|
73
|
+
#
|
74
|
+
# ATÉ
|
75
|
+
# Banco
|
76
|
+
# Banco Beneficiário do boleto
|
77
|
+
# 9 (03)
|
78
|
+
# 1
|
79
|
+
# 3
|
80
|
+
# 422
|
81
|
+
# Moeda
|
82
|
+
# Código da moeda
|
83
|
+
# 9 (01)
|
84
|
+
# 4
|
85
|
+
# 4
|
86
|
+
# 9 = real
|
87
|
+
# DAC
|
88
|
+
# DAC - Dígito de auto conferência
|
89
|
+
# 9 (01)
|
90
|
+
# 5
|
91
|
+
# 5
|
92
|
+
# Dígito de auto conferência
|
93
|
+
# Fator de Vencimento
|
94
|
+
# Data de vencimento do título
|
95
|
+
# 9(04)
|
96
|
+
# 6
|
97
|
+
# 9
|
98
|
+
# DV
|
99
|
+
# Valor
|
100
|
+
# Valor do boleto
|
101
|
+
# 9 (10)
|
102
|
+
# 10
|
103
|
+
# 19
|
104
|
+
# Valor do Boleto com zeros a esquerda
|
105
|
+
# Campo Livre
|
106
|
+
# Sistema
|
107
|
+
# 9 (01)
|
108
|
+
# 20
|
109
|
+
# 20
|
110
|
+
# 7 = Dígito do Bco Safra
|
111
|
+
# Campo Livre
|
112
|
+
# Agência
|
113
|
+
# 9 (05)
|
114
|
+
# 21
|
115
|
+
# 25
|
116
|
+
# (05) Agência do cliente Safra
|
117
|
+
# Campo Livre
|
118
|
+
# Cliente
|
119
|
+
# 9 (09)
|
120
|
+
# 26
|
121
|
+
# 34
|
122
|
+
# No da conta
|
123
|
+
# Campo Livre
|
124
|
+
# Nosso Número
|
125
|
+
# 9 (09)
|
126
|
+
# 35
|
127
|
+
# 43
|
128
|
+
# Nosso Número
|
129
|
+
# Campo Livre
|
130
|
+
# Tipo cobrança
|
131
|
+
# 9 (01)
|
132
|
+
#
|
133
|
+
# 44
|
134
|
+
# 44
|
135
|
+
#
|
136
|
+
# 2 = cobrança registrada
|
137
|
+
#
|
138
|
+
# @return [String] 25 caracteres numéricos.
|
139
|
+
def codigo_barras_segunda_parte
|
140
|
+
"7#{agencia}#{conta_corrente}#{nosso_numero}#{nosso_numero_dv}2"
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
data/lib/brcobranca/version.rb
CHANGED
@@ -32,8 +32,8 @@ RSpec.describe Brcobranca::Boleto::Base do
|
|
32
32
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
33
33
|
expect(boleto_novo.aceite).to eql('S')
|
34
34
|
expect(boleto_novo.quantidade).to be(1)
|
35
|
-
expect(boleto_novo.valor).to
|
36
|
-
expect(boleto_novo.valor_documento).to
|
35
|
+
expect(boleto_novo.valor).to eq(0.0)
|
36
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
37
37
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
38
38
|
expect(boleto_novo.valid?).to be_falsey
|
39
39
|
end
|
@@ -47,8 +47,8 @@ RSpec.describe Brcobranca::Boleto::Base do
|
|
47
47
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
48
48
|
expect(boleto_novo.aceite).to eql('S')
|
49
49
|
expect(boleto_novo.quantidade).to be(1)
|
50
|
-
expect(boleto_novo.valor).to
|
51
|
-
expect(boleto_novo.valor_documento).to
|
50
|
+
expect(boleto_novo.valor).to eq(0.0)
|
51
|
+
expect(boleto_novo.valor_documento).to eq(0.00)
|
52
52
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
53
53
|
expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
|
54
54
|
expect(boleto_novo.documento_cedente).to eql('12345678912')
|
@@ -122,22 +122,22 @@ RSpec.describe Brcobranca::Boleto::Base do
|
|
122
122
|
boleto_novo = described_class.new(@valid_attributes)
|
123
123
|
boleto_novo.quantidade = 1
|
124
124
|
boleto_novo.valor = 1
|
125
|
-
expect(boleto_novo.valor_documento).to
|
125
|
+
expect(boleto_novo.valor_documento).to eq(1.0)
|
126
126
|
boleto_novo.quantidade = 1
|
127
127
|
boleto_novo.valor = 1.0
|
128
|
-
expect(boleto_novo.valor_documento).to
|
128
|
+
expect(boleto_novo.valor_documento).to eq(1.0)
|
129
129
|
boleto_novo.quantidade = 100
|
130
130
|
boleto_novo.valor = 1
|
131
|
-
expect(boleto_novo.valor_documento).to
|
131
|
+
expect(boleto_novo.valor_documento).to eq(100.0)
|
132
132
|
boleto_novo.quantidade = 1
|
133
133
|
boleto_novo.valor = 1.2
|
134
|
-
expect(boleto_novo.valor_documento).to
|
134
|
+
expect(boleto_novo.valor_documento).to eq(1.2)
|
135
135
|
boleto_novo.quantidade = 1
|
136
136
|
boleto_novo.valor = 135.43
|
137
|
-
expect(boleto_novo.valor_documento).to
|
137
|
+
expect(boleto_novo.valor_documento).to eq(135.43)
|
138
138
|
boleto_novo.quantidade = 'gh'
|
139
139
|
boleto_novo.valor = 135.43
|
140
|
-
expect(boleto_novo.valor_documento).to
|
140
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
141
141
|
end
|
142
142
|
|
143
143
|
it 'Mostrar aviso sobre sobrecarga de métodos padrões' do
|
@@ -28,8 +28,8 @@ RSpec.describe Brcobranca::Boleto::BancoBrasil do #:nodoc:[all]
|
|
28
28
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
29
29
|
expect(boleto_novo.aceite).to eql('S')
|
30
30
|
expect(boleto_novo.quantidade).to be(1)
|
31
|
-
expect(boleto_novo.valor).to
|
32
|
-
expect(boleto_novo.valor_documento).to
|
31
|
+
expect(boleto_novo.valor).to eq(0.0)
|
32
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
33
33
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
34
34
|
expect(boleto_novo.carteira).to eql('18')
|
35
35
|
expect(boleto_novo.codigo_servico).to be_falsey
|
@@ -45,8 +45,8 @@ RSpec.describe Brcobranca::Boleto::BancoBrasil do #:nodoc:[all]
|
|
45
45
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
46
46
|
expect(boleto_novo.aceite).to eql('S')
|
47
47
|
expect(boleto_novo.quantidade).to be(1)
|
48
|
-
expect(boleto_novo.valor).to
|
49
|
-
expect(boleto_novo.valor_documento).to
|
48
|
+
expect(boleto_novo.valor).to eq(0.0)
|
49
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
50
50
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
51
51
|
expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
|
52
52
|
expect(boleto_novo.documento_cedente).to eql('12345678912')
|
@@ -29,8 +29,8 @@ RSpec.describe Brcobranca::Boleto::BancoNordeste do #:nodoc:[all]
|
|
29
29
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
30
30
|
expect(boleto_novo.aceite).to eql('S')
|
31
31
|
expect(boleto_novo.quantidade).to be(1)
|
32
|
-
expect(boleto_novo.valor).to
|
33
|
-
expect(boleto_novo.valor_documento).to
|
32
|
+
expect(boleto_novo.valor).to eq(0.0)
|
33
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
34
34
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
35
35
|
expect(boleto_novo.carteira).to eql('21')
|
36
36
|
end
|
@@ -45,8 +45,8 @@ RSpec.describe Brcobranca::Boleto::BancoNordeste do #:nodoc:[all]
|
|
45
45
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
46
46
|
expect(boleto_novo.aceite).to eql('S')
|
47
47
|
expect(boleto_novo.quantidade).to be(1)
|
48
|
-
expect(boleto_novo.valor).to
|
49
|
-
expect(boleto_novo.valor_documento).to
|
48
|
+
expect(boleto_novo.valor).to eq(25.0)
|
49
|
+
expect(boleto_novo.valor_documento).to eq(25.0)
|
50
50
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
51
51
|
expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
|
52
52
|
expect(boleto_novo.documento_cedente).to eql('12345678912')
|
@@ -29,8 +29,8 @@ RSpec.describe Brcobranca::Boleto::Banestes do #:nodoc:[all]
|
|
29
29
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
30
30
|
expect(boleto_novo.aceite).to eql('S')
|
31
31
|
expect(boleto_novo.quantidade).to be(1)
|
32
|
-
expect(boleto_novo.valor).to
|
33
|
-
expect(boleto_novo.valor_documento).to
|
32
|
+
expect(boleto_novo.valor).to eq(0.0)
|
33
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
34
34
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
35
35
|
expect(boleto_novo.carteira).to eql('11')
|
36
36
|
end
|
@@ -45,8 +45,8 @@ RSpec.describe Brcobranca::Boleto::Banestes do #:nodoc:[all]
|
|
45
45
|
expect(boleto_novo.data_vencimento).to eql(Date.parse('2015-06-26'))
|
46
46
|
expect(boleto_novo.aceite).to eql('S')
|
47
47
|
expect(boleto_novo.quantidade).to be(1)
|
48
|
-
expect(boleto_novo.valor).to
|
49
|
-
expect(boleto_novo.valor_documento).to
|
48
|
+
expect(boleto_novo.valor).to eq(1278.9)
|
49
|
+
expect(boleto_novo.valor_documento).to eq(1278.9)
|
50
50
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
51
51
|
expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
|
52
52
|
expect(boleto_novo.documento_cedente).to eql('12345678912')
|
@@ -30,8 +30,8 @@ RSpec.describe Brcobranca::Boleto::Banrisul do #:nodoc:[all]
|
|
30
30
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
31
31
|
expect(boleto_novo.aceite).to eql('S')
|
32
32
|
expect(boleto_novo.quantidade).to be(1)
|
33
|
-
expect(boleto_novo.valor).to
|
34
|
-
expect(boleto_novo.valor_documento).to
|
33
|
+
expect(boleto_novo.valor).to eq(0.0)
|
34
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
35
35
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
36
36
|
expect(boleto_novo.carteira).to eql('2')
|
37
37
|
end
|
@@ -46,8 +46,8 @@ RSpec.describe Brcobranca::Boleto::Banrisul do #:nodoc:[all]
|
|
46
46
|
expect(boleto_novo.data_vencimento).to eql(Date.parse('2015-06-26'))
|
47
47
|
expect(boleto_novo.aceite).to eql('S')
|
48
48
|
expect(boleto_novo.quantidade).to be(1)
|
49
|
-
expect(boleto_novo.valor).to
|
50
|
-
expect(boleto_novo.valor_documento).to
|
49
|
+
expect(boleto_novo.valor).to eq(1278.9)
|
50
|
+
expect(boleto_novo.valor_documento).to eq(1278.9)
|
51
51
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
52
52
|
expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
|
53
53
|
expect(boleto_novo.documento_cedente).to eql('12345678912')
|
@@ -29,8 +29,8 @@ RSpec.describe Brcobranca::Boleto::Bradesco do
|
|
29
29
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
30
30
|
expect(boleto_novo.aceite).to eql('S')
|
31
31
|
expect(boleto_novo.quantidade).to be(1)
|
32
|
-
expect(boleto_novo.valor).to
|
33
|
-
expect(boleto_novo.valor_documento).to
|
32
|
+
expect(boleto_novo.valor).to eq(0.0)
|
33
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
34
34
|
expect(boleto_novo.local_pagamento).to eql('Pagável preferencialmente na Rede Bradesco ou Bradesco Expresso')
|
35
35
|
expect(boleto_novo.carteira).to eql('06')
|
36
36
|
end
|
@@ -45,8 +45,8 @@ RSpec.describe Brcobranca::Boleto::Bradesco do
|
|
45
45
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
46
46
|
expect(boleto_novo.aceite).to eql('S')
|
47
47
|
expect(boleto_novo.quantidade).to be(1)
|
48
|
-
expect(boleto_novo.valor).to
|
49
|
-
expect(boleto_novo.valor_documento).to
|
48
|
+
expect(boleto_novo.valor).to eq(0.0)
|
49
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
50
50
|
expect(boleto_novo.local_pagamento).to eql('Pagável preferencialmente na Rede Bradesco ou Bradesco Expresso')
|
51
51
|
expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
|
52
52
|
expect(boleto_novo.documento_cedente).to eql('12345678912')
|
@@ -29,8 +29,8 @@ RSpec.describe Brcobranca::Boleto::Caixa do #:nodoc:[all]
|
|
29
29
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
30
30
|
expect(boleto_novo.aceite).to eql('S')
|
31
31
|
expect(boleto_novo.quantidade).to be(1)
|
32
|
-
expect(boleto_novo.valor).to
|
33
|
-
expect(boleto_novo.valor_documento).to
|
32
|
+
expect(boleto_novo.valor).to eq(0.0)
|
33
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
34
34
|
expect(boleto_novo.local_pagamento).to eql('PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE')
|
35
35
|
expect(boleto_novo.codigo_servico).to be_falsey
|
36
36
|
expect(boleto_novo.carteira).to eql('1')
|
@@ -28,8 +28,8 @@ RSpec.describe Brcobranca::Boleto::Hsbc do
|
|
28
28
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
29
29
|
expect(boleto_novo.aceite).to eql('S')
|
30
30
|
expect(boleto_novo.quantidade).to be(1)
|
31
|
-
expect(boleto_novo.valor).to
|
32
|
-
expect(boleto_novo.valor_documento).to
|
31
|
+
expect(boleto_novo.valor).to eq(0.0)
|
32
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
33
33
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
34
34
|
expect(boleto_novo.carteira).to eql('CNR')
|
35
35
|
end
|
@@ -44,8 +44,8 @@ RSpec.describe Brcobranca::Boleto::Hsbc do
|
|
44
44
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
45
45
|
expect(boleto_novo.aceite).to eql('S')
|
46
46
|
expect(boleto_novo.quantidade).to be(1)
|
47
|
-
expect(boleto_novo.valor).to
|
48
|
-
expect(boleto_novo.valor_documento).to
|
47
|
+
expect(boleto_novo.valor).to eq(0.0)
|
48
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
49
49
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
50
50
|
expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
|
51
51
|
expect(boleto_novo.documento_cedente).to eql('12345678912')
|
@@ -28,8 +28,8 @@ RSpec.describe Brcobranca::Boleto::Itau do
|
|
28
28
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
29
29
|
expect(boleto_novo.aceite).to eql('S')
|
30
30
|
expect(boleto_novo.quantidade).to be(1)
|
31
|
-
expect(boleto_novo.valor).to
|
32
|
-
expect(boleto_novo.valor_documento).to
|
31
|
+
expect(boleto_novo.valor).to eq(0.0)
|
32
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
33
33
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
34
34
|
expect(boleto_novo.carteira).to eql('175')
|
35
35
|
end
|
@@ -44,8 +44,8 @@ RSpec.describe Brcobranca::Boleto::Itau do
|
|
44
44
|
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
45
45
|
expect(boleto_novo.aceite).to eql('S')
|
46
46
|
expect(boleto_novo.quantidade).to be(1)
|
47
|
-
expect(boleto_novo.valor).to
|
48
|
-
expect(boleto_novo.valor_documento).to
|
47
|
+
expect(boleto_novo.valor).to eq(0.0)
|
48
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
49
49
|
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
50
50
|
expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
|
51
51
|
expect(boleto_novo.documento_cedente).to eql('12345678912')
|
@@ -0,0 +1,152 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
#
|
3
|
+
|
4
|
+
require 'spec_helper'
|
5
|
+
|
6
|
+
RSpec.describe Brcobranca::Boleto::Safra do
|
7
|
+
let(:valid_attributes) do
|
8
|
+
{
|
9
|
+
valor: 0.0,
|
10
|
+
local_pagamento: 'Pagável preferencialmente na Rede Bradesco ou Bradesco Expresso',
|
11
|
+
cedente: 'Kivanio Barbosa',
|
12
|
+
documento_cedente: '12345678912',
|
13
|
+
sacado: 'Claudio Pozzebom',
|
14
|
+
sacado_documento: '12345678900',
|
15
|
+
agencia: '4042',
|
16
|
+
conta_corrente: '61900',
|
17
|
+
convenio: 12_387_989,
|
18
|
+
nosso_numero: '77700168'
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'Criar nova instancia com atributos padrões' do
|
23
|
+
boleto_novo = described_class.new
|
24
|
+
expect(boleto_novo.banco).to eql('422')
|
25
|
+
expect(boleto_novo.especie_documento).to eql('DM')
|
26
|
+
expect(boleto_novo.especie).to eql('R$')
|
27
|
+
expect(boleto_novo.moeda).to eql('9')
|
28
|
+
expect(boleto_novo.data_processamento).to eql(Date.current)
|
29
|
+
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
30
|
+
expect(boleto_novo.aceite).to eql('S')
|
31
|
+
expect(boleto_novo.quantidade).to be(1)
|
32
|
+
expect(boleto_novo.valor).to eq(0.0)
|
33
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
34
|
+
expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'Criar nova instancia com atributos válidos' do
|
38
|
+
boleto_novo = described_class.new(valid_attributes)
|
39
|
+
expect(boleto_novo.banco).to eql('422')
|
40
|
+
expect(boleto_novo.especie_documento).to eql('DM')
|
41
|
+
expect(boleto_novo.especie).to eql('R$')
|
42
|
+
expect(boleto_novo.moeda).to eql('9')
|
43
|
+
expect(boleto_novo.data_processamento).to eql(Date.current)
|
44
|
+
expect(boleto_novo.data_vencimento).to eql(Date.current)
|
45
|
+
expect(boleto_novo.aceite).to eql('S')
|
46
|
+
expect(boleto_novo.quantidade).to be(1)
|
47
|
+
expect(boleto_novo.valor).to eq(0.0)
|
48
|
+
expect(boleto_novo.valor_documento).to eq(0.0)
|
49
|
+
expect(boleto_novo.local_pagamento).to eql('Pagável preferencialmente na Rede Bradesco ou Bradesco Expresso')
|
50
|
+
expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
|
51
|
+
expect(boleto_novo.documento_cedente).to eql('12345678912')
|
52
|
+
expect(boleto_novo.sacado).to eql('Claudio Pozzebom')
|
53
|
+
expect(boleto_novo.sacado_documento).to eql('12345678900')
|
54
|
+
expect(boleto_novo.conta_corrente).to eql('000061900')
|
55
|
+
expect(boleto_novo.agencia).to eql('04042')
|
56
|
+
expect(boleto_novo.convenio).to be(12_387_989)
|
57
|
+
expect(boleto_novo.nosso_numero).to eql('77700168')
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'Montar código de barras' do
|
61
|
+
valid_attributes[:valor] = 180.84
|
62
|
+
valid_attributes[:data_documento] = Date.parse('2025-02-23')
|
63
|
+
valid_attributes[:data_vencimento] = Date.parse('2025-02-23')
|
64
|
+
valid_attributes[:nosso_numero] = '26173001'
|
65
|
+
valid_attributes[:conta_corrente] = '000278247'
|
66
|
+
valid_attributes[:agencia] = '00400'
|
67
|
+
boleto_novo = described_class.new(valid_attributes)
|
68
|
+
|
69
|
+
expect(boleto_novo.codigo_barras_segunda_parte).to eql('7004000002782472617300112')
|
70
|
+
expect(boleto_novo.codigo_barras).to eql('42296100100000180847004000002782472617300112')
|
71
|
+
expect(boleto_novo.codigo_barras.linha_digitavel).to eql('42297.00408 00002.782472 26173.001129 6 10010000018084')
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'Não permitir gerar boleto com atributos inválido' do
|
75
|
+
boleto_novo = described_class.new
|
76
|
+
expect { boleto_novo.codigo_barras }.to raise_error(Brcobranca::BoletoInvalido)
|
77
|
+
expect(boleto_novo.errors.count).to be(5)
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'Montar nosso_numero_boleto' do
|
81
|
+
boleto_novo = described_class.new(valid_attributes)
|
82
|
+
|
83
|
+
boleto_novo.nosso_numero = '94550200'
|
84
|
+
expect(boleto_novo.nosso_numero_boleto).to eql('94550200-1')
|
85
|
+
expect(boleto_novo.nosso_numero_dv).to be(1)
|
86
|
+
|
87
|
+
boleto_novo.nosso_numero = '93199999'
|
88
|
+
expect(boleto_novo.nosso_numero_boleto).to eql('93199999-5')
|
89
|
+
expect(boleto_novo.nosso_numero_dv).to be(5)
|
90
|
+
|
91
|
+
boleto_novo.nosso_numero = '26173001'
|
92
|
+
expect(boleto_novo.nosso_numero_boleto).to eql('26173001-1')
|
93
|
+
expect(boleto_novo.nosso_numero_dv).to be(1)
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'Montar agencia_conta_boleto' do
|
97
|
+
boleto_novo = described_class.new(valid_attributes)
|
98
|
+
|
99
|
+
expect(boleto_novo.agencia_conta_boleto).to eql('04042 / 000061900')
|
100
|
+
boleto_novo.agencia = '0719'
|
101
|
+
expect(boleto_novo.agencia_conta_boleto).to eql('00719 / 000061900')
|
102
|
+
boleto_novo.agencia = '0548'
|
103
|
+
boleto_novo.conta_corrente = '1448'
|
104
|
+
expect(boleto_novo.agencia_conta_boleto).to eql('00548 / 000001448')
|
105
|
+
end
|
106
|
+
|
107
|
+
describe 'Busca logotipo do banco' do
|
108
|
+
it_behaves_like 'busca_logotipo'
|
109
|
+
end
|
110
|
+
|
111
|
+
it 'Gerar boleto nos formatos válidos com método to_' do
|
112
|
+
valid_attributes[:valor] = 2952.95
|
113
|
+
valid_attributes[:data_documento] = Date.parse('2009-04-30')
|
114
|
+
valid_attributes[:data_vencimento] = Date.parse('2009-04-30')
|
115
|
+
valid_attributes[:nosso_numero] = '75896452'
|
116
|
+
valid_attributes[:conta_corrente] = '0403005'
|
117
|
+
valid_attributes[:agencia] = '1172'
|
118
|
+
boleto_novo = described_class.new(valid_attributes)
|
119
|
+
|
120
|
+
%w(pdf jpg tif png).each do |format|
|
121
|
+
file_body = boleto_novo.send("to_#{format}".to_sym)
|
122
|
+
tmp_file = Tempfile.new(['foobar.', format])
|
123
|
+
tmp_file.puts file_body
|
124
|
+
tmp_file.close
|
125
|
+
expect(File.exist?(tmp_file.path)).to be_truthy
|
126
|
+
expect(File.stat(tmp_file.path).zero?).to be_falsey
|
127
|
+
expect(File.delete(tmp_file.path)).to be(1)
|
128
|
+
expect(File.exist?(tmp_file.path)).to be_falsey
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'Gerar boleto nos formatos válidos' do
|
133
|
+
valid_attributes[:valor] = 2952.95
|
134
|
+
valid_attributes[:data_documento] = Date.parse('2009-04-30')
|
135
|
+
valid_attributes[:data_vencimento] = Date.parse('2009-04-30')
|
136
|
+
valid_attributes[:nosso_numero] = '75896452'
|
137
|
+
valid_attributes[:conta_corrente] = '0403005'
|
138
|
+
valid_attributes[:agencia] = '1172'
|
139
|
+
boleto_novo = described_class.new(valid_attributes)
|
140
|
+
|
141
|
+
%w(pdf jpg tif png).each do |format|
|
142
|
+
file_body = boleto_novo.to(format)
|
143
|
+
tmp_file = Tempfile.new(['foobar.', format])
|
144
|
+
tmp_file.puts file_body
|
145
|
+
tmp_file.close
|
146
|
+
expect(File.exist?(tmp_file.path)).to be_truthy
|
147
|
+
expect(File.stat(tmp_file.path).zero?).to be_falsey
|
148
|
+
expect(File.delete(tmp_file.path)).to be(1)
|
149
|
+
expect(File.exist?(tmp_file.path)).to be_falsey
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|