Sha256: 2ea36638c38c6ed32d1eced741cf859ef9aa2daf4a28e29370fb217fedba8a8e

Contents?: true

Size: 1.15 KB

Versions: 20

Compression:

Stored size: 1.15 KB

Contents

module Spree
  class ShippingRate < Spree::Base
    belongs_to :shipment, class_name: 'Spree::Shipment'
    belongs_to :shipping_method, class_name: 'Spree::ShippingMethod', inverse_of: :shipping_rates
    belongs_to :tax_rate, class_name: 'Spree::TaxRate'

    delegate :order, :currency, to: :shipment
    delegate :name, to: :shipping_method
    delegate :code, to: :shipping_method, prefix: true

    extend Spree::DisplayMoney

    money_methods :base_price, :tax_amount

    def base_price
      cost
    end

    def display_price
      price = display_base_price.to_s

      return price if tax_rate.nil? || tax_amount == 0

      Spree.t tax_rate.included_in_price? ? :including_tax : :excluding_tax,
              scope: 'shipping_rates.display_price',
              price: price,
              tax_amount: display_tax_amount,
              tax_rate_name: tax_rate.name
    end
    alias display_cost display_price

    def tax_amount
      @_tax_amount ||= tax_rate.calculator.compute_shipping_rate(self)
    end

    def shipping_method
      Spree::ShippingMethod.unscoped { super }
    end

    def tax_rate
      Spree::TaxRate.unscoped { super }
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
spree_core-3.4.6 app/models/spree/shipping_rate.rb
spree_core-3.6.6 app/models/spree/shipping_rate.rb
spree_core-3.6.5 app/models/spree/shipping_rate.rb
spree_core-3.6.4 app/models/spree/shipping_rate.rb
spree_core-3.6.3 app/models/spree/shipping_rate.rb
spree_core-3.6.2 app/models/spree/shipping_rate.rb
spree_core-3.6.1 app/models/spree/shipping_rate.rb
spree_core-3.6.0 app/models/spree/shipping_rate.rb
spree_core-3.5.0 app/models/spree/shipping_rate.rb
spree_core-3.6.0.rc1 app/models/spree/shipping_rate.rb
spree_core-3.5.0.rc2 app/models/spree/shipping_rate.rb
spree_core-3.5.0.rc1 app/models/spree/shipping_rate.rb
spree_core-3.4.5 app/models/spree/shipping_rate.rb
spree_core-3.4.4 app/models/spree/shipping_rate.rb
spree_core-3.4.3 app/models/spree/shipping_rate.rb
spree_core-3.4.2 app/models/spree/shipping_rate.rb
spree_core-3.4.1 app/models/spree/shipping_rate.rb
spree_core-3.4.0 app/models/spree/shipping_rate.rb
spree_core-3.4.0.rc2 app/models/spree/shipping_rate.rb
spree_core-3.4.0.rc1 app/models/spree/shipping_rate.rb