Class: Dscf::Banking::Account

Inherits:
ApplicationRecord show all
Defined in:
app/models/dscf/banking/account.rb

Instance Method Summary collapse

Instance Method Details

#activate!Object



42
43
44
# File 'app/models/dscf/banking/account.rb', line 42

def activate!
  update!(status: :active, activation_date: Date.current)
end

#can_be_activated?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'app/models/dscf/banking/account.rb', line 55

def can_be_activated?
  draft? || pending_activation? || suspended?
end

#can_be_closed?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'app/models/dscf/banking/account.rb', line 63

def can_be_closed?
  active? || suspended? || dormant?
end

#can_be_suspended?Boolean

Returns:

  • (Boolean)


59
60
61
# File 'app/models/dscf/banking/account.rb', line 59

def can_be_suspended?
  active?
end

#close!(reason = nil) ⇒ Object



46
47
48
# File 'app/models/dscf/banking/account.rb', line 46

def close!(reason = nil)
  update!(status: :closed, active: false, closure_date: Date.current)
end

#formatted_account_numberObject



50
51
52
53
# File 'app/models/dscf/banking/account.rb', line 50

def 
  return nil unless 
  .gsub(/(\d{3})(\d{1})(\d{1})(\d{6})/, '\1 \2 \3 \4')
end

#sufficient_funds_for_withdrawal?(amount) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
# File 'app/models/dscf/banking/account.rb', line 34

def sufficient_funds_for_withdrawal?(amount)
  available_balance - amount >= minimum_balance
end

#suspend!(reason = nil) ⇒ Object



38
39
40
# File 'app/models/dscf/banking/account.rb', line 38

def suspend!(reason = nil)
  update!(status: :suspended)
end