Class: Bankserv::Statement

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/bankserv/transmission/statement.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.store(string) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/bankserv/transmission/statement.rb', line 7

def self.store(string)
  options = Absa::Esd::Transmission::Document.hash_from_s(string)
  
  raise "Expected a document set" unless options[:type] == "document"

  client_code = options[:data][0][:data][0][:data][:client_code]

  statement = new
  statement.client_code = client_code
  statement.data = options
  statement.save!
  statement
end

Instance Method Details

#process!Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/bankserv/transmission/statement.rb', line 21

def process!
  raise "Document already processed" if processed?

  count = 1
   = .first[:data][:account_number]

  .each do |record|
    next if record[:data][:transaction_description] == "GEEN/NO TRAN"

    if record[:data][:account_number] != 
       = record[:data][:account_number]
      count = 1
    end

    Bankserv::Transaction.create! data: record[:data].merge(transaction_number_for_day: count), client_code: client_code, bankserv_statement_id: id
    
    count += 1
  end

  self.processed = true
  self.save
end

#recon_account_dataObject



48
49
50
# File 'lib/bankserv/transmission/statement.rb', line 48

def 
  recon_transmission_data[1][:data]
end

#recon_account_detail_recordsObject



52
53
54
# File 'lib/bankserv/transmission/statement.rb', line 52

def 
  .select{|item| item[:type] == 'detail'}
end

#recon_transmission_dataObject



44
45
46
# File 'lib/bankserv/transmission/statement.rb', line 44

def recon_transmission_data
  data[:data][0][:data]
end