From 0c19c9856f0842dc4073f0b4ce4aa1140fe0ed47 Mon Sep 17 00:00:00 2001 From: Du Peng Date: Thu, 20 Oct 2022 10:40:37 +0200 Subject: [PATCH] (bug) filter product is available --- app/services/product_service.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/services/product_service.rb b/app/services/product_service.rb index c2e82fea0..8a8bfc5ff 100644 --- a/app/services/product_service.rb +++ b/app/services/product_service.rb @@ -132,7 +132,7 @@ class ProductService def filter_by_available(products, filters, operator) return products if filters[:is_available].blank? || filters[:is_available] == 'false' - filter_by_stock(products, { stock_type: 'external', stock_from: '1' }, operator) + filter_by_stock(products, { stock_type: 'external' }, operator) end def filter_by_categories(products, filters) @@ -157,9 +157,11 @@ class ProductService def filter_by_stock(products, filters, operator) return products if filters[:stock_type] == 'internal' && !operator&.privileged? - if filters[:stock_from].to_i.positive? - products = products.where('(stock ->> ?)::int >= ?', filters[:stock_type], filters[:stock_from]) - end + products = if filters[:stock_from].to_i.positive? + products.where('(stock ->> ?)::int >= ?', filters[:stock_type], filters[:stock_from]) + else + products.where('(stock ->> ?)::int >= quantity_min', filters[:stock_type]) + end products = products.where('(stock ->> ?)::int <= ?', filters[:stock_type], filters[:stock_to]) if filters[:stock_to].to_i != 0 products