mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-17 04:34:24 +00:00
Move inventory enabled check to OpenFoodNetwork::ScopeVariantToHub
This commit is contained in:
@@ -54,9 +54,9 @@ module Admin
|
||||
|
||||
fee_calculator = OpenFoodNetwork::EnterpriseFeeCalculator.new(@shop, @order_cycle)
|
||||
|
||||
if OpenFoodNetwork::FeatureToggle.enabled?(:inventory, @shop)
|
||||
OpenFoodNetwork::ScopeVariantToHub.new(@shop).scope(@variant)
|
||||
end
|
||||
OpenFoodNetwork::ScopeVariantToHub.new(@shop).scope(
|
||||
@variant, inventory_enabled: OpenFoodNetwork::FeatureToggle.enabled?(:inventory, @shop)
|
||||
)
|
||||
|
||||
@variant.price + fee_calculator.indexed_fees_for(@variant)
|
||||
end
|
||||
|
||||
@@ -113,9 +113,10 @@ module Api
|
||||
def scoped_variant(variant_id)
|
||||
variant = Spree::Variant.find(variant_id)
|
||||
|
||||
if OpenFoodNetwork::FeatureToggle.enabled?(:inventory, @order.distributor)
|
||||
OpenFoodNetwork::ScopeVariantToHub.new(@order.distributor).scope(variant)
|
||||
end
|
||||
OpenFoodNetwork::ScopeVariantToHub.new(@order.distributor).scope(
|
||||
variant,
|
||||
inventory_enabled: OpenFoodNetwork::FeatureToggle.enabled?(:inventory, @order.distributor)
|
||||
)
|
||||
|
||||
variant
|
||||
end
|
||||
|
||||
@@ -289,9 +289,12 @@ class OrderCycle < ApplicationRecord
|
||||
|
||||
items = Spree::LineItem.includes(:variant).joins(:order).merge(orders)
|
||||
|
||||
if OpenFoodNetwork::FeatureToggle.enabled?(:inventory, distributor)
|
||||
scoper = OpenFoodNetwork::ScopeVariantToHub.new(distributor)
|
||||
items.each { |li| scoper.scope(li.variant) }
|
||||
scoper = OpenFoodNetwork::ScopeVariantToHub.new(distributor)
|
||||
items.each do |li|
|
||||
scoper.scope(
|
||||
li.variant,
|
||||
inventory_enabled: OpenFoodNetwork::FeatureToggle.enabled?(:inventory, distributor)
|
||||
)
|
||||
end
|
||||
|
||||
items
|
||||
|
||||
@@ -296,9 +296,10 @@ module Spree
|
||||
end
|
||||
|
||||
def scope_variant
|
||||
if OpenFoodNetwork::FeatureToggle.enabled?(:inventory, order.distributor)
|
||||
scoper.scope(variant)
|
||||
end
|
||||
scoper.scope(
|
||||
variant,
|
||||
inventory_enabled: OpenFoodNetwork::FeatureToggle.enabled?(:inventory, order.distributor)
|
||||
)
|
||||
|
||||
variant
|
||||
end
|
||||
|
||||
@@ -195,9 +195,10 @@ module Spree
|
||||
states = {}
|
||||
units.group_by(&:state).each { |state, iu| states[state] = iu.count }
|
||||
|
||||
if OpenFoodNetwork::FeatureToggle.enabled?(:inventory, order.distributor)
|
||||
scoper.scope(variant)
|
||||
end
|
||||
scoper.scope(
|
||||
variant,
|
||||
inventory_enabled: OpenFoodNetwork::FeatureToggle.enabled?(:inventory, order.distributor)
|
||||
)
|
||||
|
||||
OpenStruct.new(variant:, quantity: units.length, states:)
|
||||
end
|
||||
|
||||
@@ -59,9 +59,10 @@ class CartService
|
||||
end
|
||||
|
||||
def attempt_cart_add(variant, quantity, max_quantity = nil)
|
||||
if OpenFoodNetwork::FeatureToggle.enabled?(:inventory, order.distributor)
|
||||
scoper.scope(variant)
|
||||
end
|
||||
scoper.scope(
|
||||
variant,
|
||||
inventory_enabled: OpenFoodNetwork::FeatureToggle.enabled?(:inventory, order.distributor)
|
||||
)
|
||||
|
||||
return unless valid_variant?(variant)
|
||||
|
||||
|
||||
@@ -51,9 +51,9 @@ module Orders
|
||||
attrs[:line_items].each do |li|
|
||||
next unless variant = Spree::Variant.find_by(id: li[:variant_id])
|
||||
|
||||
if OpenFoodNetwork::FeatureToggle.enabled?(:inventory, shop)
|
||||
scoper.scope(variant)
|
||||
end
|
||||
scoper.scope(
|
||||
variant, inventory_enabled: OpenFoodNetwork::FeatureToggle.enabled?(:inventory, shop)
|
||||
)
|
||||
|
||||
li[:quantity] = stock_limited_quantity(variant.on_demand, variant.on_hand, li[:quantity])
|
||||
li[:price] = variant.price
|
||||
|
||||
@@ -39,9 +39,9 @@ class VariantsStockLevels
|
||||
def scoped_variant(distributor, variant)
|
||||
return variant if distributor.blank?
|
||||
|
||||
if OpenFoodNetwork::FeatureToggle.enabled?(:inventory, distributor)
|
||||
scoper(distributor).scope(variant)
|
||||
end
|
||||
scoper(distributor).scope(
|
||||
variant, inventory_enabled: OpenFoodNetwork::FeatureToggle.enabled?(:inventory, distributor)
|
||||
)
|
||||
variant
|
||||
end
|
||||
|
||||
|
||||
@@ -15,9 +15,11 @@ module OrderManagement
|
||||
variant = line_item.variant
|
||||
next unless variant.stock_item
|
||||
|
||||
if OpenFoodNetwork::FeatureToggle.enabled?(:inventory, order.distributor)
|
||||
OpenFoodNetwork::ScopeVariantToHub.new(order.distributor).scope(variant)
|
||||
end
|
||||
OpenFoodNetwork::ScopeVariantToHub.new(order.distributor).scope(
|
||||
variant,
|
||||
inventory_enabled: OpenFoodNetwork::FeatureToggle.enabled?(:inventory,
|
||||
order.distributor)
|
||||
)
|
||||
|
||||
on_hand, backordered = variant.fill_status(line_item.quantity)
|
||||
package.add variant, on_hand, :on_hand if on_hand.positive?
|
||||
|
||||
@@ -34,9 +34,10 @@ module OrderManagement
|
||||
def price_estimate_for(variant, fallback)
|
||||
return fallback unless fee_calculator && variant
|
||||
|
||||
if OpenFoodNetwork::FeatureToggle.enabled?(:inventory, shop)
|
||||
scoper.scope(variant)
|
||||
end
|
||||
scoper.scope(
|
||||
variant, inventory_enabled: OpenFoodNetwork::FeatureToggle.enabled?(:inventory, shop)
|
||||
)
|
||||
|
||||
fees = fee_calculator.indexed_fees_for(variant)
|
||||
(variant.price + fees).to_d
|
||||
end
|
||||
|
||||
@@ -7,7 +7,9 @@ module OpenFoodNetwork
|
||||
@variant_overrides = variant_overrides || VariantOverride.indexed(@hub)
|
||||
end
|
||||
|
||||
def scope(variant)
|
||||
def scope(variant, inventory_enabled: true)
|
||||
return unless inventory_enabled
|
||||
|
||||
variant.extend(OpenFoodNetwork::ScopeVariantToHub::ScopeVariantToHub)
|
||||
variant.instance_variable_set :@hub, @hub
|
||||
variant.instance_variable_set :@variant_override, @variant_overrides[variant]
|
||||
|
||||
@@ -233,5 +233,13 @@ RSpec.describe OpenFoodNetwork::ScopeVariantToHub do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "with inventory is disabled" do
|
||||
it "doesn't override the variant" do
|
||||
vo
|
||||
scoper.scope(v, inventory_enabled: false)
|
||||
expect(v.price).to eq(11.11)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user