Class: Brcobranca::Boleto::Credisis

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

Overview

CrediSIS

Instance Attribute Summary

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, #descontos_e_abatimentos, #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

#codigo_barras, #fator_vencimento, #logotipo, #nosso_numero_dv, #valor_documento

Methods included from Template::Base

define_template

Methods included from Validations

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

Constructor Details

#initialize(campos = {}) ⇒ Credisis

Nova instancia do CrediSIS

Parameters:

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


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

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

Instance Method Details

#agencia_conta_boletoString

Agência + conta corrente do cliente para exibir no boleto.

Examples:

boleto.agencia_conta_boleto #=> "0001-9 / 0000002-7"

Returns:

  • (String)


85
86
87
# File 'lib/brcobranca/boleto/credisis.rb', line 85

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

#agencia_dvString

Retorna dígito verificador da agência

Returns:

  • (String)

    1 caracteres numéricos.



45
46
47
# File 'lib/brcobranca/boleto/credisis.rb', line 45

def agencia_dv
  agencia.modulo11(mapeamento: { 10 => 'X' })
end

#bancoString

Codigo do banco emissor (3 dígitos sempre)

Returns:

  • (String)

    3 caracteres numéricos.



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

def banco
  '097'
end

#banco_dvString

Dígito verificador do banco

Returns:

  • (String)

    1 caracteres numéricos.



38
39
40
# File 'lib/brcobranca/boleto/credisis.rb', line 38

def banco_dv
  '3'
end

#carteira=(valor) ⇒ String

Carteira

Returns:

  • (String)

    2 caracteres numéricos.



31
32
33
# File 'lib/brcobranca/boleto/credisis.rb', line 31

def carteira=(valor)
  @carteira = valor.to_s.rjust(2, '0') if valor
end

#codigo_barras_segunda_parteString

Segunda parte do código de barras.

    • Número do Banco: “097”

    • Moeda: “9”

    • DV do Código de Barras, Baseado no Módulo 11 (Vide Anexo X).

    • Fator de Vencimento do Boleto (Vide Anexo VII).

    • Valor do Título, expresso em Reais, com 02 casas decimais.

    • Fixo Zeros: Campo com preenchimento Zerado “00000”

    • Composição do Nosso Número: 097XAAAACCCCCCSSSSSS, sendo: Composição do Nosso Número 097 - Fixo X - Módulo 11 do CPF/CNPJ (Incluindo dígitos verificadores) do Beneficiário. AAAA - Código da Agência CrediSIS ao qual o Beneficiário possui Conta. CCCCCC - Código de Convênio do Beneficiário no Sistema CrediSIS SSSSSS - Sequencial Único do Boleto

Returns:

  • (String)

    25 caracteres numéricos.



113
114
115
# File 'lib/brcobranca/boleto/credisis.rb', line 113

def codigo_barras_segunda_parte
  "00000097#{documento_cedente_dv}#{agencia}#{convenio}#{nosso_numero}"
end

#conta_corrente=(valor) ⇒ String

Conta corrente

Returns:

  • (String)

    7 caracteres numéricos.



51
52
53
# File 'lib/brcobranca/boleto/credisis.rb', line 51

def conta_corrente=(valor)
  @conta_corrente = valor.to_s.rjust(7, '0') if valor
end

#conta_corrente_dvString

Dígito verificador da conta corrente

Returns:

  • (String)

    1 caracteres numéricos.



63
64
65
# File 'lib/brcobranca/boleto/credisis.rb', line 63

def conta_corrente_dv
  conta_corrente.modulo11(mapeamento: { 10 => 'X' })
end

#convenio=(valor) ⇒ String

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

Returns:

  • (String)

    6 caracteres numéricos.



57
58
59
# File 'lib/brcobranca/boleto/credisis.rb', line 57

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

#documento_cedente_dvObject

X – Módulo 11 do CPF/CNPJ (incluindo dígitos verificadores) do Beneficiário emissor Obs.: Caso for CPF, utilizar 9 como limitador da multiplicação. Caso for CNPJ, utilizar 8 no limitador da multiplicação.



92
93
94
95
96
# File 'lib/brcobranca/boleto/credisis.rb', line 92

def documento_cedente_dv
  options = { mapeamento: { 0 => 1, 10 => 1, 11 => 1 } }
  options.merge(multiplicador: [8, 7, 6, 5, 4, 3, 2]) if documento_cedente.to_s.size > 11
  documento_cedente.modulo11(options)
end

#nosso_numero=(valor) ⇒ String

Nosso número

Returns:

  • (String)

    6 caracteres numéricos.



69
70
71
# File 'lib/brcobranca/boleto/credisis.rb', line 69

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

#nosso_numero_boletoString

Nosso número para exibir no boleto.

Examples:

boleto.nosso_numero_boleto #=> "10000000027000095-7"

Returns:

  • (String)


77
78
79
# File 'lib/brcobranca/boleto/credisis.rb', line 77

def nosso_numero_boleto
  "097#{documento_cedente_dv}#{agencia}#{convenio}#{nosso_numero}"
end