- A
- B
- C
- D
- E
- H
- I
- M
- P
- R
- S
- T
- W
Attributes
| [W] | active_member_count | |
| [W] | broadcast_recipient_count | |
| [RW] | remote_error |
Instance Public methods
active_member_count() Link
Source: show
# File app/models/db/plan.rb, line 350 def active_member_count @active_member_count || Action::MemberSearcher .active_members(plan: self) .count end
annual?() Link
Source: show
# File app/models/db/plan.rb, line 313 def annual? subscription_plan_type? && year_interval? end
as_json(options = {}) Link
Source: show
# File app/models/db/plan.rb, line 321 def as_json(options = {}) # FIXME: legacy support for older strings still needed super(options).merge(plan_type: self.class.plan_types[plan_type]) end
billing_period() Link
1.send(“month”/“year”/etc) => 1.month
Source: show
# File app/models/db/plan.rb, line 293 def billing_period interval_count.send(interval) end
broadcast_recipient_count() Link
Source: show
# File app/models/db/plan.rb, line 356 def broadcast_recipient_count @broadcast_recipient_count || Action::MemberSearcher .active_members(plan: self) .broadcastable .count end
calculate_expiration(starting_from) Link
Source: show
# File app/models/db/plan.rb, line 337 def calculate_expiration(starting_from) return nil unless with_expiration? specific_expiration_at || interval_expiration_at(starting_from) end
deletable?() Link
Source: show
# File app/models/db/plan.rb, line 268 def deletable? !remaining_active_members? && !remaining_active_subscriptions? end
disable() Link
Source: show
# File app/models/db/plan.rb, line 258 def disable self.enabled = false self.is_public = false save end
enable() Link
Source: show
# File app/models/db/plan.rb, line 252 def enable self.enabled = true self.is_public = true save end
expired?(starting_from) Link
Source: show
# File app/models/db/plan.rb, line 332 def expired?(starting_from) (specific_expiration? && specific_time_expired?) || (interval_expiration? && interval_expired?(starting_from)) end
expires_in!(duration) Link
Source: show
# File app/models/db/plan.rb, line 342 def expires_in!(duration) update!( expiration_type: "interval", expiration_interval: duration.interval.singularize, expiration_count: duration.magnitude ) end
has_payments_remaining?(subscription) Link
Source: show
# File app/models/db/plan.rb, line 248 def has_payments_remaining?(subscription) payment_plan? && interval_count > subscription.payments_made end
has_trial?() Link
Source: show
# File app/models/db/plan.rb, line 233 def has_trial? trial_period_days.present? && !trial_period_days.zero? end
interval_expiration?() Link
Source: show
# File app/models/db/plan.rb, line 305 def interval_expiration? interval_expiration_type? end
interval_expired?(starting_from) Link
Source: show
# File app/models/db/plan.rb, line 272 def interval_expired?(starting_from) interval_expiration_type? && calculate_expiration_interval(starting_from) < Time.current end
is_private?() Link
Source: show
# File app/models/db/plan.rb, line 297 def is_private? !is_public? end
monthly?() Link
Source: show
# File app/models/db/plan.rb, line 317 def monthly? subscription_plan_type? && month_interval? end
paid_plan_type?() Link
Source: show
# File app/models/db/plan.rb, line 238 def paid_plan_type? one_time_payment_plan_type? || recurring? end
price() Link
Source: show
# File app/models/db/plan.rb, line 326 def price if !free? Service::Money.new(amount, currency).format end end
recurring?() Link
Source: show
# File app/models/db/plan.rb, line 244 def recurring? subscription_plan_type? || multi_payment_plan_type? end
rejoinable?() Link
Source: show
# File app/models/db/plan.rb, line 301 def rejoinable? !free_plan? && !specific_expiration? && !specific_time_expired? end
remaining_active_subscriptions?() Link
Source: show
# File app/models/db/plan.rb, line 276 def remaining_active_subscriptions? subscriptions.exists?(status: %w[incomplete trialing active past_due unpaid]) end
specific_expiration?() Link
Source: show
# File app/models/db/plan.rb, line 309 def specific_expiration? specific_time_expiration_type? end
specific_time_expired?() Link
Source: show
# File app/models/db/plan.rb, line 280 def specific_time_expired? specific_time_expiration_type? && expiration_at < Time.current end