- A
- C
- D
- I
- O
- P
- R
- S
- T
Constants
| STATUSES | = | active_statuses + inactive_statuses |
Class Public methods
active_statuses() Link
Source: show
# File app/models/db/subscription.rb, line 4 def self.active_statuses %w[active trialing past_due] end
inactive_statuses() Link
Source: show
# File app/models/db/subscription.rb, line 8 def self.inactive_statuses %w[canceled incomplete incomplete_expired unpaid] end
Instance Public methods
amount() Link
Source: show
# File app/models/db/subscription.rb, line 90 def amount final_amount = plan.amount final_amount = [0, (final_amount - get_discount)].max if discount final_amount end
churned?() Link
Source: show
# File app/models/db/subscription.rb, line 96 def churned? failed_payments.where({status: "churned"}).exists? end
discount() Link
Support legacy data
Source: show
# File app/models/db/subscription.rb, line 105 def discount raw_discount = super if raw_discount.is_a?(String) JSON.parse(raw_discount) else raw_discount end rescue JSON::ParserError raw_discount end
order_id() Link
Source: show
# File app/models/db/subscription.rb, line 86 def order_id payment_gateway_id end
payment_failure?() Link
Source: show
# File app/models/db/subscription.rb, line 78 def payment_failure? %w[active trialing].exclude?(status) && pending_intent_id? end
pending_cancellation?() Link
Source: show
# File app/models/db/subscription.rb, line 82 def pending_cancellation? cancels_on? && cancels_on > Time.current end
remote_subscription() Link
Source: show
# File app/models/db/subscription.rb, line 117 def remote_subscription @remote_subscription ||= PaymentGateway.retrieve_subscription(model: self, expand: ["latest_invoice"]) end