Sha256: 249f1dd5956421fb3d78e9001b90553953e1e2b4f54fa22b51172db7b310f690

Contents?: true

Size: 675 Bytes

Versions: 5

Compression:

Stored size: 675 Bytes

Contents

# frozen_string_literal: true

module SolidusPromotions
  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

5 entries across 5 versions & 1 rubygems

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