Sha256: 3ce7ebd2b43369eada184b41fabd1d45048a96b1f91af44fbd820ac92d5bfc2e

Contents?: true

Size: 1.16 KB

Versions: 3

Compression:

Stored size: 1.16 KB

Contents

module Workarea
  module Orderbot
    module Pricing
      class ImportPricing
        include Sidekiq::Worker

        def perform
          Workarea::Orderbot::PricingImportData.each do |sku_price|
            pricing_data = sku_price.pricing_data.deep_symbolize_keys

            next unless pricing_data[:sku].present?
            sku = Workarea::Pricing::Sku.find_or_initialize_by(id: pricing_data[:sku])

            original_price = pricing_data[:original_price]
            price =  pricing_data[:price]

            regular = regular_price(price, original_price)
            sale = sale_price(price, original_price)

            sku.on_sale = sale.present?
            sku.prices = [{ regular: regular, sale: sale, on_sale: sale.present? }]
            sku.save!

            sku_price.delete
          end
        end

        private

        def regular_price(price, original_price)
          return original_price if original_price.present? && original_price > price
          price
        end

        def sale_price(price, original_price)
          return nil if original_price.blank? || original_price == price
          price
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
workarea-orderbot-1.0.2 app/workers/workarea/orderbot/pricing/import_pricing.rb
workarea-orderbot-1.0.1 app/workers/workarea/orderbot/pricing/import_pricing.rb
workarea-orderbot-1.0.0 app/workers/workarea/orderbot/pricing/import_pricing.rb