Enterprise.active_distributors finds active distributors by order cycles

This commit is contained in:
Rohan Mitchell
2013-03-08 16:39:42 +11:00
parent 977344e279
commit 00d7fcbfb6
2 changed files with 14 additions and 2 deletions

View File

@@ -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?

View File

@@ -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"