Class: Bankserv::Debit

Inherits:
ActiveRecord::Base
  • Object
show all
Extended by:
Eft
Defined in:
lib/bankserv/debit.rb

Instance Attribute Summary

Attributes included from Eft

#request_id

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Eft

build!, build_batch!, build_contra!, build_standard!, create_standard!, has_test_work?, has_work?, next_batch_id, partial_class_name

Class Method Details

.bankserv_serviceObject



12
13
14
# File 'lib/bankserv/debit.rb', line 12

def self.bankserv_service
  Bankserv::DebitService.where(active: true).last
end

.for_reference(reference) ⇒ Object



46
47
48
# File 'lib/bankserv/debit.rb', line 46

def self.for_reference(reference)
  self.where(:user_ref => reference)
end

Instance Method Details

#bankserv_serviceObject



16
17
18
# File 'lib/bankserv/debit.rb', line 16

def bankserv_service
  Bankserv::Debit.bankserv_service
end

#completed?Boolean

Returns:

  • (Boolean)


84
85
86
# File 'lib/bankserv/debit.rb', line 84

def completed?
  status == "completed"
end

#contra?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/bankserv/debit.rb', line 24

def contra?
  record_type == "contra"
end

#contra_bank_detailsObject



38
39
40
41
42
43
44
# File 'lib/bankserv/debit.rb', line 38

def contra_bank_details
  if self.standard?
    Debit.where(record_type: "contra", batch_id: self.batch_id, status: "new").first.
  else
    self.
  end
end

#error?Boolean

Returns:

  • (Boolean)


80
81
82
# File 'lib/bankserv/debit.rb', line 80

def error?
  status == "error"
end

#formatted_user_refObject



28
29
30
31
32
33
34
35
36
# File 'lib/bankserv/debit.rb', line 28

def formatted_user_ref
  abbreviated_name = bankserv_service.config[:client_abbreviated_name]
  
  if contra?
    abbreviated_name.ljust(10, ' ') << "CONTRA#{user_ref}"
  else
    abbreviated_name.ljust(10, ' ') << user_ref
  end
end

#new?Boolean

Returns:

  • (Boolean)


67
68
69
# File 'lib/bankserv/debit.rb', line 67

def new?
  status == "new"
end

#pending!Object



75
76
77
78
# File 'lib/bankserv/debit.rb', line 75

def pending!
  self.status = "pending"
  save!
end

#pending?Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/bankserv/debit.rb', line 71

def pending?
  status == "pending"
end

#process_response(data) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/bankserv/debit.rb', line 50

def process_response(data)
  save_data = if data[:response_status] == 'unpaid'
    {
      rejection_reason_description: Absa::H2h::Eft::RejectionCode.reason_for_code(data[:rejection_reason]),
      rejection_reason: data[:rejection_reason],
      rejection_qualifier_description: Absa::H2h::Eft::RejectionCode.qualifier_for_code(data[:rejection_qualifier]),
      rejection_qualifier: data[:rejection_qualifier]
    }
  elsif data[:response_status] == 'redirect'
    data.only([:new_homing_branch, :new_homing_account_number, :new_homing_account_type])
  end
  
  self.response = save_data
  self.status = data[:response_status]
  self.save!
end

#redirect?Boolean

Returns:

  • (Boolean)


92
93
94
# File 'lib/bankserv/debit.rb', line 92

def redirect?
  status == "redirect"
end

#standard?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/bankserv/debit.rb', line 20

def standard?
  record_type == "standard"
end

#unpaid?Boolean

Returns:

  • (Boolean)


88
89
90
# File 'lib/bankserv/debit.rb', line 88

def unpaid?
  status == "unpaid"
end