Module: SolidusConfigurableKits::Spree::ProductDecorator
- Defined in:
- app/decorators/models/solidus_configurable_kits/spree/product_decorator.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#kit_item_variants_for(pricing_options = Spree::Config.default_pricing_options) ⇒ Array<Spree::Variant>
All variants that can be part of a kit.
Class Method Details
.prepended(base) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'app/decorators/models/solidus_configurable_kits/spree/product_decorator.rb', line 6 def self.prepended(base) base.has_many :kit_requirements, class_name: "SolidusConfigurableKits::Requirement", foreign_key: :product_id base.has_many :kits, through: :kit_requirements, source: :product base.has_many :required_kit_products, through: :kit_requirements, source: :required_product base.delegate :resilient_money_price, to: :master base.scope :with_kit_item_prices, -> { joins(variants_including_master: :prices).where(spree_prices: { kit_item: true }).distinct } end |
Instance Method Details
#kit_item_variants_for(pricing_options = Spree::Config.default_pricing_options) ⇒ Array<Spree::Variant>
Returns all variants that can be part of a kit.
22 23 24 25 26 |
# File 'app/decorators/models/solidus_configurable_kits/spree/product_decorator.rb', line 22 def kit_item_variants_for( = Spree::Config.) variants_including_master.includes(:option_values).with_prices().select do |variant| variant.option_values.any? || (variant.is_master? && variants.none? ) end end |