Class: Bbrcobranca::Boleto::Santander

Inherits:
Base
  • Object
show all
Defined in:
lib/bbrcobranca/boleto/santander.rb

Overview

Banco Santander

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, #linha_cabecalho1, #linha_cabecalho2, #linha_digitavel, #local_pagamento, #logotipo_cabecalho, #moeda, #nosso_numero, #quantidade, #sacado, #sacado_documento, #sacado_endereco, #valor, #variacao

Instance Method Summary collapse

Methods inherited from Base

#agencia_dv, #banco_dv, #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 = {}) ⇒ Santander

Nova instancia do Santander

Parameters:

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


17
18
19
20
# File 'lib/bbrcobranca/boleto/santander.rb', line 17

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

Instance Attribute Details

#codigo_barrasObject



22
23
24
# File 'lib/bbrcobranca/boleto/santander.rb', line 22

def codigo_barras
  instance_variable_get("@codigo_barras") || super
end

#nosso_numero_dvObject



26
27
28
29
30
31
32
33
34
35
# File 'lib/bbrcobranca/boleto/santander.rb', line 26

def nosso_numero_dv
  if instance_variable_get("@nosso_numero_dv")
    instance_variable_get("@nosso_numero_dv").gsub(/\D/, '')
  else
    nosso_numero.modulo11(
      multiplicador: (2..9).to_a,
      mapeamento: { 10 => 0, 11 => 0 }
    ) { |total| 11 - (total % 11) }
  end
end

Instance Method Details

#agencia_conta_boletoString

Agência + codigo do cedente do cliente para exibir no boleto.

Examples:

boleto.agencia_conta_boleto #=> "0059/1899775"

Returns:

  • (String)


75
76
77
# File 'lib/bbrcobranca/boleto/santander.rb', line 75

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

#bancoString

Codigo do banco emissor (3 dígitos sempre)

Returns:

  • (String)

    3 caracteres numéricos.



40
41
42
# File 'lib/bbrcobranca/boleto/santander.rb', line 40

def banco
  '033'
end

#codigo_barras_segunda_parteString

Segunda parte do código de barras. 9(01) | Fixo 9 <br/> 9(07) | Convenio <br/> 9(13) | Nosso Numero Com DV<br/> 9(01) | IOF somente para seguradoras<br/> Fixo 9 9(03) | Carteira de cobrança<br/>

Returns:

  • (String)

    25 caracteres numéricos.



87
88
89
# File 'lib/bbrcobranca/boleto/santander.rb', line 87

def codigo_barras_segunda_parte
  "9#{convenio}00000#{nosso_numero}#{nosso_numero_dv}0#{carteira}"
end

#conta_corrente=(valor) ⇒ String

Número da conta corrente

Returns:

  • (String)

    9 caracteres numéricos.



46
47
48
# File 'lib/bbrcobranca/boleto/santander.rb', line 46

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

#convenio=(valor) ⇒ String

Número do convênio/contrato do cliente junto ao banco. No Santander, é chamado de Código do Cedente.

Returns:

  • (String)

    7 caracteres numéricos.



53
54
55
# File 'lib/bbrcobranca/boleto/santander.rb', line 53

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

#nosso_numero=(valor) ⇒ String

Número sequencial utilizado para identificar o boleto.

Returns:

  • (String)

    7 caracteres numéricos.



59
60
61
# File 'lib/bbrcobranca/boleto/santander.rb', line 59

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

#nosso_numero_boletoString

Nosso número para exibir no boleto.

Examples:

boleto.nosso_numero_boleto #=> "9000272-7"

Returns:

  • (String)


67
68
69
# File 'lib/bbrcobranca/boleto/santander.rb', line 67

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