From 0ec35b1f0d5d387bffd7c0fec0f32ef489e07cb3 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Tue, 7 Sep 2021 16:32:57 +0200 Subject: [PATCH] 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 --- app/models/spree/order.rb | 4 ++++ app/services/search_orders.rb | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/models/spree/order.rb b/app/models/spree/order.rb index ef568bca36..de7da9497e 100644 --- a/app/models/spree/order.rb +++ b/app/models/spree/order.rb @@ -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) diff --git a/app/services/search_orders.rb b/app/services/search_orders.rb index 0da52721f3..4b2f87e396 100644 --- a/app/services/search_orders.rb +++ b/app/services/search_orders.rb @@ -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