Sha256: 5f4c319bf43382e5732ed8fcf38f834e76267a2e44956147cdb5c3e78d5f6ce3

Contents?: true

Size: 683 Bytes

Versions: 4

Compression:

Stored size: 683 Bytes

Contents

# frozen_string_literal: true

module SolidusFriendlyPromotions
  module Conditions
    class OneUsePerUser < Condition
      include OrderLevelCondition

      def eligible?(order, _options = {})
        if order.user.present?
          if promotion.used_by?(order.user, [order])
            eligibility_errors.add(
              :base,
              eligibility_error_message(:limit_once_per_user),
              error_code: :limit_once_per_user
            )
          end
        else
          eligibility_errors.add(:base, eligibility_error_message(:no_user_specified), error_code: :no_user_specified)
        end

        eligibility_errors.empty?
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
solidus_friendly_promotions-1.9.3 app/models/solidus_friendly_promotions/conditions/one_use_per_user.rb
solidus_friendly_promotions-1.9.2 app/models/solidus_friendly_promotions/conditions/one_use_per_user.rb
solidus_friendly_promotions-1.9.1 app/models/solidus_friendly_promotions/conditions/one_use_per_user.rb
solidus_friendly_promotions-1.9.0 app/models/solidus_friendly_promotions/conditions/one_use_per_user.rb