Sha256: 27090363b2bf53de0c5c7e78ef5c4669ea01830beb5f7e8dbcb7365e250198dd

Contents?: true

Size: 511 Bytes

Versions: 5

Compression:

Stored size: 511 Bytes

Contents

# frozen_string_literal: true

require_dependency "spree/calculator"

module SolidusPromotions
  module Calculators
    class Percent < Spree::Calculator
      include PromotionCalculator

      preference :percent, :decimal, default: 0

      def compute(object)
        preferred_currency = object.order.currency
        currency_exponent = ::Money::Currency.find(preferred_currency).exponent
        (object.discountable_amount * preferred_percent / 100).round(currency_exponent)
      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/calculators/percent.rb
solidus_promotions-4.5.0 app/models/solidus_promotions/calculators/percent.rb
solidus_promotions-4.4.2 app/models/solidus_promotions/calculators/percent.rb
solidus_promotions-4.4.1 app/models/solidus_promotions/calculators/percent.rb
solidus_promotions-4.4.0 app/models/solidus_promotions/calculators/percent.rb