Class: RubyCnab240::Arquivo::Header

Inherits:
RubyCnab240::Arquivo show all
Defined in:
lib/rubycnab240/arquivo/header.rb

Instance Attribute Summary collapse

Attributes inherited from RubyCnab240::Arquivo

#data_dos_pagamentos, #header, #lot_header, #lot_trailer, #segments, #trailer

Instance Method Summary collapse

Methods inherited from RubyCnab240::Arquivo

#<<, #number_of_segments, #save_to_file

Constructor Details

#initialize(fields = {}) ⇒ Header

Returns a new instance of Header.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/rubycnab240/arquivo/header.rb', line 23

def initialize(fields = {})
  @codigo_do_banco_na_compensacao = fields[:codigo_do_banco_na_compensacao].to_s[0..2].rjust(3, '0') #default: 001
  @lote_do_servico = fields[:lote_do_servico].to_s[0..3].rjust(4, '0')
  @tipo_de_registro = fields[:tipo_de_registro].to_s[0..0].rjust(1, '0')
  @uso_exclusivo_febraban = ' ' * 9
  @tipo_de_inscricao_da_empresa = fields[:tipo_de_inscricao_da_empresa].to_s[0..0].rjust(1, '0') #1 – para CPF e 2 – para CNPJ.
  @numero_de_inscricao_da_empresa = fields[:numero_de_inscricao_da_empresa].to_s[0..13].rjust(14, '0') #Informar número da inscrição (CPF ou CNPJ) da Empresa, alinhado à direita com zeros à esquerda.

  #bb
  #Preencher com “0009999990126       “, onde 999999 informar o número do convênio de pagamento, alinhado à direita com zeros à esquerda seguido de “0126” para pagamento e demais posições com brancos (espaços).
  @codigo_do_convenio_do_banco = fields[:codigo_do_convenio_do_banco].to_s[0..8].rjust(9, '0') #Informar o convênio de pagamento, completando com zeros à esquerda;
  @bb2 = fields[:bb2] = '0126'
  @bb3 = fields[:bb3] = '     '
  @bb4 = fields[:bb4] = '  '

  @agencia_mantenedora_da_conta = fields[:agencia_mantenedora_da_conta].to_s[0..4].rjust(5, '0')
  @digito_verificador_da_agencia = fields[:digito_verificador_da_agencia].to_s[0..0].upcase.rjust(1, '0')
  @numero_da_conta_corrente = fields[:numero_da_conta_corrente].to_s[0..11].rjust(12, '0')
  @digito_verificador_da_conta = fields[:digito_verificador_da_conta].to_s[0..0].upcase.rjust(1, '0')
  @digito_verificador_da_agencia_e_conta = '0'

  @nome_da_empresa = fields[:nome_da_empresa].to_s[0..29].upcase.ljust(30, ' ')
  @nome_do_banco = fields[:nome_do_banco].to_s[0..29].upcase.ljust(30, ' ')
  @uso_exclusivo_febraban2 = '          '
  @codigo_remessa_retorno = '1' #1 – para arquivo remessa. 2 – quando arquivo retorno.
  @data_de_geracao_do_arquivo = Date.today.strftime("%d%m%Y")
  @hora_de_geracao_do_arquivo = Time.now.strftime("%H%M%S")
  @numero_sequencial_de_arquivo = fields[:numero_sequencial_de_arquivo].to_s[0..5].upcase.rjust(6, '0')
  @versao_do_leiaute_de_arquivo = '050'
  @densidade_de_gravacao_de_arquivo = '0' * 5
  @para_uso_reservado_do_banco = '                    '
  @para_uso_reservado_da_empresa = fields[:para_uso_reservado_da_empresa].to_s[0..19].rjust(20, ' ') #uso reservado da empresa
  @uso_exclusivo_febraban3 = '                             '
end

Instance Attribute Details

#agencia_mantenedora_da_contaObject

Returns the value of attribute agencia_mantenedora_da_conta.



8
9
10
# File 'lib/rubycnab240/arquivo/header.rb', line 8

def agencia_mantenedora_da_conta
  @agencia_mantenedora_da_conta
end

#codigo_do_banco_na_compensacaoObject

Returns the value of attribute codigo_do_banco_na_compensacao.



2
3
4
# File 'lib/rubycnab240/arquivo/header.rb', line 2

def codigo_do_banco_na_compensacao
  @codigo_do_banco_na_compensacao
end

#codigo_do_convenio_do_bancoObject

Returns the value of attribute codigo_do_convenio_do_banco.



7
8
9
# File 'lib/rubycnab240/arquivo/header.rb', line 7

def codigo_do_convenio_do_banco
  @codigo_do_convenio_do_banco
end

#codigo_remessa_retornoObject

Returns the value of attribute codigo_remessa_retorno.



15
16
17
# File 'lib/rubycnab240/arquivo/header.rb', line 15

def codigo_remessa_retorno
  @codigo_remessa_retorno
end

#digito_verificador_da_agenciaObject

Returns the value of attribute digito_verificador_da_agencia.



