From ce7ab8df9a4d6d63f0f91ef1fbe9228577a893e0 Mon Sep 17 00:00:00 2001 From: Kavin <78342682+kavin0411@users.noreply.github.com> Date: Tue, 21 Oct 2025 20:15:52 +0530 Subject: [PATCH] fix: Update pick list locations quantity (cherry picked from commit bd9e240ca5e72410dfa0eed140826607cdfca50f) --- .../doctype/material_request/material_request.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py index 8b0accee41d..e9c7a813698 100644 --- a/erpnext/stock/doctype/material_request/material_request.py +++ b/erpnext/stock/doctype/material_request/material_request.py @@ -831,6 +831,16 @@ def raise_work_orders(material_request): @frappe.whitelist() def create_pick_list(source_name, target_doc=None): + def update_item(obj, target, source_parent): + qty = ( + flt(flt(obj.stock_qty) - flt(obj.ordered_qty)) / target.conversion_factor + if flt(obj.stock_qty) > flt(obj.ordered_qty) + else 0 + ) + target.qty = qty + target.stock_qty = qty * obj.conversion_factor + target.conversion_factor = obj.conversion_factor + doc = get_mapped_doc( "Material Request", source_name, @@ -843,6 +853,11 @@ def create_pick_list(source_name, target_doc=None): "Material Request Item": { "doctype": "Pick List Item", "field_map": {"name": "material_request_item", "stock_qty": "stock_qty"}, + "postprocess": update_item, + "condition": lambda doc: ( + flt(doc.ordered_qty, doc.precision("ordered_qty")) + < flt(doc.stock_qty, doc.precision("ordered_qty")) + ), }, }, target_doc,