mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-13 18:46:49 +00:00
Compare commits
1 Commits
RachL-patc
...
v4.4.52
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ac7a36416b |
@@ -112,7 +112,8 @@ module VariantStock
|
||||
#
|
||||
# This enables us to override this behaviour for variant overrides
|
||||
def move(quantity, originator = nil)
|
||||
return if deleted_at
|
||||
# Don't change variant stock if variant is on_demand or has been deleted
|
||||
return if on_demand || deleted_at
|
||||
|
||||
raise_error_if_no_stock_item_available
|
||||
|
||||
|
||||
@@ -15,9 +15,7 @@ class VariantOverride < ApplicationRecord
|
||||
# Need to ensure this can be set by the user.
|
||||
validates :default_stock, numericality: { greater_than_or_equal_to: 0 }, allow_nil: true
|
||||
validates :price, numericality: { greater_than_or_equal_to: 0 }, allow_nil: true
|
||||
validates :count_on_hand, numericality: {
|
||||
greater_than_or_equal_to: 0, unless: :on_demand?
|
||||
}, allow_nil: true
|
||||
validates :count_on_hand, numericality: { greater_than_or_equal_to: 0 }, allow_nil: true
|
||||
|
||||
default_scope { where(permission_revoked_at: nil) }
|
||||
|
||||
|
||||
@@ -43,7 +43,11 @@ 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 "does reduce variant's stock" do
|
||||
it "doesn't reduce variant's stock" do
|
||||
v2.move(-2)
|
||||
expect(Spree::Variant.find(v2.id).on_hand).to eq 3
|
||||
expect(Spree::Variant.find(v2.id).on_hand).to eq 5
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -303,8 +303,8 @@ module Spree
|
||||
expect(order.shipment.manifest.first.variant).to eq line_item.variant
|
||||
end
|
||||
|
||||
it "reduces the variant's stock level" do
|
||||
expect(variant_on_demand.reload.on_hand).to eq(-9)
|
||||
it "does not reduce the variant's stock level" do
|
||||
expect(variant_on_demand.reload.on_hand).to eq 1
|
||||
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 subtract stock from variants where the override has on_demand: true" do
|
||||
it "does not 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(-2)
|
||||
end.to change { product4_variant1.reload.on_hand }.by(0)
|
||||
expect(product4_variant1_override.reload.count_on_hand).to be_nil
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user