Class: Bscf::Core::VirtualAccount

Inherits:
ApplicationRecord show all
Defined in:
app/models/bscf/core/virtual_account.rb

Constant Summary collapse

PRODUCT_SCHEMES =
%w[SAVINGS CURRENT LOAN].freeze
VOUCHER_TYPES =
%w[REGULAR SPECIAL TEMPORARY].freeze

Instance Method Summary collapse

Instance Method Details

#available_balanceObject



43
44
45
# File 'app/models/bscf/core/virtual_account.rb', line 43

def available_balance
  balance - locked_amount
end

#lock_amount!(amount) ⇒ Object



47
48
49
50
51
52
53
54
55
# File 'app/models/bscf/core/virtual_account.rb', line 47

def lock_amount!(amount)
  return false if amount <= 0
  return false if amount > available_balance

  transaction do
    self.locked_amount += amount
    save!
  end
end

#unlock_amount!(amount) ⇒ Object



57
58
59
60
61
62
63
64
65
# File 'app/models/bscf/core/virtual_account.rb', line 57

def unlock_amount!(amount)
  return false if amount <= 0
  return false if amount > locked_amount

  transaction do
    self.locked_amount -= amount
    save!
  end
end