Class: Brcobranca::Boleto::Unicred

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

Overview

Banco Unicred

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, #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 = {}) ⇒ Unicred

Nova instancia do Unicred

Parameters:

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

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

def initialize(campos = {})
  campos = { carteira: '3',
    especie_documento: 'DM',
    local_pagamento: 'PAGÁVEL PREFERENCIALMENTE NAS AGÊNCIAS DA UNICRED'
  }.merge!(campos)
  super(campos)
end

Instance Attribute Details

#byte_idtObject

REQUERIDO: Byte de identificação do cedente do bloqueto utilizado para compor o nosso número.


10
11
12
# File 'lib/brcobranca/boleto/unicred.rb', line 10

def byte_idt
  @byte_idt
end

#postoObject

REQUERIDO: Código do posto da cooperativa de crédito


7
8
9
# File 'lib/brcobranca/boleto/unicred.rb', line 7

def posto
  @posto
end

Instance Method Details

#agencia_conta_boletoObject


107
108
109
# File 'lib/brcobranca/boleto/unicred.rb', line 107

def agencia_conta_boleto
  "#{agencia}.#{posto}.#{convenio}"
end

#agencia_posto_contaObject


111
112
113
# File 'lib/brcobranca/boleto/unicred.rb', line 111

def agencia_posto_conta
  "#{agencia}#{posto}#{convenio}"
end

#bancoString

Codigo do banco emissor (3 dígitos sempre)

Returns:

  • (String)

    3 caracteres numéricos.


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

def banco
  '748'
end

#banco_dvString

Dígito verificador do banco

Returns:

  • (String)

    1 caractere.


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

def banco_dv
  'X'
end

#carteira=(valor) ⇒ String

Carteira

Returns:

  • (String)

    2 caracteres numéricos.


44
45
46
# File 'lib/brcobranca/boleto/unicred.rb', line 44

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

#codigo_barras_segunda_parteObject

Segunda parte do código de barras. Posição Tamanho Conteúdo 20 – 20 01 Código numérico correspondente ao tipo de cobrança: “1” – Com Registro “3 – Sem Registro”. Obs.: O SICREDI não validará este campo. 21 – 21 01 Código numérico correspondente ao tipo de carteira: “1” - carteira simples 22 – 30 09 Nosso número 31 – 34 # 04 # Cooperativa de crédito/agência beneficiária 35 – 36 # 02 # Posto da cooperativa de crédito/agência beneficiária 37 – 41 # 05 # Código do beneficiário 42 – 42 # 01 # Será 1 (um) quando houver valor expresso no campo “valor do documento” 43 – 43 # 01 # Filler – zeros “0” 44 – 44 # 01 # DV do campo livre calculado por módulo 11 com aproveitamento total (resto igual a 0 ou 1 DV cai para 0)


126
127
128
129
# File 'lib/brcobranca/boleto/unicred.rb', line 126

def codigo_barras_segunda_parte
  campo_livre = "#{carteira}1#{nosso_numero_codigo_barra}#{agencia_posto_conta}10"
  campo_livre + campo_livre.modulo11(mapeamento: mapeamento_para_modulo_11).to_s
end

#conta_corrente=(valor) ⇒ String

Número da conta corrente

Returns:

  • (String)

    5 caracteres numéricos.


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

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

#convenio=(valor) ⇒ String

Código Beneficiário

Returns:

  • (String)

    5 caracteres numéricos.


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

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

#nosso_numero=(valor) ⇒ String

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

Returns:

  • (String)

    5 caracteres numéricos.


96
97
98
# File 'lib/brcobranca/boleto/unicred.rb', line 96

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

#nosso_numero_boletoString

Nosso número para exibir no boleto. O campo Nosso Número deve ser apresentado no formato AA/BXXXXX-D, onde: AA = Ano atual B = Byte que pode ser de 2 a 9. Somente será 1 se forem boletos pré-impressos. XXXXX = número sequencial D = dígito verificador calculado

Examples:

boleto.nosso_numero_boleto #=> "14/200022-5"

Returns:

  • (String)

82
83
84
# File 'lib/brcobranca/boleto/unicred.rb', line 82

def nosso_numero_boleto
  "#{nosso_numero_with_byte_idt[0..1]}/#{nosso_numero_with_byte_idt[2..-1]}-#{nosso_numero_dv}"
end

#nosso_numero_codigo_barraObject


86
87
88
# File 'lib/brcobranca/boleto/unicred.rb', line 86

def nosso_numero_codigo_barra
  nosso_numero_boleto.gsub(/\D/, '')
end

#nosso_numero_dvInteger

Dígito verificador do nosso número

Returns:

  • (Integer)

    1 caracteres numéricos.


102
103
104
105
# File 'lib/brcobranca/boleto/unicred.rb', line 102

def nosso_numero_dv
  "#{agencia_posto_conta}#{nosso_numero_with_byte_idt}"
    .modulo11(mapeamento: mapeamento_para_modulo_11)
end

#nosso_numero_with_byte_idtObject


90
91
92
# File 'lib/brcobranca/boleto/unicred.rb', line 90

def nosso_numero_with_byte_idt
  "#{data_processamento.strftime('%y')}#{byte_idt}#{nosso_numero}"
end