Sha256: 2b7d65f1308741cd7bed688d6d469622c3cefe88617b886697e444a95c3e05f6

Contents?: true

Size: 593 Bytes

Versions: 28

Compression:

Stored size: 593 Bytes

Contents

module Workarea
  class CreateFulfillment
    def initialize(order)
      @order = order
    end

    def fulfillment
      @fulfillment ||= Fulfillment.find_or_initialize_by(id: @order.id)
    end

    def perform
      @order.items.each do |item|
        next if fulfillment.items.detect { |i| i.order_item_id == item.id.to_s }
        fulfillment.items.build(order_item_id: item.id, quantity: item.quantity)

        Fulfillment::Sku.process!(
          item.sku,
          order_item: item,
          fulfillment: fulfillment
        )
      end

      fulfillment.save!
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
workarea-core-3.5.6 app/services/workarea/create_fulfillment.rb
workarea-core-3.5.5 app/services/workarea/create_fulfillment.rb
workarea-core-3.5.4 app/services/workarea/create_fulfillment.rb
workarea-core-3.5.3 app/services/workarea/create_fulfillment.rb
workarea-core-3.5.2 app/services/workarea/create_fulfillment.rb
workarea-core-3.5.1 app/services/workarea/create_fulfillment.rb
workarea-core-3.5.0 app/services/workarea/create_fulfillment.rb
workarea-core-3.5.0.beta.1 app/services/workarea/create_fulfillment.rb