mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Enterprise.active_distributors finds active distributors by order cycles
This commit is contained in:
@@ -27,8 +27,13 @@ class Enterprise < ActiveRecord::Base
|
||||
select('DISTINCT enterprises.*')
|
||||
|
||||
scope :with_distributed_products_outer, joins('LEFT OUTER JOIN product_distributions ON product_distributions.distributor_id = enterprises.id')
|
||||
scope :with_order_cycles_outer,
|
||||
joins('LEFT OUTER JOIN exchanges ON (exchanges.receiver_id = enterprises.id)').
|
||||
joins('LEFT OUTER JOIN order_cycles ON (order_cycles.id = exchanges.order_cycle_id)')
|
||||
|
||||
scope :active_distributors, with_distributed_products_outer.where('product_distributions.product_id IS NOT NULL')
|
||||
scope :active_distributors, with_distributed_products_outer.with_order_cycles_outer.
|
||||
where('product_distributions.product_id IS NOT NULL OR order_cycles.id IS NOT NULL').
|
||||
select('DISTINCT enterprises.*')
|
||||
|
||||
|
||||
def has_supplied_products_on_hand?
|
||||
|
||||
@@ -25,7 +25,14 @@ describe Enterprise do
|
||||
Enterprise.active_distributors.should == [d]
|
||||
end
|
||||
|
||||
it "finds active distributors by order cycles"
|
||||
it "finds active distributors by order cycles" do
|
||||
s = create(:supplier_enterprise)
|
||||
d = create(:distributor_enterprise)
|
||||
p = create(:product)
|
||||
create(:simple_order_cycle, suppliers: [s], distributors: [d], variants: [p.master])
|
||||
Enterprise.active_distributors.should == [d]
|
||||
end
|
||||
|
||||
it "doesn't show distributors of deleted products"
|
||||
it "doesn't show distributors of unavailable products"
|
||||
it "doesn't show distributors of out of stock products"
|
||||
|
||||
Reference in New Issue
Block a user