diff --git a/app/models/spree/line_item_decorator.rb b/app/models/spree/line_item_decorator.rb index 5581993dff..6f085f30f5 100644 --- a/app/models/spree/line_item_decorator.rb +++ b/app/models/spree/line_item_decorator.rb @@ -36,6 +36,10 @@ Spree::LineItem.class_eval do end } + scope :in_orders, lambda { |orders| + where(order_id: orders) + } + # Find line items that are from order sorted by variant name and unit value scope :sorted_by_name_and_unit_value, -> { joins(variant: :product). diff --git a/lib/open_food_network/reports/line_items.rb b/lib/open_food_network/reports/line_items.rb index 4e272a7c13..ce3bc9e97e 100644 --- a/lib/open_food_network/reports/line_items.rb +++ b/lib/open_food_network/reports/line_items.rb @@ -12,9 +12,7 @@ module OpenFoodNetwork end def list(line_item_includes = nil) - line_items = @order_permissions. - visible_line_items. - merge(Spree::LineItem.where(order_id: orders.result)) + line_items = @order_permissions.visible_line_items.in_orders(orders.result) if @params[:supplier_id_in].present? line_items = line_items.supplied_by_any(@params[:supplier_id_in])