Class: Dscf::Banking::Account
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Dscf::Banking::Account
- Defined in:
- app/models/dscf/banking/account.rb
Instance Method Summary collapse
- #activate! ⇒ Object
- #can_be_activated? ⇒ Boolean
- #can_be_closed? ⇒ Boolean
- #can_be_suspended? ⇒ Boolean
- #close!(reason = nil) ⇒ Object
- #formatted_account_number ⇒ Object
- #sufficient_funds_for_withdrawal?(amount) ⇒ Boolean
- #suspend!(reason = nil) ⇒ Object
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
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
63 64 65 |
# File 'app/models/dscf/banking/account.rb', line 63 def can_be_closed? active? || suspended? || dormant? end |
#can_be_suspended? ⇒ 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_number ⇒ Object
50 51 52 53 |
# File 'app/models/dscf/banking/account.rb', line 50 def formatted_account_number return nil unless account_number account_number.gsub(/(\d{3})(\d{1})(\d{1})(\d{6})/, '\1 \2 \3 \4') end |
#sufficient_funds_for_withdrawal?(amount) ⇒ 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 |