Class: Spree::InventoryUnit

Inherits:
Base
  • Object
show all
Defined in:
app/models/spree/inventory_unit.rb

Overview

Tracks the state of line items’ fulfillment.

Constant Summary collapse

PRE_SHIPMENT_STATES =
%w(backordered on_hand)
POST_SHIPMENT_STATES =
%w(returned)
CANCELABLE_STATES =
['on_hand', 'backordered', 'shipped']

Instance Method Summary collapse

Methods inherited from Base

display_includes

Methods included from Core::Permalinks

#generate_permalink, #save_permalink

Instance Method Details

#additional_tax_totalBigDecimal



79
80
81
# File 'app/models/spree/inventory_unit.rb', line 79

def additional_tax_total
  line_item.additional_tax_total * percentage_of_line_item
end

#allow_ship?Boolean



96
97
98
# File 'app/models/spree/inventory_unit.rb', line 96

def allow_ship?
  on_hand?
end

#backordered_for_stock_item(stock_item) ⇒ ActiveRecord::Relation<Spree::InventoryUnit>



54
55
56
57
# File 'app/models/spree/inventory_unit.rb', line 54

scope :backordered_for_stock_item, ->(stock_item) do
  backordered_per_variant(stock_item)
    .where(spree_shipments: { stock_location_id: stock_item.stock_location_id })
end

#current_or_new_return_itemSpree::ReturnItem



72
73
74
# File 'app/models/spree/inventory_unit.rb', line 72

def current_or_new_return_item
  Spree::ReturnItem.from_inventory_unit(self)
end

#exchange_requested?Boolean



92
93
94
# File 'app/models/spree/inventory_unit.rb', line 92

def exchange_requested?
  return_items.not_expired.any?(&:exchange_requested?)
end

#find_stock_itemSpree::StockItem



65
66
67
68
# File 'app/models/spree/inventory_unit.rb', line 65

def find_stock_item
  Spree::StockItem.where(stock_location_id: shipment.stock_location_id,
    variant_id: variant_id).first
end

#included_tax_totalBigDecimal



86
87
88
# File 'app/models/spree/inventory_unit.rb', line 86

def included_tax_total
  line_item.included_tax_total * percentage_of_line_item
end

#order=(_) ⇒ Object



23
24
25
# File 'app/models/spree/inventory_unit.rb', line 23

def order=(_)
  raise "The order association has been removed from InventoryUnit. The order is now determined from the shipment."
end