fix(material-request): get remaining qty on partial transaction with product bundle

This commit is contained in:
SowmyaArunachalam
2025-12-17 13:01:09 +05:30
parent c66f78c784
commit 6ade609dd6
3 changed files with 19 additions and 3 deletions

View File

@@ -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": {

View File

@@ -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,

View File

@@ -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