Sha256: e9c7dda728108b31eb44c8ceb42dc38b63890aa8d090f199b950971a0970e7aa

Contents?: true

Size: 671 Bytes

Versions: 111

Compression:

Stored size: 671 Bytes

Contents

# frozen_string_literal: true

require_dependency 'spree/calculator'
require_dependency 'spree/shipping_calculator'

module Spree
  module Calculator::Shipping
    class FlatPercentItemTotal < ShippingCalculator
      preference :flat_percent, :decimal, default: 0

      def compute_package(package)
        value = compute_from_price(total(package.contents))
        preferred_currency = package.order.currency
        currency_exponent = ::Money::Currency.find(preferred_currency).exponent
        value.round(currency_exponent)
      end

      def compute_from_price(price)
        price * BigDecimal(preferred_flat_percent.to_s) / 100.0
      end
    end
  end
end

Version data entries

111 entries across 111 versions & 1 rubygems

Version Path
solidus_core-4.5.1 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.5.0 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.3.6 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.2.5 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.1.6 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.4.2 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.4.1 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.4.0 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.3.4 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.2.4 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.1.5 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.3.3 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.3.2 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.1.4 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.3.1 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.3.0 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.2.3 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.1.3 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-4.0.4 app/models/spree/calculator/shipping/flat_percent_item_total.rb
solidus_core-3.4.6 app/models/spree/calculator/shipping/flat_percent_item_total.rb