mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Fix bug: Whole order fees being charged once per variant. Exchange.any_variant was returning duplicate rows.
This commit is contained in:
@@ -20,7 +20,7 @@ class Exchange < ActiveRecord::Base
|
||||
scope :from_enterprises, lambda { |enterprises| where('exchanges.sender_id IN (?)', enterprises) }
|
||||
scope :to_enterprises, lambda { |enterprises| where('exchanges.receiver_id IN (?)', enterprises) }
|
||||
scope :with_variant, lambda { |variant| joins(:exchange_variants).where('exchange_variants.variant_id = ?', variant) }
|
||||
scope :any_variant, lambda { |variants| joins(:exchange_variants).where('exchange_variants.variant_id IN (?)', variants) }
|
||||
scope :any_variant, lambda { |variants| joins(:exchange_variants).where('exchange_variants.variant_id IN (?)', variants).select('DISTINCT exchanges.*') }
|
||||
scope :with_product, lambda { |product| joins(:exchange_variants).where('exchange_variants.variant_id IN (?)', product.variants_including_master) }
|
||||
|
||||
def clone!(new_order_cycle)
|
||||
|
||||
@@ -114,10 +114,12 @@ describe Exchange do
|
||||
it "finds exchanges with any of a number of variants" do
|
||||
v1 = create(:variant)
|
||||
v2 = create(:variant)
|
||||
v3 = create(:variant)
|
||||
ex = create(:exchange)
|
||||
ex.variants << v1
|
||||
ex.variants << v2
|
||||
|
||||
Exchange.any_variant([v1, v2]).should == [ex]
|
||||
Exchange.any_variant([v1, v2, v3]).should == [ex]
|
||||
end
|
||||
|
||||
it "finds exchanges with a particular product's master variant" do
|
||||
|
||||
Reference in New Issue
Block a user