Class: SpreeCmCommissioner::Subscription
- Defined in:
- app/models/spree_cm_commissioner/subscription.rb
Instance Method Summary collapse
- #display_total_price ⇒ Object
- #months_count ⇒ Object
- #product_active? ⇒ Boolean
- #quanitiy_is_not_nil? ⇒ Boolean
- #renewal_date ⇒ Object
- #total_price ⇒ Object
- #update_customer_active_subscriptions_count ⇒ Object
- #variant_in_stock? ⇒ Boolean
- #variant_subscribed? ⇒ Boolean
Instance Method Details
#display_total_price ⇒ Object
56 57 58 |
# File 'app/models/spree_cm_commissioner/subscription.rb', line 56 def display_total_price Spree::Money.new(total_price.to_i, currency: variant.currency).to_s end |
#months_count ⇒ Object
48 49 50 |
# File 'app/models/spree_cm_commissioner/subscription.rb', line 48 def months_count variant.month end |
#product_active? ⇒ Boolean
42 43 44 45 46 |
# File 'app/models/spree_cm_commissioner/subscription.rb', line 42 def product_active? return false if variant.product.active? errors.add(:product, I18n.t('product.validation.not_active', product_name: product.name)) end |
#quanitiy_is_not_nil? ⇒ Boolean
24 25 26 27 28 |
# File 'app/models/spree_cm_commissioner/subscription.rb', line 24 def quanitiy_is_not_nil? return false unless quantity.nil? || quantity.zero? errors.add(:subscription, I18n.t('spree..billing.subscription.quantity_is_missing')) end |
#renewal_date ⇒ Object
60 61 62 63 64 |
# File 'app/models/spree_cm_commissioner/subscription.rb', line 60 def renewal_date return start_date if last_occurence.blank? last_occurence + months_count.months end |
#total_price ⇒ Object
52 53 54 |
# File 'app/models/spree_cm_commissioner/subscription.rb', line 52 def total_price variant.price * quantity end |
#update_customer_active_subscriptions_count ⇒ Object
66 67 68 |
# File 'app/models/spree_cm_commissioner/subscription.rb', line 66 def update_customer_active_subscriptions_count customer.update(active_subscriptions_count: customer.subscriptions.where(status: 'active').count) end |
#variant_in_stock? ⇒ Boolean
30 31 32 33 34 |
# File 'app/models/spree_cm_commissioner/subscription.rb', line 30 def variant_in_stock? return false if variant.in_stock? errors.add(:variant, I18n.t('variant.validation.out_of_stock', variant_name: variant.name)) end |
#variant_subscribed? ⇒ Boolean
36 37 38 39 40 |
# File 'app/models/spree_cm_commissioner/subscription.rb', line 36 def variant_subscribed? return false if customer.subscriptions.where(variant: variant).blank? errors.add(:variant, I18n.t('variant.validation.subscribed', product_name: variant.sku)) end |