Class: RubyCnab240::Arquivo::Lote::Header

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

Instance Attribute Summary collapse

Attributes inherited from RubyCnab240::Arquivo::Lote

#lot_header, #lot_trailer, #lots

Attributes inherited from RubyCnab240::Arquivo

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

Instance Method Summary collapse

Methods inherited from RubyCnab240::Arquivo::Lote

#<<

Methods inherited from RubyCnab240::Arquivo

#<<, #number_of_segments, #save_to_file

Constructor Details

#initialize(fields = {}) ⇒ Header

Returns a new instance of Header.



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
57
# File 'lib/rubycnab240/arquivo/lotes/header.rb', line 28

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] = '1'
  @tipo_de_operacao = fields[:tipo_de_operacao] = 'C'
  @tipo_de_servico = fields[:tipo_de_servico] = '20' #Os tipos de serviços aceitos pelo BB são somente '20' (Pagamento a Fornecedores), '30' (Pagamento de Salários) e '98' (Pagamentos Diversos).
  @forma_de_lancamento = fields[:forma_de_lancamento] || '41'  #Formas de lançamentos aceitos pelo BB quando utilizados os segmentos A e B : 01 para Crédito em Conta Corrente, 02 para Pagamento Contra0Recibo, 03 para DOC/TED, 04 para Cartão Salário, 05 para Crédito em Conta Poupança, 10 para Ordem de Pagamento, 41 para TED Outra Titularidade, e 43 para TED Mesma Titularidade. Obs.: no caso da forma de lançamento 03, 41 ou 43, há complementação de informação do campo “Código da Câmara de Compensação”, posições 18 a 20 do segmento A.
  @numero_da_versao_do_leiaute_do_lote = '031' #Campo não criticado pelo sistema. Informar Zeros OU se preferir, informar número da versão do leiaute do Lote que foi utilizado como base para formatação dos campos. Versões disponíveis: 043, 042, 041, 040, 031, 030 ou 020. A versão do Lote quando informada deve estar condizente com a versão do Arquivo (posições 164 a 166 do Header de Arquivo). Ou seja, para utilizar 043 no lote o Header do arquivo deve conter 084, para 042 no lote o Header do arquivo deve conter 083 ou 082, para 041 ou 040 no lote o Header do arquivo deve conter 080, para 031 no lote o Header do arquivo deve conter 050, para 030 no lote o Header do Arquivo deve conter 040, e para 020 no lote o Header do Arquivo deve conter 030.
  @uso_exclusivo_febraban = ' '
  @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.

  #Codigo do Convenio do Banco
  @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.rjust(30, ' ')

  @mensagem_1 = fields[:mensagem_1] = '                                        '
  @campos_opcionais_de_endereco = fields[:campos_opcionais_de_endereco].to_s[0..79].upcase.ljust(80, ' ')
  @uso_exclusivo_febraban2 = '        '
  @codigo_para_ocorrencias_de_retorno = '          '
end

Instance Attribute Details

#agencia_mantenedora_da_contaObject

Returns the value of attribute agencia_mantenedora_da_conta.



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

def agencia_mantenedora_da_conta
  @agencia_mantenedora_da_conta
end

#bb2Object (readonly)

Returns the value of attribute bb2.



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

def bb2
  @bb2
end

#bb3Object (readonly)

Returns the value of attribute bb3.



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

def bb3
  @bb3
end

#bb4Object (readonly)

Returns the value of attribute bb4.



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

def bb4
  @bb4
end

#campos_opcionais_de_enderecoObject

Returns the value of attribute campos_opcionais_de_endereco.



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

def campos_opcionais_de_endereco
  @campos_opcionais_de_endereco
end

#codigo_do_banco_na_compensacaoObject

Returns the value of attribute codigo_do_banco_na_compensacao.



2
3
4
# File 'lib/rubycnab240/arquivo/lotes/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/lotes/header.rb', line 7

def codigo_do_convenio_do_banco
  @codigo_do_convenio_do_banco
end

#codigo_para_ocorrencias_de_retornoObject (readonly)

Returns the value of attribute codigo_para_ocorrencias_de_retorno.



