Class: SolidusConfigurableKits::PricingOptions

Inherits:
Spree::Variant::PricingOptions
  • Object
show all
Defined in:
app/services/solidus_configurable_kits/pricing_options.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.default_price_attributesObject



5
6
7
8
9
10
11
# File 'app/services/solidus_configurable_kits/pricing_options.rb', line 5

def self.default_price_attributes
  {
    currency: ::Spree::Config.currency,
    country_iso: ::Spree::Config.admin_vat_country_iso,
    kit_item: false
  }
end

.from_context(context, kit_item: false) ⇒ Object



30
31
32
33
34
35
36
# File 'app/services/solidus_configurable_kits/pricing_options.rb', line 30

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

.from_line_item(line_item) ⇒ Object



13
14
15
16
17
18
19
20
# File 'app/services/solidus_configurable_kits/pricing_options.rb', line 13

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

.from_price(price) ⇒ Object



22
23
24
25
26
27
28
# File 'app/services/solidus_configurable_kits/pricing_options.rb', line 22

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

Instance Method Details

#kit_item?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'app/services/solidus_configurable_kits/pricing_options.rb', line 38

def kit_item?
  desired_attributes(:kit_item)
end