mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2024-12-01 12:24:28 +01:00
30 lines
904 B
Ruby
30 lines
904 B
Ruby
# frozen_string_literal: true
|
|
|
|
# Represents a due date and the associated amount for a PaymentSchedule
|
|
class PaymentScheduleItem < Footprintable
|
|
belongs_to :payment_schedule
|
|
belongs_to :invoice
|
|
has_one :payment_gateway_object, as: :item, dependent: :destroy
|
|
has_one :chained_element, as: :element, dependent: :restrict_with_exception
|
|
|
|
after_create :chain_record
|
|
|
|
delegate :footprint, to: :chained_element
|
|
|
|
def first?
|
|
payment_schedule.ordered_items.first == self
|
|
end
|
|
|
|
def payment_intent
|
|
return unless payment_gateway_object
|
|
return unless payment_gateway_object.gateway_object.gateway == 'Stripe'
|
|
|
|
stp_invoice = payment_gateway_object.gateway_object.retrieve
|
|
Stripe::PaymentIntent.retrieve(stp_invoice.payment_intent, api_key: Setting.get('stripe_secret_key'))
|
|
end
|
|
|
|
def self.columns_out_of_footprint
|
|
%w[invoice_id state payment_method client_secret]
|
|
end
|
|
end
|