diff --git a/app/models/enterprise.rb b/app/models/enterprise.rb index b3a5669f03..135358fdc7 100644 --- a/app/models/enterprise.rb +++ b/app/models/enterprise.rb @@ -250,7 +250,7 @@ class Enterprise < ActiveRecord::Base def plus_relatives_and_oc_producers(order_cycles) oc_producer_ids = Exchange.in_order_cycle(order_cycles).incoming.pluck :sender_id - Enterprise.relatives_of_one_union_others(id, oc_producer_ids | [id]) + Enterprise.is_primary_producer.relatives_of_one_union_others(id, oc_producer_ids | [id]) end def relatives_including_self diff --git a/spec/models/enterprise_spec.rb b/spec/models/enterprise_spec.rb index 670ae6170b..492f21fc60 100644 --- a/spec/models/enterprise_spec.rb +++ b/spec/models/enterprise_spec.rb @@ -599,4 +599,19 @@ describe Enterprise do end end end + + describe "#plus_relatives_and_oc_producers" do + it "does not find non-produders " do + supplier = create(:supplier_enterprise) + distributor = create(:distributor_enterprise, is_primary_producer: false) + product = create(:product) + order_cycle = create( + :simple_order_cycle, + suppliers: [supplier], + distributors: [distributor], + variants: [product.master] + ) + expect(distributor.plus_relatives_and_oc_producers(order_cycle)).to eq([supplier]) + end + end end