diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index a3c0ef2f52d..8afc79aa886 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -995,12 +995,15 @@ def get_requested_item_qty(sales_order): filters={"docstatus": 1, "sales_order": sales_order}, fields=[ "sales_order_item", + "packed_item", {"SUM": "qty", "as": "qty"}, {"SUM": "received_qty", "as": "received_qty"}, ], - group_by="sales_order_item", + group_by="sales_order_item, packed_item", ): - result[d.sales_order_item] = frappe._dict({"qty": d.qty, "received_qty": d.received_qty}) + result[d.sales_order_item or d.packed_item] = frappe._dict( + {"qty": d.qty, "received_qty": d.received_qty} + ) return result @@ -1058,7 +1061,8 @@ def make_material_request(source_name, target_doc=None): "Sales Order": {"doctype": "Material Request", "validation": {"docstatus": ["=", 1]}}, "Packed Item": { "doctype": "Material Request Item", - "field_map": {"parent": "sales_order", "uom": "stock_uom"}, + "field_map": {"parent": "sales_order", "uom": "stock_uom", "name": "packed_item"}, + "condition": lambda item: get_remaining_qty(item) > 0, "postprocess": update_item, }, "Sales Order Item": { diff --git a/erpnext/stock/doctype/material_request_item/material_request_item.json b/erpnext/stock/doctype/material_request_item/material_request_item.json index d8db1d9ce01..1440059c87c 100644 --- a/erpnext/stock/doctype/material_request_item/material_request_item.json +++ b/erpnext/stock/doctype/material_request_item/material_request_item.json @@ -56,6 +56,7 @@ "lead_time_date", "sales_order", "sales_order_item", + "packed_item", "col_break4", "production_plan", "material_request_plan_item", @@ -528,6 +529,16 @@ "no_copy": 1, "non_negative": 1, "read_only": 1 + }, + { + "fieldname": "packed_item", + "fieldtype": "Data", + "hidden": 1, + "label": "Packed Item", + "no_copy": 1, + "print_hide": 1, + "read_only": 1, + "search_index": 1 } ], "idx": 1, diff --git a/erpnext/stock/doctype/material_request_item/material_request_item.py b/erpnext/stock/doctype/material_request_item/material_request_item.py index d801cf5a246..3bc0c566c9d 100644 --- a/erpnext/stock/doctype/material_request_item/material_request_item.py +++ b/erpnext/stock/doctype/material_request_item/material_request_item.py @@ -37,6 +37,7 @@ class MaterialRequestItem(Document): material_request_plan_item: DF.Data | None min_order_qty: DF.Float ordered_qty: DF.Float + packed_item: DF.Data | None page_break: DF.Check parent: DF.Data parentfield: DF.Data