Module: SolidusConfigurableKits::Spree::LineItemDecorator
- Defined in:
- app/decorators/models/solidus_configurable_kits/spree/line_item_decorator.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.prepended(base) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/decorators/models/solidus_configurable_kits/spree/line_item_decorator.rb', line 6 def self.prepended(base) base.has_many :kit_items, class_name: "Spree::LineItem", foreign_key: :kit_id, dependent: :destroy, inverse_of: :kit base.belongs_to :kit, class_name: "Spree::LineItem", foreign_key: :kit_id, optional: true, inverse_of: :kit_items base.belongs_to :kit_requirement, class_name: "::SolidusConfigurableKits::Requirement", foreign_key: :requirement_id, optional: true base.before_validation :update_prices_after_variant_change base.before_validation :update_kit_item_quantities base.before_validation :create_kit_items base.money_methods :kit_total base.validate :all_required_kit_items_present base.attribute :kit_variant_ids, default: [] end |
Instance Method Details
#kit? ⇒ Boolean
37 38 39 |
# File 'app/decorators/models/solidus_configurable_kits/spree/line_item_decorator.rb', line 37 def kit? variant&.product&.kit_requirements&.any? || false end |
#kit_item? ⇒ Boolean
29 30 31 |
# File 'app/decorators/models/solidus_configurable_kits/spree/line_item_decorator.rb', line 29 def kit_item? kit.present? end |
#kit_total ⇒ Object
33 34 35 |
# File 'app/decorators/models/solidus_configurable_kits/spree/line_item_decorator.rb', line 33 def kit_total amount + kit_items.sum(&:amount) end |