Only shows order that actually have at least one line_item

Filter inside the API to shows only orders that have at least one line items
This commit is contained in:
Jean-Baptiste Bellet
2021-09-07 16:32:57 +02:00
parent ee546ffdd6
commit 0ec35b1f0d
2 changed files with 6 additions and 1 deletions

View File

@@ -106,6 +106,10 @@ module Spree
before_save :update_payment_fees!, if: :complete?
# -- Scopes
scope :not_empty, -> {
joins(:line_items).group(:id).having("count(spree_line_items.id) > 0")
}
scope :managed_by, lambda { |user|
if user.has_spree_role?('admin')
where(nil)

View File

@@ -23,7 +23,8 @@ class SearchOrders
end
def search_query
base_query = ::Permissions::Order.new(current_user).editable_orders
base_query = ::Permissions::Order.new(current_user).editable_orders.not_empty
return base_query unless params[:shipping_method_id]
base_query