9
10
11
# File 'lib/rubycnab240/arquivo/header.rb', line 9

def digito_verificador_da_agencia
  @digito_verificador_da_agencia
end

#digito_verificador_da_agencia_e_contaObject

Returns the value of attribute digito_verificador_da_agencia_e_conta.



12
13
14
# File 'lib/rubycnab240/arquivo/header.rb', line 12

def digito_verificador_da_agencia_e_conta
  @digito_verificador_da_agencia_e_conta
end

#digito_verificador_da_contaObject

Returns the value of attribute digito_verificador_da_conta.



11
12
13
# File 'lib/rubycnab240/arquivo/header.rb', line 11

def digito_verificador_da_conta
  @digito_verificador_da_conta
end

#lote_do_servicoObject

Returns the value of attribute lote_do_servico.



3
4
5
# File 'lib/rubycnab240/arquivo/header.rb', line 3

def lote_do_servico
  @lote_do_servico
end

#nome_da_empresaObject

Returns the value of attribute nome_da_empresa.



13
14
15
# File 'lib/rubycnab240/arquivo/header.rb', line 13

def nome_da_empresa
  @nome_da_empresa
end

#nome_do_bancoObject

Returns the value of attribute nome_do_banco.



14
15
16
# File 'lib/rubycnab240/arquivo/header.rb', line 14

def nome_do_banco
  @nome_do_banco
end

#numero_da_conta_correnteObject

Returns the value of attribute numero_da_conta_corrente.



10
11
12
# File 'lib/rubycnab240/arquivo/header.rb', line 10

def numero_da_conta_corrente
  @numero_da_conta_corrente
end

#numero_de_inscricao_da_empresaObject

Returns the value of attribute numero_de_inscricao_da_empresa.



6
7
8
# File 'lib/rubycnab240/arquivo/header.rb', line 6

def numero_de_inscricao_da_empresa
  @numero_de_inscricao_da_empresa
end

#numero_sequencial_de_arquivoObject

Returns the value of attribute numero_sequencial_de_arquivo.



16
17
18
# File 'lib/rubycnab240/arquivo/header.rb', line 16

def numero_sequencial_de_arquivo
  @numero_sequencial_de_arquivo
end

#para_uso_reservado_da_empresaObject

Returns the value of attribute para_uso_reservado_da_empresa.



17
18
19
# File 'lib/rubycnab240/arquivo/header.rb', line 17

def para_uso_reservado_da_empresa
  @para_uso_reservado_da_empresa
end

#tipo_de_inscricao_da_empresaObject

Returns the value of attribute tipo_de_inscricao_da_empresa.



5
6
7
# File 'lib/rubycnab240/arquivo/header.rb', line 5

def tipo_de_inscricao_da_empresa
  @tipo_de_inscricao_da_empresa
end

#tipo_de_registroObject

Returns the value of attribute tipo_de_registro.



4
5
6
# File 'lib/rubycnab240/arquivo/header.rb', line 4

def tipo_de_registro
  @tipo_de_registro
end

#uso_exclusivo_febrabanObject (readonly)

Returns the value of attribute uso_exclusivo_febraban.



19
20
21
# File 'lib/rubycnab240/arquivo/header.rb', line 19

def uso_exclusivo_febraban
  @uso_exclusivo_febraban
end

#uso_exclusivo_febraban2Object (readonly)

Returns the value of attribute uso_exclusivo_febraban2.



20
21
22
# File 'lib/rubycnab240/arquivo/header.rb', line 20

def uso_exclusivo_febraban2
  @uso_exclusivo_febraban2
end

#uso_exclusivo_febraban3Object (readonly)

Returns the value of attribute uso_exclusivo_febraban3.



21
22
23
# File 'lib/rubycnab240/arquivo/header.rb', line 21

def uso_exclusivo_febraban3
  @uso_exclusivo_febraban3
end

Instance Method Details

#to_stringObject



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/rubycnab240/arquivo/header.rb', line 58

def to_string
  header = String.new

  header << @codigo_do_banco_na_compensacao
  header << @lote_do_servico
  header << @tipo_de_registro
  header << @uso_exclusivo_febraban
  header << @tipo_de_inscricao_da_empresa
  header << @numero_de_inscricao_da_empresa
  header << @codigo_do_convenio_do_banco
  header << @bb2
  header << @bb3
  header << @bb4
  header << @agencia_mantenedora_da_conta
  header << @digito_verificador_da_agencia
  header << @numero_da_conta_corrente
  header << @digito_verificador_da_conta
  header << @digito_verificador_da_agencia_e_conta
  header << @nome_da_empresa
  header << @nome_do_banco
  header << @uso_exclusivo_febraban2
  header << @codigo_remessa_retorno
  header << @data_de_geracao_do_arquivo
  header << @hora_de_geracao_do_arquivo
  header << @numero_sequencial_de_arquivo
  header << @versao_do_leiaute_de_arquivo
  header << @densidade_de_gravacao_de_arquivo
  header << @para_uso_reservado_do_banco
  header << @para_uso_reservado_da_empresa
  header << @uso_exclusivo_febraban3
end