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