Sha256: cbce2ae0431a4748078253cc4d52e9b9a80fd2336d70b49e677f99885cd2d6a7

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

module SolidusConfigurableKits
  class PricingOptions < ::Spree::Variant::PricingOptions
    def self.default_price_attributes
      {
        currency: ::Spree::Config.currency,
        country_iso: ::Spree::Config.admin_vat_country_iso,
        kit_item: false
      }
    end

    def self.from_line_item(line_item)
      tax_address = line_item.order&.tax_address
      new(
        currency: line_item.currency || ::Spree::Config.currency,
        country_iso: tax_address && tax_address.country&.iso,
        kit_item: line_item.kit_item?
      )
    end

    def self.from_price(price)
      new(
        currency: price.currency,
        country_iso: price.country_iso,
        kit_item: price.kit_item
      )
    end

    def self.from_context(context, kit_item: false)
      new(
        currency: context.current_store&.default_currency.presence || ::Spree::Config[:currency],
        country_iso: context.current_store&.cart_tax_country_iso.presence,
        kit_item: kit_item
      )
    end

    def kit_item?
      desired_attributes(:kit_item)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
solidus_configurable_kits-0.1.1 app/services/solidus_configurable_kits/pricing_options.rb
solidus_configurable_kits-0.1.0 app/services/solidus_configurable_kits/pricing_options.rb