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()