Sha256: 1c1e83a3d37f89dc268b1f46078ec2d49dc05f9535f895c30c37844b44f9955e

Contents?: true

Size: 744 Bytes

Versions: 85

Compression:

Stored size: 744 Bytes

Contents

# frozen_string_literal: true

module Spree
  module Stock
    class InventoryUnitBuilder
      def initialize(order)
        @order = order
      end

      def units
        @order.line_items.flat_map do |line_item|
          build_units(line_item, line_item.quantity)
        end
      end

      def missing_units_for_line_item(line_item)
        quantity = line_item.quantity - line_item.inventory_units.count
        build_units(line_item, quantity)
      end

      private

      def build_units(line_item, quantity)
        Array.new(quantity) do
          Spree::InventoryUnit.new(
            pending: true,
            variant: line_item.variant,
            line_item: line_item
          )
        end
      end
    end
  end
end

Version data entries

85 entries across 85 versions & 1 rubygems

Version Path
solidus_core-4.3.6 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.2.5 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.1.6 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.3.4 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.2.4 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.1.5 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.3.3 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.3.2 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.1.4 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.3.1 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.3.0 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.2.3 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.1.3 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.0.4 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-3.4.6 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.0.3 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.1.2 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.2.2 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-3.4.5 app/models/spree/stock/inventory_unit_builder.rb
solidus_core-4.2.1 app/models/spree/stock/inventory_unit_builder.rb