1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-11-29 10:24:20 +01:00
fab-manager/app/models/wallet.rb

34 lines
847 B
Ruby
Raw Normal View History

# frozen_string_literal: true
# user's virtual wallet which can be credited by an admin
# all subsequent user's transactions will charge the wallet, as the default payment mean, if the wallet amount > 0
# if the wallet amount is not sufficient, a secondary payment mean will be requested (card or cash, depending on the login context)
2020-03-25 10:16:47 +01:00
class Wallet < ApplicationRecord
2016-07-05 12:30:52 +02:00
include AmountConcern
belongs_to :invoicing_profile
2016-07-05 12:30:52 +02:00
has_many :wallet_transactions, dependent: :destroy
2016-07-04 19:20:10 +02:00
validates :invoicing_profile, presence: true
2016-07-05 11:32:06 +02:00
2016-07-04 19:20:10 +02:00
def credit(amount)
if amount.is_a?(Numeric) && amount >= 0
2016-07-05 10:38:39 +02:00
self.amount += amount
return save
end
false
2016-07-04 19:20:10 +02:00
end
def debit(amount)
if amount.is_a?(Numeric) && amount >= 0
2016-07-05 10:38:39 +02:00
self.amount -= amount
return save
end
false
2016-07-04 19:20:10 +02:00
end
def user
invoicing_profile.user
end
2016-07-18 18:16:54 +02:00
end