Handle case where calculation may be performed on invalid values (#5394)

This commit is contained in:
Oliver 2023-08-03 14:17:09 +10:00 committed by GitHub
parent 73891f0b94
commit 54e0e47c6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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