Class: SpreeCmCommissioner::Subscription

Inherits:
Base
  • Object
show all
Defined in:
app/models/spree_cm_commissioner/subscription.rb

Instance Method Summary collapse

Instance Method Details

#display_total_priceObject



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_countObject



48
49
50
# File 'app/models/spree_cm_commissioner/subscription.rb', line 48

def months_count
  variant.month
end

#product_active?Boolean

Returns:

  • (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

Returns:

  • (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_dateObject



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_priceObject



52
53
54
# File 'app/models/spree_cm_commissioner/subscription.rb', line 52

def total_price
  variant.price * quantity
end

#update_customer_active_subscriptions_countObject



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

Returns:

  • (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

Returns:

  • (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