Class: Brcobranca::Boleto::Citibank

Inherits:
Base
  • Object
show all
Defined in:
lib/brcobranca/boleto/citibank.rb

Overview

Citibank

Instance Attribute Summary collapse

Attributes inherited from Base

#aceite, #agencia, #avalista, #avalista_documento, #carteira, #carteira_label, #cedente, #cedente_endereco, #codigo_servico, #conta_corrente, #convenio, #data_documento, #data_processamento, #data_vencimento, #demonstrativo, #documento_cedente, #documento_numero, #emv, #especie, #especie_documento, #instrucao1, #instrucao2, #instrucao3, #instrucao4, #instrucao5, #instrucao6, #instrucao7, #instrucoes, #local_pagamento, #moeda, #nosso_numero, #quantidade, #sacado, #sacado_documento, #sacado_endereco, #valor, #variacao

Instance Method Summary collapse

Methods inherited from Base

#agencia_dv, #codigo_barras, #conta_corrente_dv, #fator_vencimento, #logotipo, #valor_documento

Methods included from Template::Base

define_template

Methods included from Validations

#errors, included, #invalid?, #valid?

Constructor Details

#initialize(campos = {}) ⇒ Citibank

Returns a new instance of Citibank.

Parameters:

  • campos (Hash) (defaults to: {})


15
16
17
18
19
20
21
# File 'lib/brcobranca/boleto/citibank.rb', line 15

def initialize(campos = {})
  campos = {
    carteira: '3',
    carteira_label: '3'
  }.merge!(campos)
  super(campos)
end

Instance Attribute Details

#portfolioObject

REQUERIDO: Portfolio



8
9
10
# File 'lib/brcobranca/boleto/citibank.rb', line 8

def portfolio
  @portfolio
end

Instance Method Details

#agencia_conta_boletoString

Número da agência/código cedente do cliente para exibir no boleto.

Examples:

boleto.agencia_conta_boleto #=> "1565/100000-4"

Returns:

  • (String)


72
73
74
# File 'lib/brcobranca/boleto/citibank.rb', line 72

def agencia_conta_boleto
  "#{agencia} / #{convenio}"
end

#bancoString

Código do banco emissor

Returns:

  • (String)


25
26
27
# File 'lib/brcobranca/boleto/citibank.rb', line 25

def banco
  '745'
end

#banco_dvString

Returns:

  • (String)


30
31
32
# File 'lib/brcobranca/boleto/citibank.rb', line 30

def banco_dv
  '5'
end

#codigo_barras_segunda_parteString

Monta a segunda parte do código de barras. Descrição do Campo | Posição | Tamanho | Campo | Conteúdo do Campo Código do Produto | 20 | 1 | 6 | 3 - Cobrança com registro / sem registro ou 4 Cobrança de seguro - sem registro Portfólio | 21 a 23 | 3 | 7 | 3 últimos dígitos do campo de identificação da empresa no CITIBANK (Posição 44 a 46 do arquivo retorno) Base | 24 a 29 | 6. | 8. | Sequência | 30 a 31 | 2 | 9. | Dígito Conta Cosmos | 32 | 1 | 10. | Nosso Número + DV | 33 a 44 | 12 | 11. | A discriminação de “Índice”, “Base”, “Seqüência” e “Dígito verificador” podem ser encontrados na Conta Cosmos do cedente da seguinte forma: Ex.: 0.123456.78.9 = Conta Cosmos 0 - Índice 123456 - Base (Posição 24 a 29) 78 - Sequência (Posição 30 a 31) 9 - Dígito Verificador (Posição 32

Returns:

  • (String)


92
93
94
# File 'lib/brcobranca/boleto/citibank.rb', line 92

def codigo_barras_segunda_parte
  "#{carteira}#{portfolio}#{convenio[1..-1]}#{nosso_numero}#{nosso_numero_dv}"
end

#convenio=(valor) ⇒ String

Número do convênio/contrato do cliente junto ao banco.

Returns:

  • (String)

    10 caracteres numéricos.



42
43
44
# File 'lib/brcobranca/boleto/citibank.rb', line 42

def convenio=(valor)
  @convenio = valor.to_s.rjust(10, '0') if valor
end

#nosso_numero=(valor) ⇒ String

Número seqüencial utilizado para identificar o boleto.

Returns:

  • (String)

    11 caracteres numéricos.



48
49
50
# File 'lib/brcobranca/boleto/citibank.rb', line 48

def nosso_numero=(valor)
  @nosso_numero = valor.to_s.rjust(11, '0') if valor
end

#nosso_numero_boletoString

Nosso número, 11 dígitos

Returns:

  • (String)


54
55
56
# File 'lib/brcobranca/boleto/citibank.rb', line 54

def nosso_numero_boleto
  "#{nosso_numero}.#{nosso_numero_dv}"
end

#nosso_numero_dvString

Dígito verificador do Nosso Número Utiliza-se o [-1..-1] para retornar o último caracter

Returns:

  • (String)


61
62
63
64
65
66
# File 'lib/brcobranca/boleto/citibank.rb', line 61

def nosso_numero_dv
  nosso_numero.to_s.modulo11(
    multiplicador: (2..9).to_a,
    mapeamento: { 10 => 0, 11 => 0 }
  ) { |total| 11 - (total % 11) }.to_s
end