2018-03-25 16:15:39 +00:00
|
|
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
2018-03-25 17:30:42 +00:00
|
|
|
class Refund < ActiveRecord::Base
|
|
|
|
|
|
|
|
Reasons = [:duplicate, :fraudulent, :requested_by_customer]
|
|
|
|
|
|
|
|
attr_accessible \
|
|
|
|
:amount, # int
|
|
|
|
:comment, # text
|
|
|
|
:reason, # str ('duplicate', 'fraudulent', or 'requested_by_customer')
|
|
|
|
:stripe_refund_id,
|
|
|
|
:disbursed, # boolean (whether this refund has been counted in a payout)
|
|
|
|
:failure_message, # str (accessor for storing the Stripe error message)
|
|
|
|
:user_id, :user, # user who made this refund
|
|
|
|
:payment_id, :payment, # negative payment that records this refund
|
|
|
|
:charge_id, :charge
|
|
|
|
|
|
|
|
attr_accessor :failure_message
|
|
|
|
|
|
|
|
belongs_to :charge
|
|
|
|
belongs_to :payment
|
|
|
|
|
|
|
|
scope :not_disbursed, ->{where(disbursed: [nil, false])}
|
|
|
|
scope :disbursed, ->{where(disbursed: [true])}
|
|
|
|
|
|
|
|
end
|
|
|
|
|