From d889623ffa46349c2c80a87d27dab90097bb6804 Mon Sep 17 00:00:00 2001 From: SowmyaArunachalam Date: Tue, 23 Dec 2025 22:02:57 +0530 Subject: [PATCH] fix: update remaining qty calculation (cherry picked from commit f523c7889e55c1042f37c76dab0a1a9d5b74f0b8) --- erpnext/selling/doctype/sales_order/sales_order.py | 9 ++++++--- .../doctype/material_request/test_material_request.py | 3 +-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index 4fa3bace2e4..6e202b2c68d 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -873,17 +873,20 @@ def make_material_request(source_name, target_doc=None): def get_remaining_packed_item_qty(so_item): delivered_qty = frappe.db.get_value( - "Sales Order Item", {"docstatus": 1, "name": so_item.parent_detail_docname}, ["delivered_qty"] + "Sales Order Item", {"name": so_item.parent_detail_docname}, ["delivered_qty"] ) - bundle_item_qty = frappe.db.get_value("Product Bundle Item", {"parent": so_item.parent_item}, ["qty"]) + bundle_item_qty = frappe.db.get_value( + "Product Bundle Item", {"parent": so_item.parent_item, "item_code": so_item.item_code}, ["qty"] + ) return flt( ( flt(so_item.qty) - flt(requested_item_qty.get(so_item.name, {}).get("qty")) - max( - flt(delivered_qty) - flt(requested_item_qty.get(so_item.name, {}).get("received_qty")), + flt(delivered_qty) * flt(bundle_item_qty) + - flt(requested_item_qty.get(so_item.name, {}).get("received_qty")), 0, ) ) diff --git a/erpnext/stock/doctype/material_request/test_material_request.py b/erpnext/stock/doctype/material_request/test_material_request.py index 39bfd3ba0cd..c2f76a5a854 100644 --- a/erpnext/stock/doctype/material_request/test_material_request.py +++ b/erpnext/stock/doctype/material_request/test_material_request.py @@ -919,8 +919,7 @@ class TestMaterialRequest(FrappeTestCase): is_purchase_item=0, ) - pb = make_product_bundle(parent=bundle_item, items=[sub_item_a, sub_item_b]) - pb.submit() + make_product_bundle(parent=bundle_item, items=[sub_item_a, sub_item_b]) so = make_sales_order(item_code=bundle_item) so.submit()