diff --git a/lib/open_food_network/bulk_coop_report.rb b/lib/open_food_network/bulk_coop_report.rb index d6ff3c9548..5339200185 100644 --- a/lib/open_food_network/bulk_coop_report.rb +++ b/lib/open_food_network/bulk_coop_report.rb @@ -51,8 +51,7 @@ module OpenFoodNetwork def table_items return [] unless @render_table - - Reports::LineItems.list(permissions, params) + Reports::LineItems.list(permissions, report_options) end def rules @@ -122,9 +121,17 @@ module OpenFoodNetwork private + def report_options + @params.merge(line_item_includes: line_item_includes) + end + + def line_item_includes + [{ order: [:bill_address], + variant: [{ option_values: :option_type }, { product: :supplier }] }] + end + def permissions return @permissions unless @permissions.nil? - @permissions = OpenFoodNetwork::Permissions.new(@user) end end diff --git a/lib/open_food_network/orders_and_fulfillments_report/customer_totals_report.rb b/lib/open_food_network/orders_and_fulfillments_report/customer_totals_report.rb index fefaa73b64..c509ce631e 100644 --- a/lib/open_food_network/orders_and_fulfillments_report/customer_totals_report.rb +++ b/lib/open_food_network/orders_and_fulfillments_report/customer_totals_report.rb @@ -190,7 +190,7 @@ module OpenFoodNetwork # rubocop:enable Metrics/PerceivedComplexity def line_item_includes - [{ variant: { product: :supplier }, + [{ variant: [{ option_values: :option_type }, { product: :supplier }], order: [:bill_address, :ship_address, :order_cycle, :adjustments, :payments, :user, :distributor, shipments: { shipping_rates: :shipping_method }] }] end diff --git a/lib/open_food_network/orders_and_fulfillments_report/distributor_totals_by_supplier_report.rb b/lib/open_food_network/orders_and_fulfillments_report/distributor_totals_by_supplier_report.rb index 4f7cdf6f72..71fbf7b0f7 100644 --- a/lib/open_food_network/orders_and_fulfillments_report/distributor_totals_by_supplier_report.rb +++ b/lib/open_food_network/orders_and_fulfillments_report/distributor_totals_by_supplier_report.rb @@ -69,7 +69,7 @@ module OpenFoodNetwork def line_item_includes [{ order: [:distributor, :adjustments, shipments: { shipping_rates: :shipping_method }], - variant: { product: :supplier } }] + variant: [{ option_values: :option_type }, { product: :supplier }] }] end end end diff --git a/lib/open_food_network/orders_and_fulfillments_report/supplier_totals_by_distributor_report.rb b/lib/open_food_network/orders_and_fulfillments_report/supplier_totals_by_distributor_report.rb index b91dcb95d6..63bcf0e121 100644 --- a/lib/open_food_network/orders_and_fulfillments_report/supplier_totals_by_distributor_report.rb +++ b/lib/open_food_network/orders_and_fulfillments_report/supplier_totals_by_distributor_report.rb @@ -69,7 +69,8 @@ module OpenFoodNetwork # rubocop:enable Metrics/AbcSize def line_item_includes - [{ order: :distributor, variant: { product: :supplier } }] + [{ order: :distributor, + variant: [{ option_values: :option_type }, { product: :supplier }] }] end end end diff --git a/lib/open_food_network/orders_and_fulfillments_report/supplier_totals_report.rb b/lib/open_food_network/orders_and_fulfillments_report/supplier_totals_report.rb index 31e8ed30c7..905a06af42 100644 --- a/lib/open_food_network/orders_and_fulfillments_report/supplier_totals_report.rb +++ b/lib/open_food_network/orders_and_fulfillments_report/supplier_totals_report.rb @@ -55,7 +55,7 @@ module OpenFoodNetwork # rubocop:enable Metrics/MethodLength def line_item_includes - [{ variant: { product: :supplier } }] + [{ variant: [{ option_values: :option_type }, { product: :supplier }] }] end end end diff --git a/lib/open_food_network/packing_report.rb b/lib/open_food_network/packing_report.rb index c7dd175d09..3f5e420626 100644 --- a/lib/open_food_network/packing_report.rb +++ b/lib/open_food_network/packing_report.rb @@ -43,8 +43,7 @@ module OpenFoodNetwork def table_items return [] unless @render_table - - Reports::LineItems.list(permissions, params) + Reports::LineItems.list(permissions, report_options) end def rules @@ -121,9 +120,17 @@ module OpenFoodNetwork private + def report_options + @params.merge(line_item_includes: line_item_includes) + end + + def line_item_includes + [{ order: [:bill_address, :distributor], + variant: [{ option_values: :option_type }, { product: :supplier }] }] + end + def permissions return @permissions unless @permissions.nil? - @permissions = OpenFoodNetwork::Permissions.new(@user) end diff --git a/lib/open_food_network/products_and_inventory_report_base.rb b/lib/open_food_network/products_and_inventory_report_base.rb index e7583f2c0c..d0f4a50de8 100644 --- a/lib/open_food_network/products_and_inventory_report_base.rb +++ b/lib/open_food_network/products_and_inventory_report_base.rb @@ -25,6 +25,7 @@ module OpenFoodNetwork def child_variants Spree::Variant. where(is_master: false). + includes(option_values: :option_type). joins(:product). merge(visible_products). order('spree_products.name') diff --git a/lib/open_food_network/xero_invoices_report.rb b/lib/open_food_network/xero_invoices_report.rb index 3ccf7dd25f..36bbdf9fe8 100644 --- a/lib/open_food_network/xero_invoices_report.rb +++ b/lib/open_food_network/xero_invoices_report.rb @@ -43,6 +43,15 @@ module OpenFoodNetwork private + def report_options + @opts.merge(line_item_includes: line_item_includes) + end + + def line_item_includes + [:bill_address, :adjustments, + line_items: { variant: [{ option_values: :option_type }, { product: :supplier }] }] + end + def detail_rows_for_order(order, invoice_number, opts) rows = []