Class: BancoCaixa

Inherits:
Brcobranca::Boleto::Base show all
Defined in:
lib/brcobranca/boleto/banco_caixa.rb

Overview

Banco Caixa

Constant Summary collapse

CARTEIRAS =

validates_length_of :convenio, :is => 11, :message => “deve ser igual a 11 dígitos (operacao (3) + convênio (8)).”

{
  14 => 'SR' # Cobranca sem Registro
}

Instance Attribute Summary

Attributes inherited from Brcobranca::Boleto::Base

#aceite, #agencia, #cedente, #codigo_servico, #conta_corrente, #convenio, #data_documento, #data_processamento, #dias_vencimento, #documento_cedente, #especie, #especie_documento, #instrucao1, #instrucao2, #instrucao3, #instrucao4, #instrucao5, #instrucao6, #instrucao7, #local_pagamento, #moeda, #quantidade, #sacado, #sacado_documento, #sacado_endereco, #valor, #variacao

Instance Method Summary collapse

Methods inherited from Brcobranca::Boleto::Base

#agencia_dv, #conta_corrente_dv, #data_vencimento, #nosso_numero, #valor_documento

Constructor Details

#initialize(campos = {}) ⇒ BancoCaixa

Nova instancia da CaixaEconomica



12
13
14
15
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 12

def initialize(campos={})
  campos = {:carteira => CARTEIRAS[14]}.merge!(campos)
  super(campos)
end

Instance Method Details

#agencia_conta_boletoString

Número da agência/codigo_cedente do cliente para exibir no boleto. boleto.agencia_conta_boleto #=> “2391/44335511-5”

Returns:

  • (String)


49
50
51
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 49

def agencia_conta_boleto
  "#{self.agencia}/#{self.conta_corrente}-#{self.conta_corrente_dv}"
end

#bancoString

Codigo do banco emissor (3 dígitos sempre)

Returns:

  • (String)

    3 caracteres numéricos.



37
38
39
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 37

def banco
  "104"
end

#banco_dvObject



41
42
43
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 41

def banco_dv
  self.banco.modulo10
end

#campo_livreObject

Para as posições do Campo Livre, informar:

  • Se carteira Sem Registro: Nosso número com 10 posições e Código do Cedente, ambos

sem o DV.

Ex.: 82NNNNNNNN AAAA YYYXXXXXXXX

Onde: 82 - Identificador da carteira Sem Registro NNNNNNNN - Nosso número do Cliente AAAA - CNPJ da Agência Cedente YYY - Operação Código XXXXXXXX - Código fornecido pela Agência

Nota: A operação + o código fornecido pela agência = convênio



114
115
116
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 114

def campo_livre
  "#{self.numero_documento}#{self.agencia}#{self.convenio}"
end

#carteiraObject



28
29
30
31
32
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 28

def carteira
  # Em caso de número, formatar para sigla
  return CARTEIRAS[self.valor_carteira] if self.valor_carteira.is_number?
  self.valor_carteira
end

#codigo_barrasObject



87
88
89
90
91
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 87

def codigo_barras
  codigo = super()
  raise Brcobranca::BoletoInvalido.new unless codigo 
  codigo
end

#codigo_barras_primeira_parteObject



93
94
95
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 93

def codigo_barras_primeira_parte
  "#{self.banco}#{self.moeda}#{self.fator_vencimento}#{valor_documento_formatado}"
end

#codigo_barras_segunda_parteObject



97
98
99
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 97

def codigo_barras_segunda_parte
  self.campo_livre
end

#fator_vencimentoObject



17
18
19
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 17

def fator_vencimento
  self.data_vencimento.fator_vencimento.to_s.rjust(4,'0')
end

#monta_codigo_43_digitosObject



83
84
85
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 83

def monta_codigo_43_digitos
  "#{codigo_barras_primeira_parte}#{codigo_barras_segunda_parte}"
end

#nosso_numero_boletoString

Nosso número para exibir no boleto. (numero_documento + nosso_numero_dv) boleto.nosso_numero_boleto #=> “12345678904”

Returns:

  • (String)


79
80
81
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 79

def nosso_numero_boleto
  "#{self.numero_documento}#{self.nosso_numero_dv}"
end

#nosso_numero_dvString

Dígito verificador do nosso número.

Returns:

  • (String)

    1 caracteres numéricos.

See Also:



70
71
72
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 70

def nosso_numero_dv
  self.numero_documento.modulo11_2to9
end

#numero_documentoObject

Número seqüencial utilizado para identificar o boleto. Carteira 14 - SR - Cobranca sem Registro: Fixo 2 mais 8 dígitos (ex: 8200000001)

Raises:



58
59
60
61
62
63
64
65
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 58

def numero_documento
  case self.carteira
  when 'SR'
    "82#{@numero_documento.to_s.rjust(8, '0')}"
  else
    raise Brcobranca::NaoImplementado.new("Tipo de convênio não implementado.")
  end
end

#valor_carteiraObject



27
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 27

alias :valor_carteira :carteira

#valor_documento_formatadoString

Valor total do documento

Returns:

  • (String)

    10 caracteres numéricos.



23
24
25
# File 'lib/brcobranca/boleto/banco_caixa.rb', line 23

def valor_documento_formatado
  self.valor_documento.limpa_valor_moeda.to_s.rjust(10,'0')
end