mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Update stock levels of on-demand items
We weren't bothering with stock when items were on demand anyway. But we want to track stock now so that we can backorder more when local stock levels become negative.
This commit is contained in:
@@ -112,8 +112,7 @@ module VariantStock
|
||||
#
|
||||
# This enables us to override this behaviour for variant overrides
|
||||
def move(quantity, originator = nil)
|
||||
# Don't change variant stock if variant is on_demand or has been deleted
|
||||
return if on_demand || deleted_at
|
||||
return if deleted_at
|
||||
|
||||
raise_error_if_no_stock_item_available
|
||||
|
||||
|
||||
@@ -43,11 +43,7 @@ module OpenFoodNetwork
|
||||
# - updates variant_override.count_on_hand
|
||||
# - does not create stock_movement
|
||||
# - does not update stock_item.count_on_hand
|
||||
# If it is a variant override with on_demand:
|
||||
# - don't change stock or call super (super would change the variant's stock)
|
||||
def move(quantity, originator = nil)
|
||||
return if @variant_override&.on_demand
|
||||
|
||||
if @variant_override&.stock_overridden?
|
||||
@variant_override.move_stock! quantity
|
||||
else
|
||||
|
||||
@@ -181,9 +181,9 @@ module OpenFoodNetwork
|
||||
scoper.scope v2
|
||||
end
|
||||
|
||||
it "doesn't reduce variant's stock" do
|
||||
it "does reduce variant's stock" do
|
||||
v2.move(-2)
|
||||
expect(Spree::Variant.find(v2.id).on_hand).to eq 5
|
||||
expect(Spree::Variant.find(v2.id).on_hand).to eq 3
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -303,8 +303,8 @@ module Spree
|
||||
expect(order.shipment.manifest.first.variant).to eq line_item.variant
|
||||
end
|
||||
|
||||
it "does not reduce the variant's stock level" do
|
||||
expect(variant_on_demand.reload.on_hand).to eq 1
|
||||
it "reduces the variant's stock level" do
|
||||
expect(variant_on_demand.reload.on_hand).to eq(-9)
|
||||
end
|
||||
|
||||
it "does not mark inventory units as backorderd" do
|
||||
|
||||
@@ -210,12 +210,12 @@ RSpec.describe "shopping with variant overrides defined" do
|
||||
expect(product1_variant1_override.reload.count_on_hand).to be_nil
|
||||
end
|
||||
|
||||
it "does not subtract stock from variants where the override has on_demand: true" do
|
||||
it "does subtract stock from variants where the override has on_demand: true" do
|
||||
click_add_to_cart product4_variant1, 2
|
||||
click_checkout
|
||||
expect do
|
||||
complete_checkout
|
||||
end.to change { product4_variant1.reload.on_hand }.by(0)
|
||||
end.to change { product4_variant1.reload.on_hand }.by(-2)
|
||||
expect(product4_variant1_override.reload.count_on_hand).to be_nil
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user