Sha256: 4069b3d94a3629362433b4f4f39116e00c1ae4aac11faa22876768aab97fe1f7
Contents?: true
Size: 1.34 KB
Versions: 1
Compression:
Stored size: 1.34 KB
Contents
module Workarea decorate Pricing::Sku, with: :flow_io do decorated do embeds_many :flow_io_local_items, class_name: "Workarea::FlowIo::LocalItem" end # @return Money def msrp_for_experience(experience) local_item = flow_io_local_items.detect do |item| item.experience.key == experience.key end local_item&.msrp&.price end # Find the price to sell at for a specific options. # # Takes options :quantity, :experience (::Io::Flow::V0::Models::ExperienceSummary || ::Io::Flow::V0::Models::ExperienceGeo) # # @param [Hash] # @return [Pricing::Price] # def find_price(options = {}) return super unless options[:experience].present? quantity = options[:quantity] || 1 local_item = flow_io_local_items.detect do |item| item.experience.key == options[:experience].key end local_item&.to_price(quantity) || Pricing::Price.new(regular: 0.to_m(options[:experience].currency)) end # @param Io::Flow::V0::Models::Item def import_flow_item(flow_item) local_item = flow_io_local_items.detect { |li| li.experience.key == flow_item.local.experience.key } || flow_io_local_items.new local_item.update_from_flow_item(flow_item) Sidekiq::Callbacks.disable(Workarea::FlowIo::ItemExporter) { save! } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
workarea-flow_io-1.2.1 | app/models/workarea/pricing/sku.decorator |