class Febraban150J
Public Class Methods
new(master, versao = Febraban150::VERSAO)
click to toggle source
Calls superclass method
# File lib/formatos/febraban150/febraban_150_j.rb, line 6 def initialize(master, versao = Febraban150::VERSAO) super(master, true, true) @section = Section.new({ 0 => Position.new(1, 1, false, "J", true), # Código do Registro 1 => Position.new(2, 6, true), # Número Sequencial 2 => Position.new(3, 8, true), # Data de Geração 3 => Position.new(4, 6, true), # Total de Registros Processados 4 => Position.new(5, 17, true), # Valor total 5 => Position.new(6, 8, true), # Data de processamento 6 => Position.new(7, 104, false) # Reservado pelo Sistema }, true) end
Public Instance Methods
get_data_geracao()
click to toggle source
# File lib/formatos/febraban150/febraban_150_j.rb, line 50 def get_data_geracao data = self.set_section_value(2) Date.new(data[0..3].to_i, data[4..5].to_i, data[6..7].to_i) end
get_data_processamento()
click to toggle source
# File lib/formatos/febraban150/febraban_150_j.rb, line 63 def get_data_processamento data = self.set_section_value(5) Date.new(data[0..3].to_i, data[4..5].to_i, data[6..7].to_i) end
get_numero_sequencial()
click to toggle source
# File lib/formatos/febraban150/febraban_150_j.rb, line 46 def get_numero_sequencial self.set_section_value(1).to_i end
get_total_processados()
click to toggle source
# File lib/formatos/febraban150/febraban_150_j.rb, line 55 def get_total_processados self.set_section_value(3).to_i end
get_valor_total()
click to toggle source
# File lib/formatos/febraban150/febraban_150_j.rb, line 59 def get_valor_total self.set_section_value(4).to_i end
is_valid?()
click to toggle source
# File lib/formatos/febraban150/febraban_150_j.rb, line 35 def is_valid? result = (self.get_numero_sequencial > 0 and !self.get_data_geracao.nil? and self.get_total_processados >= 0 and self.get_valor_total >= 0 and !self.get_data_processamento.nil?) end
process_section(file)
click to toggle source
# File lib/formatos/febraban150/febraban_150_j.rb, line 23 def process_section file self.set_numero_sequencial file[1..6] self.set_data_geracao file[7..14] self.set_total_processados file[15..20] self.set_valor_total file[21..37] self.set_data_processamento file[38..45] self.set_reservado file[46..149] end
set_data_geracao(data)
click to toggle source
# File lib/formatos/febraban150/febraban_150_j.rb, line 82 def set_data_geracao 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, data) else raise "#{self.get_id}: Data de Geração não pode estar vazia Valor: #{data}" end end
set_data_processamento(data)
click to toggle source
# File lib/formatos/febraban150/febraban_150_j.rb, line 116 def set_data_processamento 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(5, real_data) else raise "#{self.get_id}: Data de Processamento não pode estar vazia Valor: #{data}" end end
set_numero_sequencial(numero)
click to toggle source
# File lib/formatos/febraban150/febraban_150_j.rb, line 71 def set_numero_sequencial numero numero = numero.to_i if numero > 0 self.set_section_value(1, numero) else raise "#{self.get_id}: Número Sequencial deve ser positivo e maior que 0 Valor: #{numero}" end end
set_reservado(reservado)
click to toggle source
# File lib/formatos/febraban150/febraban_150_j.rb, line 128 def set_reservado reservado reservado = reservado.to_s self.set_section_value(6, reservado) end
set_total_processados(total)
click to toggle source
# File lib/formatos/febraban150/febraban_150_j.rb, line 94 def set_total_processados total total = total.to_i if total >= 0 self.set_section_value(3, total) else raise "#{self.get_id}: Total de Arquivos Processados deve ser positivo ou 0 Valor: #{total}" end end
set_valor_total(valor)
click to toggle source
# File lib/formatos/febraban150/febraban_150_j.rb, line 105 def set_valor_total valor valor = valor.to_i if valor >= 0 self.set_section_value(4, valor) else raise "#{self.get_id}: Valor Total dos Arquivos Processados deve ser positivo ou 0 Valor: #{valor}" end end