1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-11-29 10:24:20 +01:00

(bug) ArgumentError (comparison of Integer with nil failed)

this crash occured when creating/updating a product without activating
the low stock alert
This commit is contained in:
Sylvain 2022-10-10 10:00:06 +02:00
parent 3a9344103c
commit 6a0b896815
2 changed files with 15 additions and 9 deletions

View File

@ -8,7 +8,7 @@ class Orders::OrderService
ORDERS_PER_PAGE = 20 ORDERS_PER_PAGE = 20
def list(filters, current_user) def list(filters, current_user)
orders = Order.includes(statistic_profile: [:user]).where(nil) orders = Order.includes(statistic_profile: [user: [:profile]]).where(nil)
orders = filter_by_user(orders, filters, current_user) orders = filter_by_user(orders, filters, current_user)
orders = filter_by_reference(orders, filters, current_user) orders = filter_by_reference(orders, filters, current_user)
orders = filter_by_state(orders, filters) orders = filter_by_state(orders, filters)

View File

@ -50,14 +50,7 @@ class ProductService
} }
end || {} end || {}
product.stock = remaining_stock product.stock = remaining_stock
affected_stocks = stock_movements&.map { |m| m[:stock_type] }&.uniq notify_on_low_stock(product, stock_movements)
if (remaining_stock[:internal] < product.low_stock_threshold && affected_stocks&.include?('internal')) ||
(remaining_stock[:external] < product.low_stock_threshold && affected_stocks&.include?('external'))
NotificationCenter.call type: 'notify_admin_low_stock_threshold',
receiver: User.admins_and_managers,
attached_object: product
end
product
end end
def create(product_params, stock_movement_params = []) def create(product_params, stock_movement_params = [])
@ -173,5 +166,18 @@ class ProductService
movements.where(reason: filters[:reason]) movements.where(reason: filters[:reason])
end end
def notify_on_low_stock(product, stock_movements)
return product unless product.low_stock_threshold
affected_stocks = stock_movements&.map { |m| m[:stock_type] }&.uniq
if (remaining_stock[:internal] < product.low_stock_threshold && affected_stocks&.include?('internal')) ||
(remaining_stock[:external] < product.low_stock_threshold && affected_stocks&.include?('external'))
NotificationCenter.call type: 'notify_admin_low_stock_threshold',
receiver: User.admins_and_managers,
attached_object: product
end
product
end
end end
end end