Class: Febraban150L

Inherits:
FormatSection
  • Object
show all
Defined in:
lib/formatos/febraban150/febraban_150_l.rb

Overview



Cronograma de Faturamento Contas/Tributos - Empresa

Instance Method Summary collapse

Constructor Details

#initialize(master, versao = Febraban150::VERSAO) ⇒ Febraban150L

Returns a new instance of Febraban150L.



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/formatos/febraban150/febraban_150_l.rb', line 6

def initialize(master, versao = Febraban150::VERSAO)
  super(master, false, true)

  @section = Section.new({
    0 => Position.new(1, 1, false, "L", true), # Código do Registro
    1 => Position.new(2, 9, true),             # Data do Faturamento das Contas
    2 => Position.new(3, 9, true),             # Data do Vencimento da Fatura
    3 => Position.new(4, 9, true),             # Data da Remessa do Arquivo
    4 => Position.new(5, 9, true),             # Data da Remessa das Contas
    5 => Position.new(6, 104, false)           # Reservado pelo Sistema
  }, true)
end

Instance Method Details

#get_data_faturamentoObject



Getters



43
44
45
46
# File 'lib/formatos/febraban150/febraban_150_l.rb', line 43

def get_data_faturamento
  data = self.set_section_value(1)
  Date.new(data[0..3].to_i, data[4..5].to_i, data[6..7].to_i)
end

#get_data_remessa_bancoObject



53
54
55
56
# File 'lib/formatos/febraban150/febraban_150_l.rb', line 53

def get_data_remessa_banco
  data = self.set_section_value(3)
  Date.new(data[0..3].to_i, data[4..5].to_i, data[6..7].to_i)
end

#get_data_remessa_fisicaObject



58
59
60
61
# File 'lib/formatos/febraban150/febraban_150_l.rb', line 58

def get_data_remessa_fisica
  data = self.set_section_value(4)
  Date.new(data[0..3].to_i, data[4..5].to_i, data[6..7].to_i)
end

#get_data_vencimento_faturaObject



48
49
50
51
# File 'lib/formatos/febraban150/febraban_150_l.rb', line 48

def get_data_vencimento_fatura
  data = self.set_section_value(2)
  Date.new(data[0..3].to_i, data[4..5].to_i, data[6..7].to_i)
end

#is_valid?Boolean



Validações

Returns:

  • (Boolean)


33
34
35
36
37
38
# File 'lib/formatos/febraban150/febraban_150_l.rb', line 33

def is_valid?
  result = (!self.get_id_cliente_empresa.nil? and
            !self.get_agencia_debito.nil?     and
            !self.get_id_cliente_banco.nil?   and
            !self.get_id_cliente.nil?)
end

#process_section(file) ⇒ Object



Gerais



22
23
24
25
26
27
28
# File 'lib/formatos/febraban150/febraban_150_l.rb', line 22

def process_section file
  self.set_data_faturamento       file[1..8]
  self.set_data_vencimento_fatura file[9..16]
  self.set_data_remessa_banco     file[17..24]
  self.set_data_remessa_fisica    file[25..32]
  self.set_reservado              file[33..149]
end

#set_data_faturamento(data) ⇒ Object



Setters



66
67
68
69
70
71
72
73
74
75
76
# File 'lib/formatos/febraban150/febraban_150_l.rb', line 66

def set_data_faturamento data
  data = Date.strptime(data, "%Y%m%d") if data.is_a?(String)
  real_data = data.strftime("%Y%m%d")

  if real_data.length == 8
    self.set_section_value(1, real_data)
  else
    raise "#{self.get_id}: Data de Faturamento das Contas não pode estar vazia
            Valor: #{data}"
  end
end

#set_data_remessa_banco(data) ⇒ Object



90
91
92
93
94
95
96
97
98
99
100
# File 'lib/formatos/febraban150/febraban_150_l.rb', line 90

def set_data_remessa_banco data
  data = Date.strptime(data, "%Y%m%d") if data.is_a?(String)
  real_data = data.strftime("%Y%m%d")

  if real_data.length == 8
    self.set_section_value(3, real_data)
  else
    raise "#{self.get_id}: Data de Remessa ao Banco não pode estar vazia
            Valor: #{data}"
  end
end

#set_data_remessa_fisica(data) ⇒ Object



102
103
104
105
106
107
108
109
110
111
112
# File 'lib/formatos/febraban150/febraban_150_l.rb', line 102

def set_data_remessa_fisica data
  data = Date.strptime(data, "%Y%m%d") if data.is_a?(String)
  real_data = data.strftime("%Y%m%d")

  if real_data.length == 8
    self.set_section_value(4, real_data)
  else
    raise "#{self.get_id}: Data de Remessa Física não pode estar vazia
            Valor: #{data}"
  end
end

#set_data_vencimento_fatura(data) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
# File 'lib/formatos/febraban150/febraban_150_l.rb', line 78

def set_data_vencimento_fatura data
  data = Date.strptime(data, "%Y%m%d") if data.is_a?(String)
  real_data = data.strftime("%Y%m%d")

  if real_data.length == 8
    self.set_section_value(2, real_data)
  else
    raise "#{self.get_id}: Data de Vencimento da Fatura não pode estar vazia
            Valor: #{data}"
  end
end

#set_reservado(reservado) ⇒ Object



114
115
116
117
# File 'lib/formatos/febraban150/febraban_150_l.rb', line 114

def set_reservado reservado
  reservado = reservado.to_s
  self.set_section_value(5, reservado)
end