Merge pull request #13064 from mkllnk/negative-stock

Don't show stock for on-demand inventory items
This commit is contained in:
Maikel
2025-01-21 11:05:50 +11:00
committed by GitHub
4 changed files with 19 additions and 3 deletions

View File

@@ -71,6 +71,12 @@ module Admin
def load_collection
collection_hash = Hash[variant_overrides_params.each_with_index.map { |vo, i| [i, vo] }]
# Reset count_on_hand when switching to producer settings:
collection_hash.each_value do |vo|
vo["count_on_hand"] = nil if vo.fetch("on_demand", :unchanged).nil?
end
@vo_set = Sets::VariantOverrideSet.new(@variant_overrides,
collection_attributes: collection_hash)
end

View File

@@ -6,6 +6,12 @@ module Api
attributes :id, :hub_id, :variant_id, :sku, :price, :count_on_hand, :on_demand,
:default_stock, :resettable, :tag_list, :tags, :import_date
def count_on_hand
return if object.on_demand
object.count_on_hand
end
def tag_list
object.tag_list.join(",")
end

View File

@@ -19,6 +19,7 @@ module Api
end
def on_hand
return if object.on_demand
return 0 if object.on_hand.nil?
object.on_hand

View File

@@ -254,9 +254,12 @@ RSpec.describe "
context "with overrides" do
let!(:vo) {
create(:variant_override, :on_demand, variant:, hub:, price: 77.77,
default_stock: 1000, resettable: true,
tag_list: ["tag1", "tag2", "tag3"])
create(
:variant_override,
on_demand: true, count_on_hand: -5,
variant:, hub:, price: 77.77, default_stock: 1000, resettable: true,
tag_list: ["tag1", "tag2", "tag3"]
)
}
let!(:vo_no_auth) {
create(:variant_override, variant:, hub: hub2, price: 1, count_on_hand: 2)