Sha256: 004dbd8ac01f63d5597e708bf923b449194863c1f7968c7e3d90ba424a6e5db2

Contents?: true

Size: 582 Bytes

Versions: 5

Compression:

Stored size: 582 Bytes

Contents

# frozen_string_literal: true

module SolidusPromotions
  module Conditions
    module LineItemApplicableOrderLevelCondition
      def self.included(klass)
        klass.preference :line_item_applicable, :boolean, default: true
      end

      def applicable?(promotable)
        promotable.is_a?(Spree::Order) || preferred_line_item_applicable && promotable.is_a?(Spree::LineItem)
      end

      def eligible?(promotable)
        send(:"#{promotable.class.name.demodulize.underscore}_eligible?", promotable)
      end

      def level
        :order
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
solidus_promotions-4.5.1 app/models/concerns/solidus_promotions/conditions/line_item_applicable_order_level_condition.rb
solidus_promotions-4.5.0 app/models/concerns/solidus_promotions/conditions/line_item_applicable_order_level_condition.rb
solidus_promotions-4.4.2 app/models/concerns/solidus_promotions/conditions/line_item_applicable_order_level_condition.rb
solidus_promotions-4.4.1 app/models/concerns/solidus_promotions/conditions/line_item_applicable_order_level_condition.rb
solidus_promotions-4.4.0 app/models/concerns/solidus_promotions/conditions/line_item_applicable_order_level_condition.rb