Class: Bankserv::Transmission::UserSet::AccountHolderVerification

Inherits:
Set
  • Object
show all
Defined in:
lib/bankserv/transmission/set/account_holder_verification.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Set

#base_set, #build_header, #build_trailer, #contained_sets, #decorate_records, from_hash, #get_document, #header, #number_of_records, #parent, partial_class_name, #process, #rec_status, #record_with_sequence_number, #set_type, #to_hash, #trailer, #transactions

Instance Attribute Details

#department_codeObject

Returns the value of attribute department_code.



8
9
10
# File 'lib/bankserv/transmission/set/account_holder_verification.rb', line 8

def department_code
  @department_code
end

Class Method Details

.generate(options = {}) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/bankserv/transmission/set/account_holder_verification.rb', line 10

def self.generate(options = {})
  arr = options[:internal] ? [:internal] : [:external]
  arr.collect do |type|
    ahvs = Bankserv::AccountHolderVerification.unprocessed.send(type)
    
    if options[:rec_status] == "L"
      ahvs.select!{|ahv| not ahv.request.test?}
    else
      ahvs.select!{|ahv| ahv.request.test?}            
    end
    
    if ahvs.count > 0
      set = self.new
      set.build_header(type: type)
      ahvs.each{|ahv| set.build_transaction(ahv)}
      set.build_trailer
      set
    end
  end.compact
end

.has_test_work?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/bankserv/transmission/set/account_holder_verification.rb', line 35

def self.has_test_work?
  Bankserv::AccountHolderVerification.unprocessed.select{|item| item.request.test?}.any?
end

.has_work?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/bankserv/transmission/set/account_holder_verification.rb', line 31

def self.has_work?
  Bankserv::AccountHolderVerification.unprocessed.select{|item| not item.request.test?}.any?
end

Instance Method Details

#account_number_totalObject



61
62
63
# File 'lib/bankserv/transmission/set/account_holder_verification.rb', line 61

def 
  transactions.inject(0) {|res, e| res + e.data[:account_number].to_i}
end

#build_transaction(ahv) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/bankserv/transmission/set/account_holder_verification.rb', line 39

def build_transaction(ahv)
  record_data = if ahv.external?
    Absa::H2h::Transmission::AccountHolderVerification.record_type('external_account_detail').template_options
  else
    Absa::H2h::Transmission::AccountHolderVerification.record_type('internal_account_detail').template_options
  end
  
  record_data.merge!(
    seq_no: (transactions.count + 1).to_s,
    account_number: ahv..,
    id_number: ahv..id_number,
    initials: ahv..initials,
    surname: ahv..,
    user_ref: ahv.user_ref
  )

  record_data.merge!(branch_code: ahv..branch_code) if ahv.external?
  
  record_type = ahv.internal? ? "internal_account_detail" : "external_account_detail"      
  records.build(record_type: record_type, data: record_data, sourceable: ahv)
end