From 39b14b7ee25ba126cbff39472e9bef38f0e7653e Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Fri, 21 Jun 2024 17:41:48 +0530 Subject: [PATCH] fix: decimal issue in pick list (#41972) (cherry picked from commit 21adc7b63e742389a107d4df6a939ebbf23b196b) --- erpnext/stock/doctype/pick_list/pick_list.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index 4b5ab3836c5f..69a1bdf17d8b 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -693,7 +693,8 @@ def get_items_with_location_and_quantity(item_doc, item_location_map, docstatus) # if stock qty is zero on submitted entry, show positive remaining qty to recalculate in case of restock. remaining_stock_qty = item_doc.qty if (docstatus == 1 and item_doc.stock_qty == 0) else item_doc.stock_qty - while flt(remaining_stock_qty) > 0 and available_locations: + precision = frappe.get_precision("Pick List Item", "qty") + while flt(remaining_stock_qty, precision) > 0 and available_locations: item_location = available_locations.pop(0) item_location = frappe._dict(item_location) @@ -838,6 +839,7 @@ def validate_picked_materials(item_code, required_qty, locations, picked_item_de def filter_locations_by_picked_materials(locations, picked_item_details) -> list[dict]: filterd_locations = [] + precision = frappe.get_precision("Pick List Item", "qty") for row in locations: key = row.warehouse if row.batch_no: @@ -856,7 +858,7 @@ def filter_locations_by_picked_materials(locations, picked_item_details) -> list if row.serial_nos: row.serial_nos = list(set(row.serial_nos) - set(picked_item_details[key].get("serial_no"))) - if row.qty > 0: + if flt(row.qty, precision) > 0: filterd_locations.append(row) return filterd_locations