bbrcobranca 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +1 -0
- data/LICENSE +20 -0
- data/README.md +12 -0
- data/Rakefile +13 -0
- data/lib/bbrcobranca.rb +196 -0
- data/lib/bbrcobranca/arquivos/logos/bancobrasil.eps +5402 -0
- data/lib/bbrcobranca/arquivos/logos/bancobrasil_carne.eps +5410 -0
- data/lib/bbrcobranca/arquivos/logos/bancobrasilia.eps +0 -0
- data/lib/bbrcobranca/arquivos/logos/bancobrasilia_carne.eps +0 -0
- data/lib/bbrcobranca/arquivos/logos/banconordeste.eps +0 -0
- data/lib/bbrcobranca/arquivos/logos/banconordeste_carne.eps +0 -0
- data/lib/bbrcobranca/arquivos/logos/banestes.eps +5198 -0
- data/lib/bbrcobranca/arquivos/logos/banestes_carne.eps +5206 -0
- data/lib/bbrcobranca/arquivos/logos/banrisul.eps +121 -0
- data/lib/bbrcobranca/arquivos/logos/banrisul_carne.eps +121 -0
- data/lib/bbrcobranca/arquivos/logos/bradesco.eps +5210 -0
- data/lib/bbrcobranca/arquivos/logos/bradesco_carne.eps +5214 -0
- data/lib/bbrcobranca/arquivos/logos/caixa.eps +5111 -0
- data/lib/bbrcobranca/arquivos/logos/caixa_carne.eps +5115 -0
- data/lib/bbrcobranca/arquivos/logos/cecred.eps +0 -0
- data/lib/bbrcobranca/arquivos/logos/cecred_carne.eps +0 -0
- data/lib/bbrcobranca/arquivos/logos/credisis.eps +0 -0
- data/lib/bbrcobranca/arquivos/logos/credisis_carne.eps +0 -0
- data/lib/bbrcobranca/arquivos/logos/hsbc.eps +5124 -0
- data/lib/bbrcobranca/arquivos/logos/hsbc_carne.eps +5128 -0
- data/lib/bbrcobranca/arquivos/logos/itau.eps +5318 -0
- data/lib/bbrcobranca/arquivos/logos/itau_carne.eps +5322 -0
- data/lib/bbrcobranca/arquivos/logos/santander.eps +5305 -0
- data/lib/bbrcobranca/arquivos/logos/santander_carne.eps +5313 -0
- data/lib/bbrcobranca/arquivos/logos/sicoob.eps +5375 -0
- data/lib/bbrcobranca/arquivos/logos/sicoob_carne.eps +5379 -0
- data/lib/bbrcobranca/arquivos/logos/sicredi.eps +5379 -0
- data/lib/bbrcobranca/arquivos/logos/sicredi_carne.eps +5383 -0
- data/lib/bbrcobranca/arquivos/logos/unicred.eps +0 -0
- data/lib/bbrcobranca/arquivos/logos/unicred_carne.eps +0 -0
- data/lib/bbrcobranca/arquivos/templates/modelo_carne.eps +1112 -0
- data/lib/bbrcobranca/arquivos/templates/modelo_generico.eps +0 -0
- data/lib/bbrcobranca/boleto/banco_brasil.rb +157 -0
- data/lib/bbrcobranca/boleto/banco_brasilia.rb +102 -0
- data/lib/bbrcobranca/boleto/banco_nordeste.rb +79 -0
- data/lib/bbrcobranca/boleto/banestes.rb +85 -0
- data/lib/bbrcobranca/boleto/banrisul.rb +94 -0
- data/lib/bbrcobranca/boleto/base.rb +256 -0
- data/lib/bbrcobranca/boleto/bradesco.rb +99 -0
- data/lib/bbrcobranca/boleto/bradesco_grb.rb +85 -0
- data/lib/bbrcobranca/boleto/caixa.rb +121 -0
- data/lib/bbrcobranca/boleto/cecred.rb +86 -0
- data/lib/bbrcobranca/boleto/credisis.rb +116 -0
- data/lib/bbrcobranca/boleto/hsbc.rb +94 -0
- data/lib/bbrcobranca/boleto/itau.rb +138 -0
- data/lib/bbrcobranca/boleto/itau_adimplere.rb +159 -0
- data/lib/bbrcobranca/boleto/santander.rb +84 -0
- data/lib/bbrcobranca/boleto/santander_adimplere.rb +73 -0
- data/lib/bbrcobranca/boleto/sicoob.rb +119 -0
- data/lib/bbrcobranca/boleto/sicredi.rb +142 -0
- data/lib/bbrcobranca/boleto/template/base.rb +25 -0
- data/lib/bbrcobranca/boleto/template/rghost.rb +315 -0
- data/lib/bbrcobranca/boleto/template/rghost_carne.rb +317 -0
- data/lib/bbrcobranca/boleto/unicred.rb +141 -0
- data/lib/bbrcobranca/calculo.rb +115 -0
- data/lib/bbrcobranca/calculo_data.rb +62 -0
- data/lib/bbrcobranca/currency.rb +69 -0
- data/lib/bbrcobranca/formatacao.rb +103 -0
- data/lib/bbrcobranca/formatacao_string.rb +35 -0
- data/lib/bbrcobranca/limpeza.rb +20 -0
- data/lib/bbrcobranca/remessa/base.rb +76 -0
- data/lib/bbrcobranca/remessa/cnab240/banco_brasil.rb +246 -0
- data/lib/bbrcobranca/remessa/cnab240/base.rb +512 -0
- data/lib/bbrcobranca/remessa/cnab240/base_correspondente.rb +299 -0
- data/lib/bbrcobranca/remessa/cnab240/caixa.rb +163 -0
- data/lib/bbrcobranca/remessa/cnab240/cecred.rb +151 -0
- data/lib/bbrcobranca/remessa/cnab240/sicoob.rb +226 -0
- data/lib/bbrcobranca/remessa/cnab240/sicoob_banco_brasil.rb +94 -0
- data/lib/bbrcobranca/remessa/cnab240/sicredi.rb +177 -0
- data/lib/bbrcobranca/remessa/cnab240/unicred.rb +9 -0
- data/lib/bbrcobranca/remessa/cnab400/banco_brasil.rb +169 -0
- data/lib/bbrcobranca/remessa/cnab400/banco_brasilia.rb +166 -0
- data/lib/bbrcobranca/remessa/cnab400/banco_nordeste.rb +160 -0
- data/lib/bbrcobranca/remessa/cnab400/banrisul.rb +155 -0
- data/lib/bbrcobranca/remessa/cnab400/base.rb +119 -0
- data/lib/bbrcobranca/remessa/cnab400/bradesco.rb +130 -0
- data/lib/bbrcobranca/remessa/cnab400/citibank.rb +138 -0
- data/lib/bbrcobranca/remessa/cnab400/credisis.rb +128 -0
- data/lib/bbrcobranca/remessa/cnab400/itau.rb +157 -0
- data/lib/bbrcobranca/remessa/cnab400/santander.rb +231 -0
- data/lib/bbrcobranca/remessa/cnab400/sicoob.rb +308 -0
- data/lib/bbrcobranca/remessa/cnab400/unicred.rb +143 -0
- data/lib/bbrcobranca/remessa/pagamento.rb +288 -0
- data/lib/bbrcobranca/retorno/base.rb +49 -0
- data/lib/bbrcobranca/retorno/cnab240/base.rb +42 -0
- data/lib/bbrcobranca/retorno/cnab240/caixa.rb +48 -0
- data/lib/bbrcobranca/retorno/cnab240/cecred.rb +102 -0
- data/lib/bbrcobranca/retorno/cnab240/santander.rb +95 -0
- data/lib/bbrcobranca/retorno/cnab240/sicoob.rb +99 -0
- data/lib/bbrcobranca/retorno/cnab240/sicredi.rb +79 -0
- data/lib/bbrcobranca/retorno/cnab400/banco_brasil.rb +127 -0
- data/lib/bbrcobranca/retorno/cnab400/banco_brasilia.rb +89 -0
- data/lib/bbrcobranca/retorno/cnab400/banco_nordeste.rb +112 -0
- data/lib/bbrcobranca/retorno/cnab400/banrisul.rb +42 -0
- data/lib/bbrcobranca/retorno/cnab400/base.rb +50 -0
- data/lib/bbrcobranca/retorno/cnab400/bradesco.rb +124 -0
- data/lib/bbrcobranca/retorno/cnab400/credisis.rb +115 -0
- data/lib/bbrcobranca/retorno/cnab400/itau.rb +143 -0
- data/lib/bbrcobranca/retorno/cnab400/santander.rb +57 -0
- data/lib/bbrcobranca/retorno/cnab400/unicred.rb +118 -0
- data/lib/bbrcobranca/retorno/retorno_cbr643.rb +49 -0
- data/lib/bbrcobranca/retorno/retorno_cnab240.rb +97 -0
- data/lib/bbrcobranca/retorno/retorno_cnab400.rb +70 -0
- data/lib/bbrcobranca/util/date.rb +20 -0
- data/lib/bbrcobranca/util/empresa.rb +28 -0
- data/lib/bbrcobranca/util/errors.rb +76 -0
- data/lib/bbrcobranca/validations.rb +232 -0
- data/lib/bbrcobranca/version.rb +6 -0
- data/spec/arquivos/CBR64310.RET +28 -0
- data/spec/arquivos/CNAB240.RET +74 -0
- data/spec/arquivos/CNAB240CECRED.RET +10 -0
- data/spec/arquivos/CNAB240SANTANDER.RET +8 -0
- data/spec/arquivos/CNAB240SICOOB.RET +10 -0
- data/spec/arquivos/CNAB240SICREDI.CRT +8 -0
- data/spec/arquivos/CNAB400.RET +54 -0
- data/spec/arquivos/CNAB400BANCOBRASILIA.RET +3 -0
- data/spec/arquivos/CNAB400BANCONORDESTE.RET +3 -0
- data/spec/arquivos/CNAB400BANRISUL.RET +3 -0
- data/spec/arquivos/CNAB400BRADESCO.RET +8 -0
- data/spec/arquivos/CNAB400CREDISIS.RET +3 -0
- data/spec/arquivos/CNAB400ITAU.RET +54 -0
- data/spec/arquivos/CNAB400SANTANDER.RET +54 -0
- data/spec/arquivos/CNAB400UNICRED.RET +3 -0
- data/spec/bbrcobranca_spec.rb +34 -0
- data/spec/brcobranca/base_spec.rb +170 -0
- data/spec/brcobranca/boleto/banco_brasil_spec.rb +334 -0
- data/spec/brcobranca/boleto/banco_brasilia_spec.rb +152 -0
- data/spec/brcobranca/boleto/banco_nordeste_spec.rb +161 -0
- data/spec/brcobranca/boleto/banestes_spec.rb +194 -0
- data/spec/brcobranca/boleto/banrisul_spec.rb +182 -0
- data/spec/brcobranca/boleto/bradesco_spec.rb +211 -0
- data/spec/brcobranca/boleto/caixa_spec.rb +161 -0
- data/spec/brcobranca/boleto/cecred_spec.rb +147 -0
- data/spec/brcobranca/boleto/credisis_spec.rb +159 -0
- data/spec/brcobranca/boleto/hsbc_spec.rb +172 -0
- data/spec/brcobranca/boleto/itau_spec.rb +262 -0
- data/spec/brcobranca/boleto/santander_spec.rb +143 -0
- data/spec/brcobranca/boleto/sicoob_spec.rb +193 -0
- data/spec/brcobranca/boleto/sicredi_spec.rb +190 -0
- data/spec/brcobranca/boleto/unicred_spec.rb +149 -0
- data/spec/brcobranca/boletos_em_lote_spec.rb +38 -0
- data/spec/brcobranca/calculo_data_spec.rb +33 -0
- data/spec/brcobranca/calculo_spec.rb +185 -0
- data/spec/brcobranca/currency_spec.rb +79 -0
- data/spec/brcobranca/formatacao_spec.rb +46 -0
- data/spec/brcobranca/formatacao_string_spec.rb +24 -0
- data/spec/brcobranca/limpeza_spec.rb +10 -0
- data/spec/brcobranca/remessa/base_spec.rb +67 -0
- data/spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb +217 -0
- data/spec/brcobranca/remessa/cnab240/base_spec.rb +91 -0
- data/spec/brcobranca/remessa/cnab240/caixa_spec.rb +163 -0
- data/spec/brcobranca/remessa/cnab240/cecred_spec.rb +164 -0
- data/spec/brcobranca/remessa/cnab240/sicoob_banco_brasil_spec.rb +268 -0
- data/spec/brcobranca/remessa/cnab240/sicoob_spec.rb +198 -0
- data/spec/brcobranca/remessa/cnab240/sicredi_spec.rb +201 -0
- data/spec/brcobranca/remessa/cnab240/unicred_spec.rb +193 -0
- data/spec/brcobranca/remessa/cnab400/banco_brasil_spec.rb +187 -0
- data/spec/brcobranca/remessa/cnab400/banco_brasilia_spec.rb +183 -0
- data/spec/brcobranca/remessa/cnab400/banco_nordeste_spec.rb +187 -0
- data/spec/brcobranca/remessa/cnab400/banrisul_spec.rb +190 -0
- data/spec/brcobranca/remessa/cnab400/base_spec.rb +53 -0
- data/spec/brcobranca/remessa/cnab400/bradesco_spec.rb +201 -0
- data/spec/brcobranca/remessa/cnab400/citibank_spec.rb +126 -0
- data/spec/brcobranca/remessa/cnab400/credisis_spec.rb +188 -0
- data/spec/brcobranca/remessa/cnab400/itau_spec.rb +190 -0
- data/spec/brcobranca/remessa/cnab400/santander_spec.rb +152 -0
- data/spec/brcobranca/remessa/cnab400/sicoob_spec.rb +217 -0
- data/spec/brcobranca/remessa/cnab400/unicred_spec.rb +185 -0
- data/spec/brcobranca/remessa/pagamento_spec.rb +227 -0
- data/spec/brcobranca/retorno/cnab240/base_spec.rb +23 -0
- data/spec/brcobranca/retorno/cnab240/cecred_spec.rb +50 -0
- data/spec/brcobranca/retorno/cnab240/santander_spec.rb +50 -0
- data/spec/brcobranca/retorno/cnab240/sicoob_spec.rb +50 -0
- data/spec/brcobranca/retorno/cnab240/sicredi_spec.rb +31 -0
- data/spec/brcobranca/retorno/cnab400/banco_brasilia_spec.rb +36 -0
- data/spec/brcobranca/retorno/cnab400/banco_nordeste_spec.rb +39 -0
- data/spec/brcobranca/retorno/cnab400/banrisul_spec.rb +41 -0
- data/spec/brcobranca/retorno/cnab400/base_spec.rb +57 -0
- data/spec/brcobranca/retorno/cnab400/bradesco_spec.rb +58 -0
- data/spec/brcobranca/retorno/cnab400/credisis_spec.rb +25 -0
- data/spec/brcobranca/retorno/cnab400/itau_spec.rb +58 -0
- data/spec/brcobranca/retorno/cnab400/santander_spec.rb +39 -0
- data/spec/brcobranca/retorno/cnab400/unicred_spec.rb +42 -0
- data/spec/brcobranca/retorno/retorno_cbr643_spec.rb +69 -0
- data/spec/brcobranca/retorno/retorno_cnab400_spec.rb +57 -0
- data/spec/brcobranca/retorno/retorno_cnab_240_spec.rb +52 -0
- data/spec/brcobranca/rghost_spec.rb +29 -0
- data/spec/brcobranca/util/empresa_spec.rb +36 -0
- data/spec/fixtures/remessa/remessa-banco-brasil-cnab400.rem +3 -0
- data/spec/fixtures/remessa/remessa-banco-brasilia-cnab400.rem +3 -0
- data/spec/fixtures/remessa/remessa-banco-nordeste-cnab400.rem +3 -0
- data/spec/fixtures/remessa/remessa-banco_brasil-cnab240.rem +7 -0
- data/spec/fixtures/remessa/remessa-bancoob-cnab240.rem +7 -0
- data/spec/fixtures/remessa/remessa-banrisul-cnab400.rem +3 -0
- data/spec/fixtures/remessa/remessa-bradesco-cnab400.rem +3 -0
- data/spec/fixtures/remessa/remessa-caixa-cnab240.rem +7 -0
- data/spec/fixtures/remessa/remessa-cecred-cnab240.rem +7 -0
- data/spec/fixtures/remessa/remessa-citibank-cnab400.rem +3 -0
- data/spec/fixtures/remessa/remessa-credisis-cnab400.rem +3 -0
- data/spec/fixtures/remessa/remessa-itau-cnab400.rem +4 -0
- data/spec/fixtures/remessa/remessa-santander-cnab400.rem +3 -0
- data/spec/fixtures/remessa/remessa-sicoob-cnab400.rem +3 -0
- data/spec/fixtures/remessa/remessa-sicoob-correspondente-bb-cnab240.rem +4 -0
- data/spec/fixtures/remessa/remessa-sicredi-cnab240.rem +7 -0
- data/spec/fixtures/remessa/remessa-unicred-cnab240.rem +7 -0
- data/spec/fixtures/remessa/remessa-unicred-cnab400.rem +3 -0
- data/spec/spec.opts +8 -0
- data/spec/spec_helper.rb +38 -0
- data/spec/support/remessa_helpers.rb +13 -0
- data/spec/support/shared_examples/busca_logotipo.rb +15 -0
- data/spec/support/shared_examples/cnab240.rb +259 -0
- data/spec/support/shared_examples/cnab400.rb +180 -0
- data/spec/support/shared_examples/formatos_validos.rb +36 -0
- metadata +422 -0
@@ -0,0 +1,86 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
module Bbrcobranca
|
3
|
+
module Boleto
|
4
|
+
class Cecred < Base # Cecred
|
5
|
+
validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
|
6
|
+
validates_length_of :conta_corrente, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
|
7
|
+
validates_length_of :carteira, is: 2, message: 'deve ser menor ou igual a 2 dígitos.'
|
8
|
+
validates_length_of :convenio, is: 6, message: 'deve ser menor ou igual a 6 dígitos.'
|
9
|
+
|
10
|
+
validates_length_of :nosso_numero, maximum: 9, message: 'deve ser menor ou igual a 9 dígitos.'
|
11
|
+
|
12
|
+
# Nova instancia do Cecred
|
13
|
+
# @param (see Bbrcobranca::Boleto::Base#initialize)
|
14
|
+
def initialize(campos = {})
|
15
|
+
campos = {
|
16
|
+
carteira: '1',
|
17
|
+
local_pagamento: 'PAGÁVEL PREFERENCIALMENTE NAS COOPERATIVAS DO SISTEMA CECRED'
|
18
|
+
}.merge!(campos)
|
19
|
+
super(campos)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Codigo do banco emissor (3 dígitos sempre)
|
23
|
+
#
|
24
|
+
# @return [String] 3 caracteres numéricos.
|
25
|
+
def banco
|
26
|
+
'085'
|
27
|
+
end
|
28
|
+
|
29
|
+
# Dígito verificador do banco
|
30
|
+
# @return [Integer] 1 caracteres numéricos.
|
31
|
+
def banco_dv
|
32
|
+
"1"
|
33
|
+
end
|
34
|
+
|
35
|
+
# Dígito verificador da conta corrente
|
36
|
+
# @return [Integer] 1 caracteres numéricos.
|
37
|
+
def conta_corrente_dv
|
38
|
+
conta_corrente.modulo11(mapeamento: { 10 => 0 })
|
39
|
+
end
|
40
|
+
|
41
|
+
# Convenio
|
42
|
+
# @return [String] 6 caracteres numéricos.
|
43
|
+
def convenio=(valor)
|
44
|
+
@convenio = valor.to_s.rjust(6, '0') if valor
|
45
|
+
end
|
46
|
+
|
47
|
+
# Carteira
|
48
|
+
# @return [String] 2 caracteres numéricos.
|
49
|
+
def carteira=(valor)
|
50
|
+
@carteira = valor.to_s.rjust(2, '0') if valor
|
51
|
+
end
|
52
|
+
|
53
|
+
# Número seqüencial utilizado para identificar o boleto.
|
54
|
+
# (Número de dígitos depende do tipo de convênio).
|
55
|
+
# @raise [Bbrcobranca::NaoImplementado] Caso o tipo de convênio não seja suportado pelo Bbrcobranca.
|
56
|
+
#
|
57
|
+
# @overload numero
|
58
|
+
# @return [String] 9 caracteres numéricos.
|
59
|
+
def nosso_numero=(valor)
|
60
|
+
@nosso_numero = valor.to_s.rjust(9, '0')
|
61
|
+
end
|
62
|
+
|
63
|
+
# Nosso número para exibir no boleto.
|
64
|
+
# @return [String]
|
65
|
+
# @example
|
66
|
+
# boleto.nosso_numero_boleto #=> "10000000027000095-7"
|
67
|
+
def nosso_numero_boleto
|
68
|
+
"#{conta_corrente}#{conta_corrente_dv}#{nosso_numero}"
|
69
|
+
end
|
70
|
+
|
71
|
+
# Agência + conta corrente do cliente para exibir no boleto.
|
72
|
+
# @return [String]
|
73
|
+
# @example
|
74
|
+
# boleto.agencia_conta_boleto #=> "0001-9 / 0000002-7"
|
75
|
+
def agencia_conta_boleto
|
76
|
+
"#{agencia}-#{agencia_dv} / #{conta_corrente}-#{conta_corrente_dv}"
|
77
|
+
end
|
78
|
+
|
79
|
+
# Segunda parte do código de barras.
|
80
|
+
# @return [String] 25 caracteres numéricos.
|
81
|
+
def codigo_barras_segunda_parte
|
82
|
+
"#{convenio}#{nosso_numero_boleto}#{carteira}"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
module Bbrcobranca
|
3
|
+
module Boleto
|
4
|
+
class Credisis < Base # CrediSIS
|
5
|
+
validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
|
6
|
+
validates_length_of :conta_corrente, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
|
7
|
+
validates_length_of :carteira, is: 2, message: 'deve ser menor ou igual a 2 dígitos.'
|
8
|
+
validates_length_of :convenio, is: 6, message: 'deve ser menor ou igual a 6 dígitos.'
|
9
|
+
validates_length_of :nosso_numero, maximum: 6, message: 'deve ser menor ou igual a 6 dígitos.'
|
10
|
+
validates_presence_of :documento_cedente, message: 'não pode estar em branco.'
|
11
|
+
validates_numericality_of :documento_cedente, message: 'não é um número.'
|
12
|
+
|
13
|
+
# Nova instancia do CrediSIS
|
14
|
+
# @param (see Bbrcobranca::Boleto::Base#initialize)
|
15
|
+
def initialize(campos = {})
|
16
|
+
campos = { carteira: '18' }.merge!(campos)
|
17
|
+
super(campos)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Codigo do banco emissor (3 dígitos sempre)
|
21
|
+
#
|
22
|
+
# @return [String] 3 caracteres numéricos.
|
23
|
+
def banco
|
24
|
+
'097'
|
25
|
+
end
|
26
|
+
|
27
|
+
# Carteira
|
28
|
+
# @return [String] 2 caracteres numéricos.
|
29
|
+
def carteira=(valor)
|
30
|
+
@carteira = valor.to_s.rjust(2, '0') if valor
|
31
|
+
end
|
32
|
+
|
33
|
+
# Dígito verificador do banco
|
34
|
+
#
|
35
|
+
# @return [String] 1 caracteres numéricos.
|
36
|
+
def banco_dv
|
37
|
+
'3'
|
38
|
+
end
|
39
|
+
|
40
|
+
# Retorna dígito verificador da agência
|
41
|
+
#
|
42
|
+
# @return [String] 1 caracteres numéricos.
|
43
|
+
def agencia_dv
|
44
|
+
agencia.modulo11(mapeamento: { 10 => 'X' })
|
45
|
+
end
|
46
|
+
|
47
|
+
# Conta corrente
|
48
|
+
# @return [String] 7 caracteres numéricos.
|
49
|
+
def conta_corrente=(valor)
|
50
|
+
@conta_corrente = valor.to_s.rjust(7, '0') if valor
|
51
|
+
end
|
52
|
+
|
53
|
+
# Número do convênio/contrato do cliente junto ao banco.
|
54
|
+
# @return [String] 6 caracteres numéricos.
|
55
|
+
def convenio=(valor)
|
56
|
+
@convenio = valor.to_s.rjust(6, '0') if valor
|
57
|
+
end
|
58
|
+
|
59
|
+
# Dígito verificador da conta corrente
|
60
|
+
# @return [String] 1 caracteres numéricos.
|
61
|
+
def conta_corrente_dv
|
62
|
+
conta_corrente.modulo11(mapeamento: { 10 => 'X' })
|
63
|
+
end
|
64
|
+
|
65
|
+
# Nosso número
|
66
|
+
# @return [String] 6 caracteres numéricos.
|
67
|
+
def nosso_numero=(valor)
|
68
|
+
@nosso_numero = valor.to_s.rjust(6, '0')
|
69
|
+
end
|
70
|
+
|
71
|
+
# Nosso número para exibir no boleto.
|
72
|
+
# @return [String]
|
73
|
+
# @example
|
74
|
+
# boleto.nosso_numero_boleto #=> "10000000027000095-7"
|
75
|
+
def nosso_numero_boleto
|
76
|
+
"097#{documento_cedente_dv}#{agencia}#{convenio}#{nosso_numero}"
|
77
|
+
end
|
78
|
+
|
79
|
+
# Agência + conta corrente do cliente para exibir no boleto.
|
80
|
+
# @return [String]
|
81
|
+
# @example
|
82
|
+
# boleto.agencia_conta_boleto #=> "0001-9 / 0000002-7"
|
83
|
+
def agencia_conta_boleto
|
84
|
+
"#{agencia}-#{agencia_dv} / #{conta_corrente}-#{conta_corrente_dv}"
|
85
|
+
end
|
86
|
+
|
87
|
+
#X – Módulo 11 do CPF/CNPJ (incluindo dígitos verificadores) do Beneficiário emissor
|
88
|
+
# Obs.: Caso for CPF, utilizar 9 como limitador da multiplicação.
|
89
|
+
# Caso for CNPJ, utilizar 8 no limitador da multiplicação.
|
90
|
+
def documento_cedente_dv
|
91
|
+
options = { mapeamento: { 0 => 1, 10 => 1, 11 => 1 } }
|
92
|
+
options.merge(multiplicador: [8, 7, 6, 5, 4, 3, 2]) if documento_cedente.to_s.size > 11
|
93
|
+
documento_cedente.modulo11(options)
|
94
|
+
end
|
95
|
+
|
96
|
+
# Segunda parte do código de barras.
|
97
|
+
# @return [String] 25 caracteres numéricos.
|
98
|
+
#1. - Número do Banco: “097”
|
99
|
+
# 2. - Moeda: “9”
|
100
|
+
# 3. - DV do Código de Barras, Baseado no Módulo 11 (Vide Anexo X).
|
101
|
+
# 4. - Fator de Vencimento do Boleto (Vide Anexo VII).
|
102
|
+
# 5. - Valor do Título, expresso em Reais, com 02 casas decimais.
|
103
|
+
# 6. - Fixo Zeros: Campo com preenchimento Zerado “00000”
|
104
|
+
# 7. - Composição do Nosso Número: 097XAAAACCCCCCSSSSSS, sendo:
|
105
|
+
# Composição do Nosso Número
|
106
|
+
# 097 - Fixo
|
107
|
+
# X - Módulo 11 do CPF/CNPJ (Incluindo dígitos verificadores) do Beneficiário.
|
108
|
+
# AAAA - Código da Agência CrediSIS ao qual o Beneficiário possui Conta.
|
109
|
+
# CCCCCC - Código de Convênio do Beneficiário no Sistema CrediSIS
|
110
|
+
# SSSSSS - Sequencial Único do Boleto
|
111
|
+
def codigo_barras_segunda_parte
|
112
|
+
"00000097#{documento_cedente_dv}#{agencia}#{convenio}#{nosso_numero}"
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
#
|
3
|
+
module Bbrcobranca
|
4
|
+
module Boleto
|
5
|
+
class Hsbc < Base # Banco HSBC
|
6
|
+
validates_inclusion_of :carteira, in: %w(CNR CSB), message: 'não existente para este banco.'
|
7
|
+
validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
|
8
|
+
validates_length_of :nosso_numero, maximum: 13, message: 'deve ser menor ou igual a 13 dígitos.'
|
9
|
+
validates_length_of :conta_corrente, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
|
10
|
+
|
11
|
+
# Nova instancia do Hsbc
|
12
|
+
# @param (see Bbrcobranca::Boleto::Base#initialize)
|
13
|
+
def initialize(campos = {})
|
14
|
+
campos = { carteira: 'CNR' }.merge!(campos)
|
15
|
+
super(campos)
|
16
|
+
end
|
17
|
+
|
18
|
+
# Codigo do banco emissor (3 dígitos sempre)
|
19
|
+
#
|
20
|
+
# @return [String] 3 caracteres numéricos.
|
21
|
+
def banco
|
22
|
+
'399'
|
23
|
+
end
|
24
|
+
|
25
|
+
# Número seqüencial utilizado para identificar o boleto.
|
26
|
+
# @return [String] 13 caracteres numéricos.
|
27
|
+
def nosso_numero=(valor)
|
28
|
+
@nosso_numero = valor.to_s.rjust(13, '0') if valor
|
29
|
+
end
|
30
|
+
|
31
|
+
# Nosso número para exibir no boleto.
|
32
|
+
# @return [String]
|
33
|
+
# @example
|
34
|
+
# boleto.nosso_numero_boleto #=> "0000000004042847"
|
35
|
+
def nosso_numero_boleto
|
36
|
+
case carteira
|
37
|
+
when 'CNR' then
|
38
|
+
if data_vencimento.is_a?(Date)
|
39
|
+
self.codigo_servico = '4'
|
40
|
+
dia = data_vencimento.day.to_s.rjust(2, '0')
|
41
|
+
mes = data_vencimento.month.to_s.rjust(2, '0')
|
42
|
+
ano = data_vencimento.year.to_s[2..3]
|
43
|
+
data = "#{dia}#{mes}#{ano}"
|
44
|
+
|
45
|
+
parte_1 = "#{nosso_numero}#{nosso_numero.modulo11(mapeamento: { 10 => 0 })}#{codigo_servico}"
|
46
|
+
soma = parte_1.to_i + conta_corrente.to_i + data.to_i
|
47
|
+
"#{parte_1}#{soma.to_s.modulo11(mapeamento: { 10 => 0 })}"
|
48
|
+
else
|
49
|
+
errors.add(:data_vencimento, 'não é uma data.')
|
50
|
+
raise Bbrcobranca::BoletoInvalido, self
|
51
|
+
end
|
52
|
+
when 'CSB'
|
53
|
+
@nosso_numero
|
54
|
+
else
|
55
|
+
raise Bbrcobranca::NaoImplementado, 'Tipo de carteira não implementado.'
|
56
|
+
# TODO - Verificar outras carteiras.
|
57
|
+
# self.codigo_servico = "5"
|
58
|
+
# parte_1 = "#{self.nosso_numero}#{self.nosso_numero.modulo11(mapeamento: { 10 => 0 })}#{self.codigo_servico}"
|
59
|
+
# soma = parte_1.to_i + self.conta_corrente.to_i
|
60
|
+
# numero = "#{parte_1}#{soma.to_s.modulo11(mapeamento: { 10 => 0 })}"
|
61
|
+
# numero
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# Número do convênio/contrato do cliente para exibir no boleto.
|
66
|
+
# @return [String]
|
67
|
+
# @example
|
68
|
+
# boleto.agencia_conta_boleto #=> "0061900"
|
69
|
+
def agencia_conta_boleto
|
70
|
+
conta_corrente
|
71
|
+
end
|
72
|
+
|
73
|
+
# Segunda parte do código de barras.
|
74
|
+
#
|
75
|
+
# Montagem é baseada no tipo de carteira e na presença da data de vencimento<br/>
|
76
|
+
# <b>OBS:</b> Somente as carteiras <b>CNR/CSB</b> estão implementadas.<br/>
|
77
|
+
#
|
78
|
+
# @return [String] 25 caracteres numéricos.
|
79
|
+
# @raise [Bbrcobranca::NaoImplementado] Caso a carteira informada não for CNR/CSB.
|
80
|
+
def codigo_barras_segunda_parte
|
81
|
+
case carteira
|
82
|
+
when 'CNR'
|
83
|
+
dias_julianos = data_vencimento.to_juliano
|
84
|
+
"#{conta_corrente}#{nosso_numero}#{dias_julianos}2"
|
85
|
+
when 'CSB'
|
86
|
+
raise Bbrcobranca::NaoImplementado, 'Nosso número não definido.' unless @nosso_numero
|
87
|
+
"#{nosso_numero}#{agencia}#{conta_corrente}001"
|
88
|
+
else
|
89
|
+
raise Bbrcobranca::NaoImplementado, 'Tipo de carteira não implementado.'
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,138 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
#
|
3
|
+
|
4
|
+
module Bbrcobranca
|
5
|
+
module Boleto
|
6
|
+
class Itau < Base # Banco Itaú
|
7
|
+
# Usado somente em carteiras especiais com registro para complementar o número do cocumento
|
8
|
+
attr_reader :seu_numero
|
9
|
+
|
10
|
+
validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
|
11
|
+
validates_length_of :convenio, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
|
12
|
+
validates_length_of :nosso_numero, maximum: 8, message: 'deve ser menor ou igual a 8 dígitos.'
|
13
|
+
validates_length_of :conta_corrente, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
|
14
|
+
with_options if: :usa_seu_numero? do |v|
|
15
|
+
v.validates_length_of :seu_numero, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
|
16
|
+
end
|
17
|
+
# Nova instancia do Itau
|
18
|
+
# @param (see Bbrcobranca::Boleto::Base#initialize)
|
19
|
+
def initialize(campos = {})
|
20
|
+
campos = { carteira: '175' }.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
|
+
'341'
|
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 nosso_numero=(valor)
|
46
|
+
@nosso_numero = 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
|
+
def usa_seu_numero?
|
56
|
+
%w(198 106 107 122 142 143 195 196).include?(carteira.to_s)
|
57
|
+
end
|
58
|
+
|
59
|
+
# Dígito verificador do nosso número.
|
60
|
+
#
|
61
|
+
# Para a grande maioria das carteiras, são considerados para a obtenção do DAC/DV, os dados
|
62
|
+
# "AGENCIA(sem DAC/DV)/CONTA(sem DAC/DV)/CARTEIRA/NOSSO NUMERO", calculado pelo criterio do Modulo 10.<br/>
|
63
|
+
# A excecao, estão as carteiras 112, 126, 131, 146, 150 e 168 cuja obtenção esta baseada apenas nos
|
64
|
+
# dados "CARTEIRA/NOSSO NUMERO".
|
65
|
+
#
|
66
|
+
# @return [String] 1 caracteres numéricos.
|
67
|
+
def nosso_numero_dv
|
68
|
+
if %w(112 126 131 146 150 168).include?(carteira)
|
69
|
+
"#{carteira}#{nosso_numero}".modulo10
|
70
|
+
else
|
71
|
+
"#{agencia}#{conta_corrente}#{carteira}#{nosso_numero}".modulo10
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
# Calcula o dígito verificador para conta corrente do Itau.
|
76
|
+
# Retorna apenas o dígito verificador da conta ou nil caso seja impossível calcular.
|
77
|
+
def agencia_conta_corrente_dv
|
78
|
+
"#{agencia}#{conta_corrente}".modulo10
|
79
|
+
end
|
80
|
+
|
81
|
+
# Nosso número para exibir no boleto.
|
82
|
+
# @return [String]
|
83
|
+
# @example
|
84
|
+
# boleto.nosso_numero_boleto #=> "175/12345678-4"
|
85
|
+
def nosso_numero_boleto
|
86
|
+
"#{carteira}/#{nosso_numero}-#{nosso_numero_dv}"
|
87
|
+
end
|
88
|
+
|
89
|
+
# Agência + conta corrente do cliente para exibir no boleto.
|
90
|
+
# @return [String]
|
91
|
+
# @example
|
92
|
+
# boleto.agencia_conta_boleto #=> "0811 / 53678-8"
|
93
|
+
def agencia_conta_boleto
|
94
|
+
"#{agencia} / #{conta_corrente}-#{agencia_conta_corrente_dv}"
|
95
|
+
end
|
96
|
+
|
97
|
+
# Segunda parte do código de barras.
|
98
|
+
#
|
99
|
+
# CARTEIRAS 198, 106, 107,122, 142, 143, 195 e 196<br/>
|
100
|
+
# 01 a 03 | 03 | 9(3) | Código do Banco na Câmara de Compensação = ‘341’<br/>
|
101
|
+
# 04 a 04 | 01 | 9(1) | Código da Moeda = '9'<br/>
|
102
|
+
# 05 a 05 | 01 | 9(1) | DAC do Código de Barras MOD 11-2a9<br/>
|
103
|
+
# 06 a 09 | 04 | 9(04) | Fator de Vencimento<br/>
|
104
|
+
# 10 a 19 | 10 | 9(08) | V(2) Valor<br/>
|
105
|
+
# 20 a 22 | 03 | 9(3) | Carteira<br/>
|
106
|
+
# 23 a 30 | 08 | 9(8) | Nosso Número<br/>
|
107
|
+
# 31 a 37 | 07 | 9(7) | Seu Número (Número do Documento)<br/>
|
108
|
+
# 38 a 42 | 05 | 9(5) | Código do Cliente (fornecido pelo Banco)<br/>
|
109
|
+
# 43 a 43 | 01 | 9(1) | DAC dos campos acima (posições 20 a 42) MOD 10<br/>
|
110
|
+
# 44 a 44 | 01 | 9(1) | Zero<br/>
|
111
|
+
#
|
112
|
+
# DEMAIS CARTEIRAS<br/>
|
113
|
+
# 01 a 03 | 03 | 9(03) | Código do Banco na Câmara de Compensação = '341'<br/>
|
114
|
+
# 04 a 04 | 01 | 9(01) | Código da Moeda = '9'<br/>
|
115
|
+
# 05 a 05 | 01 | 9(01) | DAC código de Barras MOD 11-2a9<br/>
|
116
|
+
# 06 a 09 | 04 | 9(04) | Fator de Vencimento<br/>
|
117
|
+
# 10 a 19 | 10 | 9(08)V(2) | Valor<br/>
|
118
|
+
# 20 a 22 | 03 | 9(03) | Carteira<br/>
|
119
|
+
# 23 a 30 | 08 | 9(08) | Nosso Número<br/>
|
120
|
+
# 31 a 31 | 01 | 9(01) | DAC [Agência /Conta/Carteira/Nosso Número] MOD 10<br/>
|
121
|
+
# 32 a 35 | 04 | 9(04) | N.º da Agência cedente<br/>
|
122
|
+
# 36 a 40 | 05 | 9(05) | N.º da Conta Corrente<br/>
|
123
|
+
# 41 a 41 | 01 | 9(01) | DAC [Agência/Conta Corrente] MOD 10<br/>
|
124
|
+
# 42 a 44 | 03 | 9(03) | Zeros<br/>
|
125
|
+
#
|
126
|
+
# @return [String] 25 caracteres numéricos.
|
127
|
+
def codigo_barras_segunda_parte
|
128
|
+
case carteira.to_i
|
129
|
+
when 198, 106, 107, 122, 142, 143, 195, 196
|
130
|
+
dv = "#{carteira}#{nosso_numero}#{seu_numero}#{convenio}".modulo10
|
131
|
+
"#{carteira}#{nosso_numero}#{seu_numero}#{convenio}#{dv}0"
|
132
|
+
else
|
133
|
+
"#{carteira}#{nosso_numero}#{nosso_numero_dv}#{agencia}#{conta_corrente}#{agencia_conta_corrente_dv}000"
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
@@ -0,0 +1,159 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
#
|
3
|
+
|
4
|
+
module Bbrcobranca
|
5
|
+
module Boleto
|
6
|
+
class ItauAdimplere < Base # Banco Itaú
|
7
|
+
# Usado somente em carteiras especiais com registro para complementar o número do cocumento
|
8
|
+
attr_reader :seu_numero
|
9
|
+
attr_writer :codigo_barras
|
10
|
+
|
11
|
+
def codigo_barras
|
12
|
+
instance_variable_get("@codigo_barras")
|
13
|
+
end
|
14
|
+
|
15
|
+
def logotipo
|
16
|
+
if Bbrcobranca.configuration.gerador == :rghost_carne
|
17
|
+
File.join(
|
18
|
+
brcobranca_path, "lib", "bbrcobranca", "arquivos", "logos", "itau_carne.eps"
|
19
|
+
)
|
20
|
+
else
|
21
|
+
File.join(brcobranca_path, "lib", "bbrcobranca", "arquivos", "logos", "itau.eps")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
|
26
|
+
validates_length_of :convenio, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
|
27
|
+
validates_length_of :nosso_numero, maximum: 8, message: 'deve ser menor ou igual a 8 dígitos.'
|
28
|
+
validates_length_of :conta_corrente, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
|
29
|
+
with_options if: :usa_seu_numero? do |v|
|
30
|
+
v.validates_length_of :seu_numero, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
|
31
|
+
end
|
32
|
+
# Nova instancia do Itau
|
33
|
+
# @param (see Bbrcobranca::Boleto::Base#initialize)
|
34
|
+
def initialize(campos = {})
|
35
|
+
campos = { carteira: '175' }.merge!(campos)
|
36
|
+
super(campos)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Codigo do banco emissor (3 dígitos sempre)
|
40
|
+
#
|
41
|
+
# @return [String] 3 caracteres numéricos.
|
42
|
+
def banco
|
43
|
+
'341'
|
44
|
+
end
|
45
|
+
|
46
|
+
# Número do convênio/contrato do cliente junto ao banco.
|
47
|
+
# @return [String] 5 caracteres numéricos.
|
48
|
+
def convenio=(valor)
|
49
|
+
@convenio = valor.to_s.rjust(5, '0') if valor
|
50
|
+
end
|
51
|
+
|
52
|
+
# Conta corrente
|
53
|
+
# @return [String] 5 caracteres numéricos.
|
54
|
+
def conta_corrente=(valor)
|
55
|
+
@conta_corrente = valor.to_s.rjust(5, '0') if valor
|
56
|
+
end
|
57
|
+
|
58
|
+
# Número seqüencial utilizado para identificar o boleto.
|
59
|
+
# @return [String] 8 caracteres numéricos.
|
60
|
+
def nosso_numero=(valor)
|
61
|
+
@nosso_numero = valor.to_s.rjust(8, '0') if valor
|
62
|
+
end
|
63
|
+
|
64
|
+
# Número seqüencial utilizado para identificar o boleto.
|
65
|
+
# @return [String] 7 caracteres numéricos.
|
66
|
+
def seu_numero=(valor)
|
67
|
+
@seu_numero = valor.to_s.rjust(7, '0') if valor
|
68
|
+
end
|
69
|
+
|
70
|
+
def usa_seu_numero?
|
71
|
+
%w(198 106 107 122 142 143 195 196).include?(carteira.to_s)
|
72
|
+
end
|
73
|
+
|
74
|
+
# Dígito verificador do nosso número.
|
75
|
+
#
|
76
|
+
# Para a grande maioria das carteiras, são considerados para a obtenção do DAC/DV, os dados
|
77
|
+
# "AGENCIA(sem DAC/DV)/CONTA(sem DAC/DV)/CARTEIRA/NOSSO NUMERO", calculado pelo criterio do Modulo 10.<br/>
|
78
|
+
# A excecao, estão as carteiras 112, 126, 131, 146, 150 e 168 cuja obtenção esta baseada apenas nos
|
79
|
+
# dados "CARTEIRA/NOSSO NUMERO".
|
80
|
+
#
|
81
|
+
# @return [String] 1 caracteres numéricos.
|
82
|
+
def nosso_numero_dv
|
83
|
+
if %w(112 126 131 146 150 168).include?(carteira)
|
84
|
+
"#{carteira}#{nosso_numero}".modulo10
|
85
|
+
else
|
86
|
+
"#{agencia}#{conta_corrente}#{carteira}#{nosso_numero}".modulo10
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
# Calcula o dígito verificador para conta corrente do Itau.
|
91
|
+
# Retorna apenas o dígito verificador da conta ou nil caso seja impossível calcular.
|
92
|
+
def agencia_conta_corrente_dv
|
93
|
+
"#{agencia}#{conta_corrente}".modulo10
|
94
|
+
end
|
95
|
+
|
96
|
+
# Nosso número para exibir no boleto.
|
97
|
+
# @return [String]
|
98
|
+
# @example
|
99
|
+
# boleto.nosso_numero_boleto #=> "175/12345678-4"
|
100
|
+
def nosso_numero_boleto
|
101
|
+
"#{carteira}/#{nosso_numero}-#{nosso_numero_dv}"
|
102
|
+
end
|
103
|
+
|
104
|
+
# Agência + conta corrente do cliente para exibir no boleto.
|
105
|
+
# @return [String]
|
106
|
+
# @example
|
107
|
+
# boleto.agencia_conta_boleto #=> "0811 / 53678-8"
|
108
|
+
def agencia_conta_boleto
|
109
|
+
"#{agencia} / #{conta_corrente}-#{agencia_conta_corrente_dv}"
|
110
|
+
end
|
111
|
+
|
112
|
+
# Segunda parte do código de barras.
|
113
|
+
#
|
114
|
+
# CARTEIRAS 198, 106, 107,122, 142, 143, 195 e 196<br/>
|
115
|
+
# 01 a 03 | 03 | 9(3) | Código do Banco na Câmara de Compensação = ‘341’<br/>
|
116
|
+
# 04 a 04 | 01 | 9(1) | Código da Moeda = '9'<br/>
|
117
|
+
# 05 a 05 | 01 | 9(1) | DAC do Código de Barras MOD 11-2a9<br/>
|
118
|
+
# 06 a 09 | 04 | 9(04) | Fator de Vencimento<br/>
|
119
|
+
# 10 a 19 | 10 | 9(08) | V(2) Valor<br/>
|
120
|
+
# 20 a 22 | 03 | 9(3) | Carteira<br/>
|
121
|
+
# 23 a 30 | 08 | 9(8) | Nosso Número<br/>
|
122
|
+
# 31 a 37 | 07 | 9(7) | Seu Número (Número do Documento)<br/>
|
123
|
+
# 38 a 42 | 05 | 9(5) | Código do Cliente (fornecido pelo Banco)<br/>
|
124
|
+
# 43 a 43 | 01 | 9(1) | DAC dos campos acima (posições 20 a 42) MOD 10<br/>
|
125
|
+
# 44 a 44 | 01 | 9(1) | Zero<br/>
|
126
|
+
#
|
127
|
+
# DEMAIS CARTEIRAS<br/>
|
128
|
+
# 01 a 03 | 03 | 9(03) | Código do Banco na Câmara de Compensação = '341'<br/>
|
129
|
+
# 04 a 04 | 01 | 9(01) | Código da Moeda = '9'<br/>
|
130
|
+
# 05 a 05 | 01 | 9(01) | DAC código de Barras MOD 11-2a9<br/>
|
131
|
+
# 06 a 09 | 04 | 9(04) | Fator de Vencimento<br/>
|
132
|
+
# 10 a 19 | 10 | 9(08)V(2) | Valor<br/>
|
133
|
+
# 20 a 22 | 03 | 9(03) | Carteira<br/>
|
134
|
+
# 23 a 30 | 08 | 9(08) | Nosso Número<br/>
|
135
|
+
# 31 a 31 | 01 | 9(01) | DAC [Agência /Conta/Carteira/Nosso Número] MOD 10<br/>
|
136
|
+
# 32 a 35 | 04 | 9(04) | N.º da Agência cedente<br/>
|
137
|
+
# 36 a 40 | 05 | 9(05) | N.º da Conta Corrente<br/>
|
138
|
+
# 41 a 41 | 01 | 9(01) | DAC [Agência/Conta Corrente] MOD 10<br/>
|
139
|
+
# 42 a 44 | 03 | 9(03) | Zeros<br/>
|
140
|
+
#
|
141
|
+
# @return [String] 25 caracteres numéricos.
|
142
|
+
def codigo_barras_segunda_parte
|
143
|
+
case carteira.to_i
|
144
|
+
when 198, 106, 107, 122, 142, 143, 195, 196
|
145
|
+
dv = "#{carteira}#{nosso_numero}#{seu_numero}#{convenio}".modulo10
|
146
|
+
"#{carteira}#{nosso_numero}#{seu_numero}#{convenio}#{dv}0"
|
147
|
+
else
|
148
|
+
"#{carteira}#{nosso_numero}#{nosso_numero_dv}#{agencia}#{conta_corrente}#{agencia_conta_corrente_dv}000"
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
private
|
153
|
+
|
154
|
+
def brcobranca_path
|
155
|
+
@brcobranca_path ||= Gem::Specification.find_by_name("bbrcobranca").gem_dir
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|