diff --git a/lib/open_food_network/order_cycle_management_report.rb b/lib/open_food_network/order_cycle_management_report.rb index d9921d15c2..72133a1ba3 100644 --- a/lib/open_food_network/order_cycle_management_report.rb +++ b/lib/open_food_network/order_cycle_management_report.rb @@ -107,7 +107,7 @@ module OpenFoodNetwork def filter_to_shipping_method(orders) if params[:shipping_method_in].present? - orders.joins(:shipping_method).where(shipping_method_id: params[:shipping_method_in]) + orders.joins(shipments: :shipping_methods).where(shipping_method_id: params[:shipping_method_in]) else orders end diff --git a/spec/lib/open_food_network/order_cycle_management_report_spec.rb b/spec/lib/open_food_network/order_cycle_management_report_spec.rb index 49a9915301..8c50b567a5 100644 --- a/spec/lib/open_food_network/order_cycle_management_report_spec.rb +++ b/spec/lib/open_food_network/order_cycle_management_report_spec.rb @@ -69,7 +69,8 @@ module OpenFoodNetwork let!(:oc1) { create(:simple_order_cycle) } let!(:pm1) { create(:payment_method, name: "PM1") } let!(:sm1) { create(:shipping_method, name: "ship1") } - let!(:order1) { create(:order, shipping_method: sm1, order_cycle: oc1) } + let!(:s1) { create(:shipment_with, :shipping_method, shipping_method: sm1) } + let!(:order1) { create(:order, shipments: [s1], order_cycle: oc1) } let!(:payment1) { create(:payment, order: order1, payment_method: pm1) } it "returns all orders sans-params" do @@ -89,7 +90,6 @@ module OpenFoodNetwork pm3 = create(:payment_method, name: "PM3") order2 = create(:order, payments: [create(:payment, payment_method: pm2)]) order3 = create(:order, payments: [create(:payment, payment_method: pm3)]) - # payment2 = create(:payment, order: order2, payment_method: pm2) subject.stub(:params).and_return(payment_method_in: [pm1.id, pm3.id] ) subject.filter(orders).should match_array [order1, order3] @@ -98,8 +98,10 @@ module OpenFoodNetwork it "filters to a shipping method" do sm2 = create(:shipping_method, name: "ship2") sm3 = create(:shipping_method, name: "ship3") - order2 = create(:order, shipping_method: sm2) - order3 = create(:order, shipping_method: sm3) + s2 = create(:shipment_with, :shipping_method, shipping_method: sm2) + s3 = create(:shipment_with, :shipping_method, shipping_method: sm3) + order2 = create(:order, shipments: [s2]) + order3 = create(:order, shipments: [s3]) subject.stub(:params).and_return(shipping_method_in: [sm1.id, sm3.id]) expect(subject.filter(orders)).to match_array [order1, order3]