mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Find exchanges with any of a number of variants
This commit is contained in:
@@ -20,6 +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 :with_product, lambda { |product| joins(:exchange_variants).where('exchange_variants.variant_id IN (?)', product.variants_including_master) }
|
||||
|
||||
def clone!(new_order_cycle)
|
||||
|
||||
@@ -111,6 +111,15 @@ describe Exchange do
|
||||
Exchange.with_variant(v).should == [ex]
|
||||
end
|
||||
|
||||
it "finds exchanges with any of a number of variants" do
|
||||
v1 = create(:variant)
|
||||
v2 = create(:variant)
|
||||
ex = create(:exchange)
|
||||
ex.variants << v1
|
||||
|
||||
Exchange.any_variant([v1, v2]).should == [ex]
|
||||
end
|
||||
|
||||
it "finds exchanges with a particular product's master variant" do
|
||||
p = create(:simple_product)
|
||||
ex = create(:exchange)
|
||||
|
||||
Reference in New Issue
Block a user