25
26
27
# File 'lib/rubycnab240/arquivo/lotes/header.rb', line 25

def codigo_para_ocorrencias_de_retorno
  @codigo_para_ocorrencias_de_retorno
end

#digito_verificador_da_agenciaObject

Returns the value of attribute digito_verificador_da_agencia.



9
10
11
# File 'lib/rubycnab240/arquivo/lotes/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/lotes/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/lotes/header.rb', line 11

def digito_verificador_da_conta
  @digito_verificador_da_conta
end

#forma_de_lancamentoObject

Returns the value of attribute forma_de_lancamento.



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

def forma_de_lancamento
  @forma_de_lancamento
end

#lote_do_servicoObject

Returns the value of attribute lote_do_servico.



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

def lote_do_servico
  @lote_do_servico
end

#mensagem_1Object (readonly)

Returns the value of attribute mensagem_1.



23
24
25
# File 'lib/rubycnab240/arquivo/lotes/header.rb', line 23

def mensagem_1
  @mensagem_1
end

#nome_da_empresaObject

Returns the value of attribute nome_da_empresa.



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

def nome_da_empresa
  @nome_da_empresa
end

#numero_da_conta_correnteObject

Returns the value of attribute numero_da_conta_corrente.



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

def numero_da_conta_corrente
  @numero_da_conta_corrente
end

#numero_da_versao_do_leiaute_do_loteObject (readonly)

Returns the value of attribute numero_da_versao_do_leiaute_do_lote.



26
27
28
# File 'lib/rubycnab240/arquivo/lotes/header.rb', line 26

def numero_da_versao_do_leiaute_do_lote
  @numero_da_versao_do_leiaute_do_lote
end

#numero_de_inscricao_da_empresaObject

Returns the value of attribute numero_de_inscricao_da_empresa.



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

def numero_de_inscricao_da_empresa
  @numero_de_inscricao_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/lotes/header.rb', line 5

def tipo_de_inscricao_da_empresa
  @tipo_de_inscricao_da_empresa
end

#tipo_de_operacaoObject (readonly)

Returns the value of attribute tipo_de_operacao.



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

def tipo_de_operacao
  @tipo_de_operacao
end

#tipo_de_registroObject (readonly)

Returns the value of attribute tipo_de_registro.



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

def tipo_de_registro
  @tipo_de_registro
end

#tipo_de_servicoObject (readonly)

Returns the value of attribute tipo_de_servico.



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

def tipo_de_servico
  @tipo_de_servico
end

#uso_exclusivo_febrabanObject (readonly)

Returns the value of attribute uso_exclusivo_febraban.



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

def uso_exclusivo_febraban
  @uso_exclusivo_febraban
end

#uso_exclusivo_febraban2Object (readonly)

Returns the value of attribute uso_exclusivo_febraban2.



24
25
26
# File 'lib/rubycnab240/arquivo/lotes/header.rb', line 24

def uso_exclusivo_febraban2
  @uso_exclusivo_febraban2
end

Instance Method Details

#to_stringObject



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
# File 'lib/rubycnab240/arquivo/lotes/header.rb', line 59

def to_string
  header = String.new

  header << self.codigo_do_banco_na_compensacao
  header << self.lote_do_servico
  header << self.tipo_de_registro
  header << self.tipo_de_operacao
  header << self.tipo_de_servico
  header << self.forma_de_lancamento
  header << self.numero_da_versao_do_leiaute_do_lote
  header << self.uso_exclusivo_febraban
  header << self.tipo_de_inscricao_da_empresa
  header << self.numero_de_inscricao_da_empresa
  header << self.codigo_do_convenio_do_banco
  header << self.bb2
  header << self.bb3
  header << self.bb4
  header << self.agencia_mantenedora_da_conta
  header << self.digito_verificador_da_agencia
  header << self.numero_da_conta_corrente
  header << self.digito_verificador_da_conta
  header << self.digito_verificador_da_agencia_e_conta
  header << self.nome_da_empresa
  header << self.mensagem_1
  header << self.campos_opcionais_de_endereco
  header << self.uso_exclusivo_febraban2
  header << self.codigo_para_ocorrencias_de_retorno
end