Module: BrBoleto::Remessa::Cnab400::Helper::Detalhe

Included in:
Base
Defined in:
lib/br_boleto/remessa/cnab400/helper/detalhe.rb

Instance Method Summary collapse

Instance Method Details

#detalhe_posicao_001_001Object

Identificação do Registro Detalhe Padrão: 1 Tipo: Numero Tamanho: 001



42
43
44
# File 'lib/br_boleto/remessa/cnab400/helper/detalhe.rb', line 42

def detalhe_posicao_001_001
  '1'
end

#detalhe_posicao_002_003Object

Tipo de inscrição do beneficiario 01 = CPF 02 = CNPJ Tipo: Numero Tamanho: 002



51
52
53
# File 'lib/br_boleto/remessa/cnab400/helper/detalhe.rb', line 51

def detalhe_posicao_002_003
  conta.tipo_cpf_cnpj
end

#detalhe_posicao_004_017Object

CNPJ/CPF do beneficiário Tipo: Numero Tamanho: 014



58
59
60
# File 'lib/br_boleto/remessa/cnab400/helper/detalhe.rb', line 58

def detalhe_posicao_004_017
  "#{conta.cpf_cnpj}".adjust_size_to(14, '0', :right)
end

#detalhe_posicao_018_037Object

Informações da conta Tipo: Numero Tamanho: 20



65
66
67
# File 'lib/br_boleto/remessa/cnab400/helper/detalhe.rb', line 65

def detalhe_posicao_018_037
  informacoes_da_conta(:detalhe)
end

#detalhe_posicao_038_062Object

Numero de controle do participante Padrão: “ ” Brancos Tipo: String Tamanho: 25



73
74
75
# File 'lib/br_boleto/remessa/cnab400/helper/detalhe.rb', line 73

def detalhe_posicao_038_062 
  ''.adjust_size_to(25)
end

#detalhe_posicao_063_076(pagamento, sequencial) ⇒ Object

Nosso numero e informações do pagaemnto Tamanho: 14



79
80
81
# File 'lib/br_boleto/remessa/cnab400/helper/detalhe.rb', line 79

def detalhe_posicao_063_076(pagamento, sequencial)
  dados_do_pagamento(pagamento)
end

#detalhe_posicao_077_108(pagamento, sequencial) ⇒ Object

Diferente para cada banco Tipo: X N Tamanho: 32

Raises:

  • (NotImplementedError)


86
87
88
# File 'lib/br_boleto/remessa/cnab400/helper/detalhe.rb', line 86

def detalhe_posicao_077_108(pagamento, sequencial)
  raise NotImplementedError.new("Sobreescreva o metodo #detalhe_posicao_077_108 para a class #{self}")
end

#detalhe_posicao_109_110(pagamento, sequencial) ⇒ Object

Comando/Movimento Tipo: N Padrão: ‘01’ = Registro de títulos Tamanho: 2



94
95
96
# File 'lib/br_boleto/remessa/cnab400/helper/detalhe.rb', line 94

def detalhe_posicao_109_110(pagamento, sequencial)
  "#{pagamento.identificacao_ocorrencia}".adjust_size_to(2, '0', :right)
end

#detalhe_posicao_111_120(pagamento, sequencial) ⇒ Object

Seu número Tipo: N Tamanho: 10



101
102
103
# File 'lib/br_boleto/remessa/cnab400/helper/detalhe.rb', line 101

def detalhe_posicao_111_120(pagamento, sequencial)
  "#{pagamento.numero_documento}".adjust_size_to(10, '0', :right)
end

#detalhe_posicao_121_160(pagamento, sequencial) ⇒ Object

Informações do pagamento Tipo: XN Tamanho: 40



108
109
110
# File 'lib/br_boleto/remessa/cnab400/helper/detalhe.rb', line 108

def detalhe_posicao_121_160(pagamento, sequencial)
  informacoes_do_pagamento(pagamento, sequencial)
end

#detalhe_posicao_161_218(pagamento, sequencial) ⇒ Object

Informações de multa e juros Tipo: XN Tamanho: 58



115
116
117
# File 'lib/br_boleto/remessa/cnab400/helper/detalhe.rb', line 115

def detalhe_posicao_161_218(pagamento, sequencial)
  detalhe_multas_e_juros_do_pagamento(pagamento, sequencial)
end

#detalhe_posicao_219_394(pagamento, sequencial) ⇒ Object

Informações do sacado Tipo: XN Tamanho: 176



122
123
124
# File 'lib/br_boleto/remessa/cnab400/helper/detalhe.rb', line 122

def detalhe_posicao_219_394(pagamento, sequencial)
  informacoes_do_sacado(pagamento, sequencial)
end

#detalhe_posicao_395_400(pagamento, sequencial) ⇒ Object

Sequencial do registro Tipo: N Tamanho: 6



129
130
131
# File 'lib/br_boleto/remessa/cnab400/helper/detalhe.rb', line 129

def detalhe_posicao_395_400(pagamento, sequencial)
  "#{sequencial}".adjust_size_to(6, '0', :right)
end

#monta_detalhe(pagamento, sequencial) ⇒ String

Monta o registro segmento P do arquivo

Parameters:

  • pagamento (BrBoleto::Remessa::Pagamento)

    objeto contendo os detalhes do boleto (valor, vencimento, sacado, etc)

  • nr_lote (Integer)

    numero do lote que o segmento esta inserido

  • sequencial (Integer)

    numero sequencial do registro no lote

Returns:

  • (String)


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/br_boleto/remessa/cnab400/helper/detalhe.rb', line 17

def monta_detalhe(pagamento, sequencial)
  # campos com * na frente nao foram implementados
  #                                                      # DESCRICAO                             TAMANHO
  detalhe =  ''

  detalhe << detalhe_posicao_001_001                        # Identificação do Registro Detalhe
  detalhe << detalhe_posicao_002_003                        # Tipo de inscrição do beneficiario
  detalhe << detalhe_posicao_004_017                        # CNPJ do beneficiario
  detalhe << detalhe_posicao_018_037                        # Informações da conta
  detalhe << detalhe_posicao_038_062                        # Numero de controle do participante
  detalhe << detalhe_posicao_063_076(pagamento, sequencial) # Nosso número com DV
  detalhe << detalhe_posicao_077_108(pagamento, sequencial) # Diferente para cada banco
  detalhe << detalhe_posicao_109_110(pagamento, sequencial) # Comando/Movimento
  detalhe << detalhe_posicao_111_120(pagamento, sequencial) # Seu número
  detalhe << detalhe_posicao_121_160(pagamento, sequencial) # Informações do pagamento
  detalhe << detalhe_posicao_161_218(pagamento, sequencial) # Informações de multa e juros
  detalhe << detalhe_posicao_219_394(pagamento, sequencial) # Informações do sacado/pagador
  detalhe << detalhe_posicao_395_400(pagamento, sequencial) # Sequencial
  detalhe.upcase
end