Class: BrBoleto::Boleto::Caixa

Inherits:
Base show all
Defined in:
lib/br_boleto/boleto/caixa.rb

Overview

Implementação de emissão de boleto bancário pela Caixa Econômica Federal.

Documentação Implementada

A documentação na qual essa implementação foi baseada está localizada na pasta ‘documentacoes_dos_boletos/caixa’ dentro dessa biblioteca.

Carteiras suportadas

Segue abaixo as carteiras suportadas da Caixa Econômica Federal seguindo a documentação:

 ___________________________________________
| Carteira | Descri

Instance Attribute Summary

Attributes inherited from Base

#aceite, #codigo_moeda, #conta_corrente, #data_documento, #data_vencimento, #especie, #especie_documento, #instrucoes1, #instrucoes2, #instrucoes3, #instrucoes4, #instrucoes5, #instrucoes6, #local_pagamento, #logo, #numero_documento, #parcelas, #valor_documento

Instance Method Summary collapse

Methods inherited from Base

#aceite_formatado, #codigo_de_barras, #codigo_de_barras_padrao, #data_vencimento_deve_ser_uma_data, #digito_codigo_de_barras, #fator_de_vencimento, #linha_digitavel, #persisted?, #to_partial_path, #valid_valor_documento_tamanho_maximo, #valor_formatado_para_codigo_de_barras

Methods included from HavePagador

#pagador, #pagador=

Methods included from HaveConta

#conta, #conta=

Methods inherited from ActiveModelBase

#assign_attributes, #initialize

Constructor Details

This class inherits a constructor from BrBoleto::ActiveModelBase

Instance Method Details

#codigo_de_barras_do_bancoString

Código de barras do banco

 ________________________________________________________________________________________
| Posi

Returns:

  • (String)


123
124
125
126
127
# File 'lib/br_boleto/boleto/caixa.rb', line 123

def codigo_de_barras_do_banco
  @composicao_codigo_barras = nil        
  codigo_dv = Modulo11FatorDe2a9RestoZero.new(composicao_codigo_barras)
  "#{composicao_codigo_barras}#{codigo_dv}"
end

#composicao_codigo_barrasObject



129
130
131
132
133
134
135
136
137
138
139
# File 'lib/br_boleto/boleto/caixa.rb', line 129

def composicao_codigo_barras
  return @composicao_codigo_barras if @composicao_codigo_barras
  @composicao_codigo_barras =  "#{conta.codigo_cedente}"
  @composicao_codigo_barras << "#{conta.codigo_cedente_dv}"
  @composicao_codigo_barras << "#{nosso_numero_de_3_a_5}"
  @composicao_codigo_barras << "#{tipo_cobranca}"
  @composicao_codigo_barras << "#{nosso_numero_de_6_a_8}"
  @composicao_codigo_barras << "#{identificador_de_emissao}"
  @composicao_codigo_barras << "#{nosso_numero_de_9_a_17}"
  @composicao_codigo_barras
end

#conta_classObject



27
28
29
# File 'lib/br_boleto/boleto/caixa.rb', line 27

def conta_class
  BrBoleto::Conta::Caixa
end

#default_valuesObject

Conforme descrito na documentação, o valor que deve constar em local do pagamento é “PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE”



58
59
60
61
62
# File 'lib/br_boleto/boleto/caixa.rb', line 58

def default_values
  super.merge({
    :local_pagamento   => 'PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE'
  })
end

#digito_verificador_nosso_numeroObject



64
65
66
# File 'lib/br_boleto/boleto/caixa.rb', line 64

def digito_verificador_nosso_numero
  BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new("#{conta.carteira}#{numero_documento}")
end

#identificador_de_emissaoString

O Identificado de Emissão é o 2° e ultimo caracter da carteira Normalmente é 4 onde significa que o Beneficiário emitiu o boleto.

Returns:

  • (String)


102
103
104
# File 'lib/br_boleto/boleto/caixa.rb', line 102

def identificador_de_emissao
  conta.carteira.last if conta.carteira.present?
end

#nosso_numeroString

Mostra o campo nosso número calculando o dígito verificador do nosso número.

Returns:

  • (String)


72
73
74
# File 'lib/br_boleto/boleto/caixa.rb', line 72

def nosso_numero
  "#{conta.carteira}#{numero_documento}-#{digito_verificador_nosso_numero}"
end

#nosso_numero_de_3_a_5Object



77
78
79
# File 'lib/br_boleto/boleto/caixa.rb', line 77

def nosso_numero_de_3_a_5
  nosso_numero[2..4]
end

#nosso_numero_de_6_a_8Object



81
82
83
# File 'lib/br_boleto/boleto/caixa.rb', line 81

def nosso_numero_de_6_a_8
  nosso_numero[5..7]
end

#nosso_numero_de_9_a_17Object



85
86
87
# File 'lib/br_boleto/boleto/caixa.rb', line 85

def nosso_numero_de_9_a_17
  nosso_numero[8..16]
end

#tipo_cobrancaString

O Tipo de cobrança é o 1° caracter da carteira

Returns:

  • (String)


93
94
95
# File 'lib/br_boleto/boleto/caixa.rb', line 93

def tipo_cobranca
  conta.carteira[0] if conta.carteira.present?
end

#valid_carteira_inclusionObject



50
51
52
# File 'lib/br_boleto/boleto/caixa.rb', line 50

def valid_carteira_inclusion
  %w{14 24}
end

#valid_carteira_lengthObject

Carteira deve ter 2 digitos



47
48
49
# File 'lib/br_boleto/boleto/caixa.rb', line 47

def valid_carteira_length
  2
end

#valid_convenio_maximumObject

Tamanho máximo para o codigo_cedente/Convênio



37
38
39
# File 'lib/br_boleto/boleto/caixa.rb', line 37

def valid_convenio_maximum 
  6
end

#valid_convenio_requiredObject

codigo_cedente/Convênio deve ser obrigatório



42
43
44
# File 'lib/br_boleto/boleto/caixa.rb', line 42

def valid_convenio_required
  true
end

#valid_numero_documento_maximumObject

VALIDAÇÕES DINÂMICAS #################



32
33
34
# File 'lib/br_boleto/boleto/caixa.rb', line 32

def valid_numero_documento_maximum
  15
end