2019-06-03 16:00:09 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
# track of all transactions payed using the given wallet
|
2020-03-25 10:16:47 +01:00
|
|
|
class WalletTransaction < ApplicationRecord
|
2016-07-05 12:30:52 +02:00
|
|
|
include AmountConcern
|
|
|
|
|
2019-06-03 16:00:09 +02:00
|
|
|
belongs_to :invoicing_profile
|
2016-07-04 19:20:10 +02:00
|
|
|
belongs_to :wallet
|
|
|
|
belongs_to :reservation
|
2021-05-25 17:28:35 +02:00
|
|
|
# what was paid with the wallet
|
2016-07-20 15:07:43 +02:00
|
|
|
has_one :invoice
|
2020-11-12 16:44:55 +01:00
|
|
|
has_one :payment_schedule
|
2021-05-25 17:28:35 +02:00
|
|
|
# how the wallet was credited
|
|
|
|
has_one :invoice_item, as: :object, dependent: :destroy
|
2016-07-05 12:15:26 +02:00
|
|
|
|
2019-06-03 16:00:09 +02:00
|
|
|
validates_inclusion_of :transaction_type, in: %w[credit debit]
|
|
|
|
validates :invoicing_profile, :wallet, presence: true
|
|
|
|
|
|
|
|
def user
|
|
|
|
invoicing_profile.user
|
|
|
|
end
|
2021-05-28 17:34:20 +02:00
|
|
|
|
|
|
|
def original_invoice
|
|
|
|
invoice_item.invoice
|
|
|
|
end
|
2016-07-04 19:20:10 +02:00
|
|
|
end
|