From 54e0e47c6ae98ac920f4496e65b12b3551c89d93 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 3 Aug 2023 14:17:09 +1000 Subject: [PATCH] Handle case where calculation may be performed on invalid values (#5394) --- InvenTree/stock/api.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py index c070e98799..c465f6ed76 100644 --- a/InvenTree/stock/api.py +++ b/InvenTree/stock/api.py @@ -677,8 +677,13 @@ class StockList(APIDownloadMixin, ListCreateDestroyAPIView): else: if bool(data.get('use_pack_size')): quantity = data['quantity'] = supplier_part.base_quantity(quantity) + # Divide purchase price by pack size, to save correct price per stock item - data['purchase_price'] = float(data['purchase_price']) / float(supplier_part.pack_quantity_native) + if data['purchase_price'] and supplier_part.pack_quantity_native: + try: + data['purchase_price'] = float(data['purchase_price']) / float(supplier_part.pack_quantity_native) + except ValueError: + pass # Now remove the flag from data, so that it doesn't interfere with saving # Do this regardless of results above