Class: Febraban150J
- Inherits:
-
FormatSection
- Object
- FormatSection
- Febraban150J
- Defined in:
- lib/formatos/febraban150/febraban_150_j.rb
Overview
Confirmação de Processamento - Empresa/Banco
Instance Method Summary collapse
- #get_data_geracao ⇒ Object
- #get_data_processamento ⇒ Object
-
#get_numero_sequencial ⇒ Object
——————————————————————- ——————————————————————- Getters.
- #get_total_processados ⇒ Object
- #get_valor_total ⇒ Object
-
#initialize(master, versao = Febraban150::VERSAO) ⇒ Febraban150J
constructor
A new instance of Febraban150J.
-
#is_valid? ⇒ Boolean
——————————————————————- ——————————————————————- Validações.
-
#process_section(file) ⇒ Object
——————————————————————- ——————————————————————- Gerais.
- #set_data_geracao(data) ⇒ Object
- #set_data_processamento(data) ⇒ Object
-
#set_numero_sequencial(numero) ⇒ Object
——————————————————————- ——————————————————————- Setters.
- #set_reservado(reservado) ⇒ Object
- #set_total_processados(total) ⇒ Object
- #set_valor_total(valor) ⇒ Object
Constructor Details
#initialize(master, versao = Febraban150::VERSAO) ⇒ Febraban150J
Returns a new instance of Febraban150J.
6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 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 |
Instance Method Details
#get_data_geracao ⇒ Object
50 51 52 53 |
# 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 ⇒ Object
63 64 65 66 |
# 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 ⇒ Object
Getters
46 47 48 |
# 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 ⇒ Object
55 56 57 |
# 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 ⇒ Object
59 60 61 |
# File 'lib/formatos/febraban150/febraban_150_j.rb', line 59 def get_valor_total self.set_section_value(4).to_i end |
#is_valid? ⇒ Boolean
Validações
35 36 37 38 39 40 41 |
# 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) ⇒ Object
Gerais
23 24 25 26 27 28 29 30 |
# 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) ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 |
# 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) ⇒ Object
116 117 118 119 120 121 122 123 124 125 126 |
# 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) ⇒ Object
Setters
71 72 73 74 75 76 77 78 79 80 |
# 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) ⇒ Object
128 129 130 131 |
# 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) ⇒ Object
94 95 96 97 98 99 100 101 102 103 |
# 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) ⇒ Object
105 106 107 108 109 110 111 112 113 114 |
# 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 |