From 4b1bd362e01e9c21e40bbc79189c0661afe79022 Mon Sep 17 00:00:00 2001 From: Mohamed ABDELLANI Date: Fri, 18 Nov 2022 07:29:08 +0100 Subject: [PATCH 1/2] [skip ci] add hub filter to the Order and Distributors report --- .../admin/reports/filters/_orders_and_distributors.html.haml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/views/admin/reports/filters/_orders_and_distributors.html.haml b/app/views/admin/reports/filters/_orders_and_distributors.html.haml index 35c5a74266..c79c22c66f 100644 --- a/app/views/admin/reports/filters/_orders_and_distributors.html.haml +++ b/app/views/admin/reports/filters/_orders_and_distributors.html.haml @@ -1 +1,5 @@ = render 'admin/reports/date_range_form', f: f + +.row + .alpha.two.columns= label_tag nil, t(:report_hubs) + .omega.fourteen.columns= f.collection_select(:distributor_id_in, @data.orders_distributors, :id, :name, {}, {class: "select2 fullwidth", multiple: true}) From 688020a3043e038820377bd234ccac4657411cbb Mon Sep 17 00:00:00 2001 From: Mohamed ABDELLANI Date: Fri, 18 Nov 2022 08:49:02 +0100 Subject: [PATCH 2/2] test filtering by distributor (orders_and_distributors_report_spec) --- .../orders_and_distributors_report_spec.rb | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/spec/lib/reports/orders_and_distributors_report_spec.rb b/spec/lib/reports/orders_and_distributors_report_spec.rb index 243b45005b..414fa14d6b 100644 --- a/spec/lib/reports/orders_and_distributors_report_spec.rb +++ b/spec/lib/reports/orders_and_distributors_report_spec.rb @@ -25,6 +25,7 @@ module Reporting context 'with completed order' do let(:bill_address) { create(:address) } let(:distributor) { create(:distributor_enterprise) } + let(:distributor1) { create(:distributor_enterprise) } let(:product) { create(:product) } let(:shipping_method) { create(:shipping_method) } let(:shipping_instructions) { 'pick up on thursday please!' } @@ -82,6 +83,26 @@ module Reporting table = subject.table_rows expect(table.size).to eq 2 end + + context "filtering by distributor" do + it do + create(:line_item_with_shipment, order: order) + + report1 = Base.new(create(:admin_user), {}) + table = report1.table_rows + expect(table.size).to eq 2 + + report2 = Base.new(create(:admin_user), + { q: { distributor_id_in: [distributor.id] } }) + table2 = report2.table_rows + expect(table2.size).to eq 2 + + report3 = Base.new(create(:admin_user), + { q: { distributor_id_in: [distributor1.id] } }) + table3 = report3.table_rows + expect(table3.size).to eq 0 + end + end end end end