Class: SpreeCmCommissioner::Promotion::Rules::Vendors
- Inherits:
-
Spree::PromotionRule
- Object
- Spree::PromotionRule
- SpreeCmCommissioner::Promotion::Rules::Vendors
- Defined in:
- app/models/spree_cm_commissioner/promotion/rules/vendors.rb
Constant Summary collapse
- MATCH_POLICIES =
%w[any all none].freeze
Instance Method Summary collapse
- #actionable?(line_item) ⇒ Boolean
- #applicable?(promotable) ⇒ Boolean
- #eligible?(order, _options = {}) ⇒ Boolean
- #vendor_ids_string ⇒ Object
- #vendor_ids_string=(value) ⇒ Object
Instance Method Details
#actionable?(line_item) ⇒ Boolean
36 37 38 39 40 41 42 43 44 45 |
# File 'app/models/spree_cm_commissioner/promotion/rules/vendors.rb', line 36 def actionable?(line_item) case preferred_match_policy when 'any', 'all' vendor_ids.include? line_item.vendor_id when 'none' vendor_ids.exclude? line_item.vendor_id else false end end |
#applicable?(promotable) ⇒ Boolean
17 18 19 |
# File 'app/models/spree_cm_commissioner/promotion/rules/vendors.rb', line 17 def applicable?(promotable) promotable.is_a?(Spree::Order) end |
#eligible?(order, _options = {}) ⇒ Boolean
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'app/models/spree_cm_commissioner/promotion/rules/vendors.rb', line 21 def eligible?(order, = {}) return true if eligible_vendors.empty? case preferred_match_policy when 'all' order.line_items.all? { |line_item| eligible_vendors.include?(line_item.vendor) } when 'any' order.line_items.any? { |line_item| eligible_vendors.include?(line_item.vendor) } when 'none' order.line_items.none? { |line_item| eligible_vendors.include?(line_item.vendor) } else false end end |
#vendor_ids_string ⇒ Object
47 48 49 |
# File 'app/models/spree_cm_commissioner/promotion/rules/vendors.rb', line 47 def vendor_ids_string vendor_ids.join(',') end |
#vendor_ids_string=(value) ⇒ Object
51 52 53 |
# File 'app/models/spree_cm_commissioner/promotion/rules/vendors.rb', line 51 def vendor_ids_string=(value) self.vendor_ids = value end |