Class: Brcobranca::Boleto::Safra

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

Overview

Banco Safra

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

#banco_dv, #codigo_barras, #fator_vencimento, #initialize, #logotipo, #valor_documento

Methods included from Template::Base

define_template

Methods included from Validations

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

Constructor Details

This class inherits a constructor from Brcobranca::Boleto::Base

Instance Attribute Details

#agencia_dvObject

REQUERIDO: Dígito da Agência



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

def agencia_dv
  @agencia_dv
end

#conta_corrente_dvObject

REQUERIDO: Dígito da conta



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

def conta_corrente_dv
  @conta_corrente_dv
end

Instance Method Details

#agencia=(valor) ⇒ String

Agência

Returns:

  • (String)

    4 caracteres numéricos.



29
30
31
# File 'lib/brcobranca/boleto/safra.rb', line 29

def agencia=(valor)
  @agencia = valor.to_s.rjust(4, '0') if valor
end

#agencia_conta_boletoString

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

Examples:

boleto.agencia_conta_boleto #=> "08111 / 536788"

Returns:

  • (String)


67
68
69
# File 'lib/brcobranca/boleto/safra.rb', line 67

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

#bancoString

Codigo do banco emissor (3 dígitos sempre)

Returns:

  • (String)

    3 caracteres numéricos.



22
23
24
# File 'lib/brcobranca/boleto/safra.rb', line 22

def banco
  '422'
end

#codigo_barras_segunda_parteString

Segunda parte do código de barras.

ORMATAÇÃO DO CÓDIGO DE BARRAS - COBRANÇA REGISTRADA Campo Significado

Formato Posições Conteúdo DE

ATÉBanco Banco Beneficiário do boleto 9 (03) 1 3 422 Moeda Código da moeda 9 (01) 4 4 9 = real DAC DAC - Dígito de auto conferência 9 (01) 5 5 Dígito de auto conferência Fator de Vencimento Data de vencimento do título 9(04) 6 9 DV Valor Valor do boleto 9 (10) 10 19 Valor do Boleto com zeros a esquerda Campo Livre Sistema 9 (01) 20 20 7 = Dígito do Bco Safra Campo Livre Agência 9 (05) 21 25 (05) Agência do cliente Safra Campo Livre Cliente 9 (09) 26 34 No da conta Campo Livre Nosso Número 9 (09) 35 43 Nosso Número Campo Livre Tipo cobrança 9 (01)

44 44

2 = cobrança registrada

Returns:

  • (String)

    25 caracteres numéricos.



147
148
149
# File 'lib/brcobranca/boleto/safra.rb', line 147

def codigo_barras_segunda_parte
  "7#{agencia}#{agencia_dv}#{conta_corrente}#{conta_corrente_dv}#{nosso_numero}#{nosso_numero_dv}2"
end

#conta_corrente=(valor) ⇒ String

Conta corrente

Returns:

  • (String)

    8 caracteres numéricos.



35
36
37
# File 'lib/brcobranca/boleto/safra.rb', line 35

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

#nosso_numero=(valor) ⇒ String

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

Returns:

  • (String)

    8 caracteres numéricos.



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

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

#nosso_numero_boletoString

Nosso número para exibir no boleto.

Examples:

boleto.nosso_numero_boleto #=> "175/12345678-4"

Returns:

  • (String)


59
60
61
# File 'lib/brcobranca/boleto/safra.rb', line 59

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

#nosso_numero_dvString

Dígito verificador do nosso número.

Returns:

  • (String)

    1 caracteres numéricos.



48
49
50
51
52
53
# File 'lib/brcobranca/boleto/safra.rb', line 48

def nosso_numero_dv
  nosso_numero.modulo11(
    reverse: false,
    mapeamento: { 10 => 0, 11 => 1 }
  ) { |total| 11 - (total % 11) }
end