brcobranca 3.1.0 → 3.1.1
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.
- data/History.txt +4 -0
- data/README.rdoc +4 -3
- data/lib/brcobranca.rb +2 -1
- data/lib/brcobranca/arquivos/logos/santander.jpg +0 -0
- data/lib/brcobranca/boleto/banco_brasil.rb +2 -2
- data/lib/brcobranca/boleto/base.rb +3 -3
- data/lib/brcobranca/boleto/bradesco.rb +2 -2
- data/lib/brcobranca/boleto/hsbc.rb +3 -4
- data/lib/brcobranca/boleto/itau.rb +4 -4
- data/lib/brcobranca/boleto/santander.rb +94 -0
- data/lib/brcobranca/boleto/sicredi.rb +4 -4
- data/lib/brcobranca/boleto/unibanco.rb +1 -1
- data/lib/brcobranca/currency.rb +1 -1
- data/lib/brcobranca/limpeza.rb +1 -1
- data/lib/brcobranca/version.rb +1 -1
- data/spec/brcobranca/banco_bradesco_spec.rb +2 -2
- data/spec/brcobranca/banco_brasil_spec.rb +2 -2
- data/spec/brcobranca/banco_caixa_spec.rb +1 -1
- data/spec/brcobranca/banco_hsbc_spec.rb +2 -2
- data/spec/brcobranca/banco_real_spec.rb +2 -2
- data/spec/brcobranca/banco_sicredi_spec.rb +2 -2
- data/spec/brcobranca/banco_unibanco_spec.rb +2 -2
- data/spec/brcobranca/base_spec.rb +8 -8
- data/spec/brcobranca/itau_spec.rb +2 -2
- data/spec/brcobranca/santander_spec.rb +153 -0
- metadata +8 -4
data/History.txt
CHANGED
data/README.rdoc
CHANGED
|
@@ -13,9 +13,6 @@ Gem para emissão de bloquetos de cobrança para bancos brasileiros
|
|
|
13
13
|
|
|
14
14
|
== Bancos Disponíveis
|
|
15
15
|
|
|
16
|
-
* Banco Banespa
|
|
17
|
-
* COB
|
|
18
|
-
|
|
19
16
|
* Banco do Brasil
|
|
20
17
|
* TODAS AS CARTEIRAS PRESENTES NA DOCUMENTAÇÃO
|
|
21
18
|
|
|
@@ -41,6 +38,10 @@ Gem para emissão de bloquetos de cobrança para bancos brasileiros
|
|
|
41
38
|
|
|
42
39
|
* Banco SICREDI
|
|
43
40
|
|
|
41
|
+
* Banco Santander by Ronaldo Araujo - https://github.com/ronaldoaraujo
|
|
42
|
+
* Sem registro
|
|
43
|
+
* Com registro
|
|
44
|
+
|
|
44
45
|
== Retornos Disponíveis
|
|
45
46
|
|
|
46
47
|
* CBR643
|
data/lib/brcobranca.rb
CHANGED
|
@@ -103,7 +103,8 @@ module Brcobranca
|
|
|
103
103
|
autoload :Bradesco, 'brcobranca/boleto/bradesco'
|
|
104
104
|
autoload :Unibanco, 'brcobranca/boleto/unibanco'
|
|
105
105
|
autoload :Caixa, 'brcobranca/boleto/caixa'
|
|
106
|
-
autoload :Sicredi,
|
|
106
|
+
autoload :Sicredi, 'brcobranca/boleto/sicredi'
|
|
107
|
+
autoload :Santander, 'brcobranca/boleto/santander'
|
|
107
108
|
|
|
108
109
|
# Módulos para classes de template
|
|
109
110
|
module Template
|
|
Binary file
|
|
@@ -46,7 +46,7 @@ module Brcobranca
|
|
|
46
46
|
#
|
|
47
47
|
# @return [String] 2 caracteres numéricos.
|
|
48
48
|
def carteira=(valor)
|
|
49
|
-
@carteira = valor.to_s.rjust(2,'0')
|
|
49
|
+
@carteira = valor.to_s.rjust(2,'0') if valor
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
# Dígito verificador do banco
|
|
@@ -66,7 +66,7 @@ module Brcobranca
|
|
|
66
66
|
# Conta corrente
|
|
67
67
|
# @return [String] 8 caracteres numéricos.
|
|
68
68
|
def conta_corrente=(valor)
|
|
69
|
-
@conta_corrente = valor.to_s.rjust(8,'0')
|
|
69
|
+
@conta_corrente = valor.to_s.rjust(8,'0') if valor
|
|
70
70
|
end
|
|
71
71
|
|
|
72
72
|
# Dígito verificador da conta corrente
|
|
@@ -108,7 +108,7 @@ module Brcobranca
|
|
|
108
108
|
# Código da agencia
|
|
109
109
|
# @return [String] 4 caracteres numéricos.
|
|
110
110
|
def agencia=(valor)
|
|
111
|
-
@agencia = valor.to_s.rjust(4,'0')
|
|
111
|
+
@agencia = valor.to_s.rjust(4,'0') if valor
|
|
112
112
|
end
|
|
113
113
|
|
|
114
114
|
# Dígito verificador da agência
|
|
@@ -142,7 +142,7 @@ module Brcobranca
|
|
|
142
142
|
# Valor total do documento: <b>quantidate * valor</b>
|
|
143
143
|
# @return [Float]
|
|
144
144
|
def valor_documento
|
|
145
|
-
self.quantidade.to_f * self.valor.to_f
|
|
145
|
+
'%.2f' % (self.quantidade.to_f * self.valor.to_f)
|
|
146
146
|
end
|
|
147
147
|
|
|
148
148
|
# Data de vencimento baseado na <b>data_documento + dias_vencimento</b>
|
|
@@ -164,7 +164,7 @@ module Brcobranca
|
|
|
164
164
|
# Número da conta corrente
|
|
165
165
|
# @return [String] 7 caracteres numéricos.
|
|
166
166
|
def conta_corrente=(valor)
|
|
167
|
-
@conta_corrente = valor.to_s.rjust(7,'0')
|
|
167
|
+
@conta_corrente = valor.to_s.rjust(7,'0') if valor
|
|
168
168
|
end
|
|
169
169
|
|
|
170
170
|
# Codigo de barras do boleto
|
|
@@ -26,13 +26,13 @@ module Brcobranca
|
|
|
26
26
|
#
|
|
27
27
|
# @return [String] 2 caracteres numéricos.
|
|
28
28
|
def carteira=(valor)
|
|
29
|
-
@carteira = valor.to_s.rjust(2,'0')
|
|
29
|
+
@carteira = valor.to_s.rjust(2,'0') if valor
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
# Número seqüencial utilizado para identificar o boleto.
|
|
33
33
|
# @return [String] 11 caracteres numéricos.
|
|
34
34
|
def numero_documento=(valor)
|
|
35
|
-
@numero_documento = valor.to_s.rjust(11,'0')
|
|
35
|
+
@numero_documento = valor.to_s.rjust(11,'0') if valor
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
# Nosso número para exibir no boleto.
|
|
@@ -25,7 +25,7 @@ module Brcobranca
|
|
|
25
25
|
# Número seqüencial utilizado para identificar o boleto.
|
|
26
26
|
# @return [String] 13 caracteres numéricos.
|
|
27
27
|
def numero_documento=(valor)
|
|
28
|
-
@numero_documento = valor.to_s.rjust(13,'0')
|
|
28
|
+
@numero_documento = valor.to_s.rjust(13,'0') if valor
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
# Número seqüencial utilizado para identificar o boleto.
|
|
@@ -45,8 +45,7 @@ module Brcobranca
|
|
|
45
45
|
|
|
46
46
|
parte_1 = "#{self.numero_documento}#{self.numero_documento.modulo11_9to2_10_como_zero}#{self.codigo_servico}"
|
|
47
47
|
soma = parte_1.to_i + self.conta_corrente.to_i + data.to_i
|
|
48
|
-
|
|
49
|
-
numero
|
|
48
|
+
"#{parte_1}#{soma.to_s.modulo11_9to2_10_como_zero}"
|
|
50
49
|
else
|
|
51
50
|
raise Brcobranca::NaoImplementado.new("Tipo de carteira não implementado.")
|
|
52
51
|
# TODO - Verificar outras carteiras.
|
|
@@ -92,4 +91,4 @@ module Brcobranca
|
|
|
92
91
|
|
|
93
92
|
end
|
|
94
93
|
end
|
|
95
|
-
end
|
|
94
|
+
end
|
|
@@ -29,25 +29,25 @@ module Brcobranca
|
|
|
29
29
|
# Número do convênio/contrato do cliente junto ao banco.
|
|
30
30
|
# @return [String] 5 caracteres numéricos.
|
|
31
31
|
def convenio=(valor)
|
|
32
|
-
@convenio = valor.to_s.rjust(5,'0')
|
|
32
|
+
@convenio = valor.to_s.rjust(5,'0') if valor
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
# Conta corrente
|
|
36
36
|
# @return [String] 5 caracteres numéricos.
|
|
37
37
|
def conta_corrente=(valor)
|
|
38
|
-
@conta_corrente = valor.to_s.rjust(5,'0')
|
|
38
|
+
@conta_corrente = valor.to_s.rjust(5,'0') if valor
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
# Número seqüencial utilizado para identificar o boleto.
|
|
42
42
|
# @return [String] 8 caracteres numéricos.
|
|
43
43
|
def numero_documento=(valor)
|
|
44
|
-
@numero_documento = valor.to_s.rjust(8,'0')
|
|
44
|
+
@numero_documento = valor.to_s.rjust(8,'0') if valor
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
# Número seqüencial utilizado para identificar o boleto.
|
|
48
48
|
# @return [String] 7 caracteres numéricos.
|
|
49
49
|
def seu_numero=(valor)
|
|
50
|
-
@seu_numero = valor.to_s.rjust(7,'0')
|
|
50
|
+
@seu_numero = valor.to_s.rjust(7,'0') if valor
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
# Dígito verificador do nosso número.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
# @author Kivanio Barbosa
|
|
3
|
+
# @author Ronaldo Araujo
|
|
4
|
+
module Brcobranca
|
|
5
|
+
module Boleto
|
|
6
|
+
class Santander < Base # Banco Santander
|
|
7
|
+
|
|
8
|
+
# Usado somente em carteiras especiais com registro para complementar o número do cocumento
|
|
9
|
+
attr_reader :seu_numero
|
|
10
|
+
|
|
11
|
+
validates_length_of :agencia, :maximum => 4, :message => "deve ser menor ou igual a 4 dígitos."
|
|
12
|
+
validates_length_of :convenio, :maximum => 7, :message => "deve ser menor ou igual a 7 dígitos."
|
|
13
|
+
validates_length_of :numero_documento, :maximum => 8, :message => "deve ser menor ou igual a 8 dígitos."
|
|
14
|
+
validates_length_of :conta_corrente, :maximum => 5, :message => "deve ser menor ou igual a 5 dígitos."
|
|
15
|
+
validates_length_of :seu_numero, :maximum => 7, :message => "deve ser menor ou igual a 7 dígitos."
|
|
16
|
+
|
|
17
|
+
# Nova instancia do Santander
|
|
18
|
+
# @param (see Brcobranca::Boleto::Base#initialize)
|
|
19
|
+
def initialize(campos={})
|
|
20
|
+
campos = {:carteira => "102"}.merge!(campos)
|
|
21
|
+
super(campos)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Codigo do banco emissor (3 dígitos sempre)
|
|
25
|
+
#
|
|
26
|
+
# @return [String] 3 caracteres numéricos.
|
|
27
|
+
def banco
|
|
28
|
+
"033"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Número do convênio/contrato do cliente junto ao banco.
|
|
32
|
+
# @return [String] 5 caracteres numéricos.
|
|
33
|
+
def convenio=(valor)
|
|
34
|
+
@convenio = valor.to_s.rjust(5,'0') if valor
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Conta corrente
|
|
38
|
+
# @return [String] 5 caracteres numéricos.
|
|
39
|
+
def conta_corrente=(valor)
|
|
40
|
+
@conta_corrente = valor.to_s.rjust(5,'0') if valor
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Número seqüencial utilizado para identificar o boleto.
|
|
44
|
+
# @return [String] 8 caracteres numéricos.
|
|
45
|
+
def numero_documento=(valor)
|
|
46
|
+
@numero_documento = valor.to_s.rjust(8,'0') if valor
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Número seqüencial utilizado para identificar o boleto.
|
|
50
|
+
# @return [String] 7 caracteres numéricos.
|
|
51
|
+
def seu_numero=(valor)
|
|
52
|
+
@seu_numero = valor.to_s.rjust(7,'0') if valor
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Dígito verificador do nosso número.
|
|
56
|
+
# @return [String] 1 caracteres numéricos.
|
|
57
|
+
def nosso_numero_dv
|
|
58
|
+
nosso_numero = self.numero_documento.to_s.rjust(12,'0') unless self.numero_documento.nil?
|
|
59
|
+
nosso_numero.modulo11_2to9
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Nosso número para exibir no boleto.
|
|
63
|
+
# @return [String]
|
|
64
|
+
# @example
|
|
65
|
+
# boleto.nosso_numero_boleto #=> "000090002720-7"
|
|
66
|
+
def nosso_numero_boleto
|
|
67
|
+
nosso_numero = self.numero_documento.to_s.rjust(12,'0') unless self.numero_documento.nil?
|
|
68
|
+
"#{nosso_numero}-#{self.nosso_numero_dv}"
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Agência + codigo do cedente do cliente para exibir no boleto.
|
|
72
|
+
# @return [String]
|
|
73
|
+
# @example
|
|
74
|
+
# boleto.agencia_conta_boleto #=> "0059/1899775"
|
|
75
|
+
def agencia_conta_boleto
|
|
76
|
+
"#{self.agencia}/#{self.convenio}"
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# Segunda parte do código de barras.
|
|
80
|
+
# 9(01) | Fixo 9 <br/>
|
|
81
|
+
# 9(07) | Convenio <br/>
|
|
82
|
+
# 9(05) | Fixo 00000<br/>
|
|
83
|
+
# 9(08) | Nosso Numero<br/>
|
|
84
|
+
# 9(01) | IOF<br/>
|
|
85
|
+
# 9(03) | Carteira de cobrança<br/>
|
|
86
|
+
#
|
|
87
|
+
# @return [String] 25 caracteres numéricos.
|
|
88
|
+
def codigo_barras_segunda_parte
|
|
89
|
+
"9#{self.convenio}00000#{self.numero_documento}0#{self.carteira}"
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
@@ -31,20 +31,20 @@ module Brcobranca
|
|
|
31
31
|
#
|
|
32
32
|
# @return [String] 2 caracteres numéricos.
|
|
33
33
|
def carteira=(valor)
|
|
34
|
-
@carteira = valor.to_s.rjust(2,'0')
|
|
34
|
+
@carteira = valor.to_s.rjust(2,'0') if valor
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
# Posto
|
|
38
38
|
#
|
|
39
39
|
# @return [String] 2 caracteres numéricos.
|
|
40
40
|
def posto=(valor)
|
|
41
|
-
@posto = valor.to_s.rjust(2, '0')
|
|
41
|
+
@posto = valor.to_s.rjust(2, '0') if valor
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
# Número da conta corrente
|
|
45
45
|
# @return [String] 5 caracteres numéricos.
|
|
46
46
|
def conta_corrente=(valor)
|
|
47
|
-
@conta_corrente = valor.to_s.rjust(5,'0')
|
|
47
|
+
@conta_corrente = valor.to_s.rjust(5,'0') if valor
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
# Dígito verificador do banco
|
|
@@ -68,7 +68,7 @@ module Brcobranca
|
|
|
68
68
|
# Número seqüencial utilizado para identificar o boleto.
|
|
69
69
|
# @return [String] 5 caracteres numéricos.
|
|
70
70
|
def numero_documento=(valor)
|
|
71
|
-
@numero_documento = valor.to_s.rjust(5,'0')
|
|
71
|
+
@numero_documento = valor.to_s.rjust(5,'0') if valor
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
# Codigo referente ao tipo de cobrança
|
|
@@ -32,7 +32,7 @@ module Brcobranca
|
|
|
32
32
|
# Número do convênio/contrato do cliente junto ao banco.
|
|
33
33
|
# @return [String] 7 caracteres numéricos.
|
|
34
34
|
def convenio=(valor)
|
|
35
|
-
@convenio = valor.to_s.rjust(7,'0')
|
|
35
|
+
@convenio = valor.to_s.rjust(7,'0') if valor
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
# Número seqüencial utilizado para identificar o boleto.
|
data/lib/brcobranca/currency.rb
CHANGED
data/lib/brcobranca/limpeza.rb
CHANGED
data/lib/brcobranca/version.rb
CHANGED
|
@@ -35,7 +35,7 @@ describe Brcobranca::Boleto::Bradesco do
|
|
|
35
35
|
boleto_novo.aceite.should eql("S")
|
|
36
36
|
boleto_novo.quantidade.should eql(1)
|
|
37
37
|
boleto_novo.valor.should eql(0.0)
|
|
38
|
-
boleto_novo.valor_documento.should eql(0.
|
|
38
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
39
39
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
40
40
|
boleto_novo.carteira.should eql("06")
|
|
41
41
|
|
|
@@ -53,7 +53,7 @@ describe Brcobranca::Boleto::Bradesco do
|
|
|
53
53
|
boleto_novo.aceite.should eql("S")
|
|
54
54
|
boleto_novo.quantidade.should eql(1)
|
|
55
55
|
boleto_novo.valor.should eql(0.0)
|
|
56
|
-
boleto_novo.valor_documento.should eql(0.
|
|
56
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
57
57
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
58
58
|
boleto_novo.cedente.should eql("Kivanio Barbosa")
|
|
59
59
|
boleto_novo.documento_cedente.should eql("12345678912")
|
|
@@ -36,7 +36,7 @@ describe Brcobranca::Boleto::BancoBrasil do #:nodoc:[all]
|
|
|
36
36
|
boleto_novo.aceite.should eql("S")
|
|
37
37
|
boleto_novo.quantidade.should eql(1)
|
|
38
38
|
boleto_novo.valor.should eql(0.0)
|
|
39
|
-
boleto_novo.valor_documento.should eql(0.
|
|
39
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
40
40
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
41
41
|
boleto_novo.carteira.should eql("18")
|
|
42
42
|
boleto_novo.codigo_servico.should be_false
|
|
@@ -54,7 +54,7 @@ describe Brcobranca::Boleto::BancoBrasil do #:nodoc:[all]
|
|
|
54
54
|
boleto_novo.aceite.should eql("S")
|
|
55
55
|
boleto_novo.quantidade.should eql(1)
|
|
56
56
|
boleto_novo.valor.should eql(0.0)
|
|
57
|
-
boleto_novo.valor_documento.should eql(0.
|
|
57
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
58
58
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
59
59
|
boleto_novo.cedente.should eql("Kivanio Barbosa")
|
|
60
60
|
boleto_novo.documento_cedente.should eql("12345678912")
|
|
@@ -37,7 +37,7 @@ describe Brcobranca::Boleto::Caixa do #:nodoc:[all]
|
|
|
37
37
|
boleto_novo.aceite.should eql('S')
|
|
38
38
|
boleto_novo.quantidade.should eql(1)
|
|
39
39
|
boleto_novo.valor.should eql(0.0)
|
|
40
|
-
boleto_novo.valor_documento.should eql(0.
|
|
40
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
41
41
|
boleto_novo.local_pagamento.should eql('QUALQUER BANCO ATÉ O VENCIMENTO')
|
|
42
42
|
boleto_novo.codigo_servico.should be_false
|
|
43
43
|
carteira = "#{Brcobranca::Boleto::Caixa::MODALIDADE_COBRANCA[:sem_registro]}" <<
|
|
@@ -37,7 +37,7 @@ describe Brcobranca::Boleto::Hsbc do
|
|
|
37
37
|
boleto_novo.aceite.should eql("S")
|
|
38
38
|
boleto_novo.quantidade.should eql(1)
|
|
39
39
|
boleto_novo.valor.should eql(0.0)
|
|
40
|
-
boleto_novo.valor_documento.should eql(0.
|
|
40
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
41
41
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
42
42
|
boleto_novo.carteira.should eql("CNR")
|
|
43
43
|
|
|
@@ -55,7 +55,7 @@ describe Brcobranca::Boleto::Hsbc do
|
|
|
55
55
|
boleto_novo.aceite.should eql("S")
|
|
56
56
|
boleto_novo.quantidade.should eql(1)
|
|
57
57
|
boleto_novo.valor.should eql(0.0)
|
|
58
|
-
boleto_novo.valor_documento.should eql(0.
|
|
58
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
59
59
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
60
60
|
boleto_novo.cedente.should eql("Kivanio Barbosa")
|
|
61
61
|
boleto_novo.documento_cedente.should eql("12345678912")
|
|
@@ -35,7 +35,7 @@ describe Brcobranca::Boleto::Real do
|
|
|
35
35
|
boleto_novo.aceite.should eql("S")
|
|
36
36
|
boleto_novo.quantidade.should eql(1)
|
|
37
37
|
boleto_novo.valor.should eql(0.0)
|
|
38
|
-
boleto_novo.valor_documento.should eql(0.
|
|
38
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
39
39
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
40
40
|
boleto_novo.carteira.should eql("57")
|
|
41
41
|
|
|
@@ -53,7 +53,7 @@ describe Brcobranca::Boleto::Real do
|
|
|
53
53
|
boleto_novo.aceite.should eql("S")
|
|
54
54
|
boleto_novo.quantidade.should eql(1)
|
|
55
55
|
boleto_novo.valor.should eql(0.0)
|
|
56
|
-
boleto_novo.valor_documento.should eql(0.
|
|
56
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
57
57
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
58
58
|
boleto_novo.cedente.should eql("Kivanio Barbosa")
|
|
59
59
|
boleto_novo.documento_cedente.should eql("12345678912")
|
|
@@ -37,7 +37,7 @@ describe Brcobranca::Boleto::Sicredi do
|
|
|
37
37
|
boleto_novo.aceite.should eql("S")
|
|
38
38
|
boleto_novo.quantidade.should eql(1)
|
|
39
39
|
boleto_novo.valor.should eql(0.0)
|
|
40
|
-
boleto_novo.valor_documento.should eql(0.
|
|
40
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
41
41
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
42
42
|
boleto_novo.carteira.should eql("03")
|
|
43
43
|
|
|
@@ -55,7 +55,7 @@ describe Brcobranca::Boleto::Sicredi do
|
|
|
55
55
|
boleto_novo.aceite.should eql("S")
|
|
56
56
|
boleto_novo.quantidade.should eql(1)
|
|
57
57
|
boleto_novo.valor.should eql(0.0)
|
|
58
|
-
boleto_novo.valor_documento.should eql(0.
|
|
58
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
59
59
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
60
60
|
boleto_novo.cedente.should eql("Kivanio Barbosa")
|
|
61
61
|
boleto_novo.documento_cedente.should eql("12345678912")
|
|
@@ -35,7 +35,7 @@ describe Brcobranca::Boleto::Unibanco do
|
|
|
35
35
|
boleto_novo.aceite.should eql("S")
|
|
36
36
|
boleto_novo.quantidade.should eql(1)
|
|
37
37
|
boleto_novo.valor.should eql(0.0)
|
|
38
|
-
boleto_novo.valor_documento.should eql(0.
|
|
38
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
39
39
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
40
40
|
boleto_novo.carteira.should eql("5")
|
|
41
41
|
|
|
@@ -53,7 +53,7 @@ describe Brcobranca::Boleto::Unibanco do
|
|
|
53
53
|
boleto_novo.aceite.should eql("S")
|
|
54
54
|
boleto_novo.quantidade.should eql(1)
|
|
55
55
|
boleto_novo.valor.should eql(0.0)
|
|
56
|
-
boleto_novo.valor_documento.should eql(0.
|
|
56
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
57
57
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
58
58
|
boleto_novo.cedente.should eql("Kivanio Barbosa")
|
|
59
59
|
boleto_novo.documento_cedente.should eql("12345678912")
|
|
@@ -36,7 +36,7 @@ module Brcobranca #:nodoc:[all]
|
|
|
36
36
|
boleto_novo.aceite.should eql("S")
|
|
37
37
|
boleto_novo.quantidade.should eql(1)
|
|
38
38
|
boleto_novo.valor.should eql(0.0)
|
|
39
|
-
boleto_novo.valor_documento.should eql(0.
|
|
39
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
40
40
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
41
41
|
boleto_novo.valid?.should be_false
|
|
42
42
|
end
|
|
@@ -52,7 +52,7 @@ module Brcobranca #:nodoc:[all]
|
|
|
52
52
|
boleto_novo.aceite.should eql("S")
|
|
53
53
|
boleto_novo.quantidade.should eql(1)
|
|
54
54
|
boleto_novo.valor.should eql(0.0)
|
|
55
|
-
boleto_novo.valor_documento.should eql(0.
|
|
55
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
56
56
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
57
57
|
boleto_novo.cedente.should eql("Kivanio Barbosa")
|
|
58
58
|
boleto_novo.documento_cedente.should eql("12345678912")
|
|
@@ -125,22 +125,22 @@ module Brcobranca #:nodoc:[all]
|
|
|
125
125
|
boleto_novo = Brcobranca::Boleto::Base.new(@valid_attributes)
|
|
126
126
|
boleto_novo.quantidade = 1
|
|
127
127
|
boleto_novo.valor = 1
|
|
128
|
-
boleto_novo.valor_documento.should eql(1.
|
|
128
|
+
boleto_novo.valor_documento.should eql("1.00")
|
|
129
129
|
boleto_novo.quantidade = 1
|
|
130
130
|
boleto_novo.valor = 1.0
|
|
131
|
-
boleto_novo.valor_documento.should eql(1.
|
|
131
|
+
boleto_novo.valor_documento.should eql("1.00")
|
|
132
132
|
boleto_novo.quantidade = 100
|
|
133
133
|
boleto_novo.valor = 1
|
|
134
|
-
boleto_novo.valor_documento.should eql(100.
|
|
134
|
+
boleto_novo.valor_documento.should eql("100.00")
|
|
135
135
|
boleto_novo.quantidade = 1
|
|
136
136
|
boleto_novo.valor = 1.2
|
|
137
|
-
boleto_novo.valor_documento.should eql(1.
|
|
137
|
+
boleto_novo.valor_documento.should eql("1.20")
|
|
138
138
|
boleto_novo.quantidade = 1
|
|
139
139
|
boleto_novo.valor = 135.43
|
|
140
|
-
boleto_novo.valor_documento.should eql(135.43)
|
|
140
|
+
boleto_novo.valor_documento.should eql("135.43")
|
|
141
141
|
boleto_novo.quantidade = "gh"
|
|
142
142
|
boleto_novo.valor = 135.43
|
|
143
|
-
boleto_novo.valor_documento.should eql(0.
|
|
143
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
144
144
|
end
|
|
145
145
|
|
|
146
146
|
it "Calcula data_vencimento" do
|
|
@@ -35,7 +35,7 @@ describe Brcobranca::Boleto::Itau do
|
|
|
35
35
|
boleto_novo.aceite.should eql("S")
|
|
36
36
|
boleto_novo.quantidade.should eql(1)
|
|
37
37
|
boleto_novo.valor.should eql(0.0)
|
|
38
|
-
boleto_novo.valor_documento.should eql(0.
|
|
38
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
39
39
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
40
40
|
boleto_novo.carteira.should eql("175")
|
|
41
41
|
end
|
|
@@ -52,7 +52,7 @@ describe Brcobranca::Boleto::Itau do
|
|
|
52
52
|
boleto_novo.aceite.should eql("S")
|
|
53
53
|
boleto_novo.quantidade.should eql(1)
|
|
54
54
|
boleto_novo.valor.should eql(0.0)
|
|
55
|
-
boleto_novo.valor_documento.should eql(0.
|
|
55
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
56
56
|
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
57
57
|
boleto_novo.cedente.should eql("Kivanio Barbosa")
|
|
58
58
|
boleto_novo.documento_cedente.should eql("12345678912")
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
3
|
+
|
|
4
|
+
describe Brcobranca::Boleto::Santander do
|
|
5
|
+
before(:each) do
|
|
6
|
+
@valid_attributes = {
|
|
7
|
+
:especie_documento => "DS",
|
|
8
|
+
:moeda => "9",
|
|
9
|
+
:data_documento => Date.today,
|
|
10
|
+
:dias_vencimento => 1,
|
|
11
|
+
:aceite => "N",
|
|
12
|
+
:quantidade => 1,
|
|
13
|
+
:valor => 25.0,
|
|
14
|
+
:local_pagamento => "QUALQUER BANCO ATÉ O VENCIMENTO",
|
|
15
|
+
:cedente => "Kivanio Barbosa",
|
|
16
|
+
:documento_cedente => "12345678912",
|
|
17
|
+
:sacado => "Claudio Pozzebom",
|
|
18
|
+
:sacado_documento => "12345678900",
|
|
19
|
+
:agencia => "0059",
|
|
20
|
+
:conta_corrente => "53678",
|
|
21
|
+
:convenio => 1899775,
|
|
22
|
+
:numero_documento => "90000267"
|
|
23
|
+
}
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "Criar nova instancia com atributos padrões" do
|
|
27
|
+
boleto_novo = Brcobranca::Boleto::Santander.new
|
|
28
|
+
boleto_novo.banco.should eql("033")
|
|
29
|
+
boleto_novo.especie_documento.should eql("DM")
|
|
30
|
+
boleto_novo.especie.should eql("R$")
|
|
31
|
+
boleto_novo.moeda.should eql("9")
|
|
32
|
+
boleto_novo.data_documento.should eql(Date.today)
|
|
33
|
+
boleto_novo.dias_vencimento.should eql(1)
|
|
34
|
+
boleto_novo.data_vencimento.should eql(Date.today + 1)
|
|
35
|
+
boleto_novo.aceite.should eql("S")
|
|
36
|
+
boleto_novo.quantidade.should eql(1)
|
|
37
|
+
boleto_novo.valor.should eql(0.0)
|
|
38
|
+
boleto_novo.valor_documento.should eql("0.00")
|
|
39
|
+
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
40
|
+
boleto_novo.carteira.should eql("102")
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it "Criar nova instancia com atributos válidos" do
|
|
44
|
+
boleto_novo = Brcobranca::Boleto::Santander.new(@valid_attributes)
|
|
45
|
+
boleto_novo.banco.should eql("033")
|
|
46
|
+
boleto_novo.especie_documento.should eql("DS")
|
|
47
|
+
boleto_novo.especie.should eql("R$")
|
|
48
|
+
boleto_novo.moeda.should eql("9")
|
|
49
|
+
boleto_novo.data_documento.should eql(Date.today)
|
|
50
|
+
boleto_novo.dias_vencimento.should eql(1)
|
|
51
|
+
boleto_novo.data_vencimento.should eql(Date.today + 1)
|
|
52
|
+
boleto_novo.aceite.should eql("N")
|
|
53
|
+
boleto_novo.quantidade.should eql(1)
|
|
54
|
+
boleto_novo.valor.should eql(25.0)
|
|
55
|
+
boleto_novo.valor_documento.should eql("25.00")
|
|
56
|
+
boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
|
|
57
|
+
boleto_novo.cedente.should eql("Kivanio Barbosa")
|
|
58
|
+
boleto_novo.documento_cedente.should eql("12345678912")
|
|
59
|
+
boleto_novo.sacado.should eql("Claudio Pozzebom")
|
|
60
|
+
boleto_novo.sacado_documento.should eql("12345678900")
|
|
61
|
+
boleto_novo.conta_corrente.should eql("53678")
|
|
62
|
+
boleto_novo.agencia.should eql("0059")
|
|
63
|
+
boleto_novo.convenio.should eql("1899775")
|
|
64
|
+
boleto_novo.numero_documento.should eql("90000267")
|
|
65
|
+
boleto_novo.carteira.should eql("102")
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it "Gerar boleto" do
|
|
69
|
+
@valid_attributes[:data_documento] = Date.parse("2011/10/08")
|
|
70
|
+
boleto_novo = Brcobranca::Boleto::Santander.new(@valid_attributes)
|
|
71
|
+
boleto_novo.codigo_barras_segunda_parte.should eql("9189977500000900002670102")
|
|
72
|
+
boleto_novo.codigo_barras.should eql("03391511500000025009189977500000900002670102")
|
|
73
|
+
boleto_novo.codigo_barras.linha_digitavel.should eql("03399.18997 77500.000904 00026.701029 1 51150000002500")
|
|
74
|
+
|
|
75
|
+
@valid_attributes[:valor] = 54.00
|
|
76
|
+
@valid_attributes[:numero_documento] = "90002720"
|
|
77
|
+
@valid_attributes[:data_documento] = Date.parse("2012/09/07")
|
|
78
|
+
boleto_novo = Brcobranca::Boleto::Santander.new(@valid_attributes)
|
|
79
|
+
boleto_novo.codigo_barras_segunda_parte.should eql("9189977500000900027200102")
|
|
80
|
+
boleto_novo.codigo_barras.should eql("03391545000000054009189977500000900027200102")
|
|
81
|
+
boleto_novo.codigo_barras.linha_digitavel.should eql("03399.18997 77500.000904 00272.001025 1 54500000005400")
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
it "Não permitir gerar boleto com atributos inválido" do
|
|
85
|
+
boleto_novo = Brcobranca::Boleto::Santander.new
|
|
86
|
+
lambda { boleto_novo.codigo_barras }.should raise_error(Brcobranca::BoletoInvalido)
|
|
87
|
+
boleto_novo.errors.count.should eql(3)
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
it "Montar agencia_conta_corrente_dv" do
|
|
91
|
+
boleto_novo = Brcobranca::Boleto::Santander.new(@valid_attributes)
|
|
92
|
+
boleto_novo.agencia_conta_boleto.should eql("0059/1899775")
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
it "Montar nosso_numero_dv" do
|
|
96
|
+
@valid_attributes[:numero_documento] = "566612457800"
|
|
97
|
+
boleto_novo = Brcobranca::Boleto::Santander.new(@valid_attributes)
|
|
98
|
+
boleto_novo.nosso_numero_dv.should eql(2)
|
|
99
|
+
|
|
100
|
+
@valid_attributes[:numero_documento] = "90002720"
|
|
101
|
+
boleto_novo = Brcobranca::Boleto::Santander.new(@valid_attributes)
|
|
102
|
+
boleto_novo.nosso_numero_dv.should eql(7)
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
it "Montar nosso_numero_boleto" do
|
|
106
|
+
@valid_attributes[:numero_documento] = "566612457800"
|
|
107
|
+
boleto_novo = Brcobranca::Boleto::Santander.new(@valid_attributes)
|
|
108
|
+
boleto_novo.nosso_numero_boleto.should eql("566612457800-2")
|
|
109
|
+
|
|
110
|
+
@valid_attributes[:numero_documento] = "90002720"
|
|
111
|
+
boleto_novo = Brcobranca::Boleto::Santander.new(@valid_attributes)
|
|
112
|
+
boleto_novo.nosso_numero_boleto.should eql("000090002720-7")
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
it "Busca logotipo do banco" do
|
|
116
|
+
boleto_novo = Brcobranca::Boleto::Santander.new
|
|
117
|
+
File.exist?(boleto_novo.logotipo).should be_true
|
|
118
|
+
File.stat(boleto_novo.logotipo).zero?.should be_false
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
it "Gerar boleto nos formatos válidos com método to_" do
|
|
122
|
+
@valid_attributes[:data_documento] = Date.parse("2009/08/13")
|
|
123
|
+
boleto_novo = Brcobranca::Boleto::Santander.new(@valid_attributes)
|
|
124
|
+
|
|
125
|
+
%w| pdf jpg tif png ps |.each do |format|
|
|
126
|
+
file_body=boleto_novo.send("to_#{format}".to_sym)
|
|
127
|
+
tmp_file=Tempfile.new("foobar." << format)
|
|
128
|
+
tmp_file.puts file_body
|
|
129
|
+
tmp_file.close
|
|
130
|
+
File.exist?(tmp_file.path).should be_true
|
|
131
|
+
File.stat(tmp_file.path).zero?.should be_false
|
|
132
|
+
File.delete(tmp_file.path).should eql(1)
|
|
133
|
+
File.exist?(tmp_file.path).should be_false
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
it "Gerar boleto nos formatos válidos" do
|
|
138
|
+
@valid_attributes[:data_documento] = Date.parse("2009/08/13")
|
|
139
|
+
boleto_novo = Brcobranca::Boleto::Santander.new(@valid_attributes)
|
|
140
|
+
|
|
141
|
+
%w| pdf jpg tif png ps |.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
|
+
File.exist?(tmp_file.path).should be_true
|
|
147
|
+
File.stat(tmp_file.path).zero?.should be_false
|
|
148
|
+
File.delete(tmp_file.path).should eql(1)
|
|
149
|
+
File.exist?(tmp_file.path).should be_false
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
end
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: brcobranca
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 1
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 3
|
|
8
8
|
- 1
|
|
9
|
-
-
|
|
10
|
-
version: 3.1.
|
|
9
|
+
- 1
|
|
10
|
+
version: 3.1.1
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Kivanio Barbosa
|
|
@@ -104,6 +104,7 @@ files:
|
|
|
104
104
|
- lib/brcobranca/arquivos/logos/hsbc.jpg
|
|
105
105
|
- lib/brcobranca/arquivos/logos/itau.jpg
|
|
106
106
|
- lib/brcobranca/arquivos/logos/real.jpg
|
|
107
|
+
- lib/brcobranca/arquivos/logos/santander.jpg
|
|
107
108
|
- lib/brcobranca/arquivos/logos/sicredi.jpg
|
|
108
109
|
- lib/brcobranca/arquivos/logos/unibanco.jpg
|
|
109
110
|
- lib/brcobranca/arquivos/templates/modelo_generico.eps
|
|
@@ -114,6 +115,7 @@ files:
|
|
|
114
115
|
- lib/brcobranca/boleto/hsbc.rb
|
|
115
116
|
- lib/brcobranca/boleto/itau.rb
|
|
116
117
|
- lib/brcobranca/boleto/real.rb
|
|
118
|
+
- lib/brcobranca/boleto/santander.rb
|
|
117
119
|
- lib/brcobranca/boleto/sicredi.rb
|
|
118
120
|
- lib/brcobranca/boleto/template/base.rb
|
|
119
121
|
- lib/brcobranca/boleto/template/rghost.rb
|
|
@@ -144,6 +146,7 @@ files:
|
|
|
144
146
|
- spec/brcobranca/retorno_cbr643_spec.rb
|
|
145
147
|
- spec/brcobranca/retorno_cnab_240_spec.rb
|
|
146
148
|
- spec/brcobranca/rghost_spec.rb
|
|
149
|
+
- spec/brcobranca/santander_spec.rb
|
|
147
150
|
- spec/brcobranca_spec.rb
|
|
148
151
|
- spec/spec_helper.rb
|
|
149
152
|
homepage: http://rubygems.org/gems/brcobranca
|
|
@@ -175,7 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
175
178
|
requirements:
|
|
176
179
|
- "GhostScript > 8.0, para gear PDF e c\xC3\xB3digo de Barras"
|
|
177
180
|
rubyforge_project: brcobranca
|
|
178
|
-
rubygems_version: 1.8.
|
|
181
|
+
rubygems_version: 1.8.24
|
|
179
182
|
signing_key:
|
|
180
183
|
specification_version: 3
|
|
181
184
|
summary: "Gem que permite trabalhar com bloquetos de cobran\xC3\xA7a para bancos brasileiros."
|
|
@@ -197,5 +200,6 @@ test_files:
|
|
|
197
200
|
- spec/brcobranca/retorno_cbr643_spec.rb
|
|
198
201
|
- spec/brcobranca/retorno_cnab_240_spec.rb
|
|
199
202
|
- spec/brcobranca/rghost_spec.rb
|
|
203
|
+
- spec/brcobranca/santander_spec.rb
|
|
200
204
|
- spec/brcobranca_spec.rb
|
|
201
205
|
- spec/spec_helper.rb
|