def METHOD_NAME(filters, data, order_details):
	itemwise_indent = {}
	production_plan_doc = frappe.get_cached_doc("Production Plan", filters.get("production_plan"))
	for row in production_plan_doc.po_items:
		work_order = frappe.get_value(
			"Work Order",
			{"production_plan_item": row.name, "bom_no": row.bom_no, "production_item": row.item_code},
			"name",
		)
		if row.item_code not in itemwise_indent:
			itemwise_indent.setdefault(row.item_code, {})
		data.append(
			{
				"indent": 0,
				"item_code": row.item_code,
				"item_name": frappe.get_cached_value("Item", row.item_code, "item_name"),
				"qty": row.planned_qty,
				"document_type": "Work Order",
				"document_name": work_order or "",
				"bom_level": 0,
				"produced_qty": order_details.get((work_order, row.item_code), {}).get("produced_qty", 0),
				"pending_qty": flt(row.planned_qty)
				- flt(order_details.get((work_order, row.item_code), {}).get("produced_qty", 0)),
			}
		)
		get_production_plan_sub_assembly_item_details(
			filters, row, production_plan_doc, data, order_details
		)