diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
index 8943066..6c9d339 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -122,6 +122,20 @@
 		erpnext.accounts.dimensions.update_dimension(frm, frm.doctype);
 	},
 
+	subcontracting_receipt: (frm) => {
+		if (frm.doc.is_subcontracted === 1 && frm.doc.is_old_subcontracting_flow === 0 && frm.doc.subcontracting_receipt) {
+			frm.set_value('items', null);
+
+			erpnext.utils.map_current_doc({
+				method: 'erpnext.subcontracting.doctype.subcontracting_receipt.subcontracting_receipt.make_purchase_receipt',
+				source_name: frm.doc.subcontracting_receipt,
+				target_doc: frm,
+				freeze: true,
+				freeze_message: __('Mapping Purchase Receipt ...'),
+			});
+		}
+	},
+
 	toggle_display_account_head: function(frm) {
 		var enabled = erpnext.is_perpetual_inventory_enabled(frm.doc.company)
 		frm.fields_dict["items"].grid.set_column_disp(["cost_center"], enabled);
diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js
index 5585a4a..762cdc9 100644
--- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js
+++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js
@@ -26,27 +26,36 @@
 	refresh: (frm) => {
 		if (frm.doc.docstatus === 1) {
 			frm.add_custom_button(__('Stock Ledger'), () => {
-					frappe.route_options = {
-						voucher_no: frm.doc.name,
-						from_date: frm.doc.posting_date,
-						to_date: moment(frm.doc.modified).format('YYYY-MM-DD'),
-						company: frm.doc.company,
-						show_cancelled_entries: frm.doc.docstatus === 2
-					}
-					frappe.set_route('query-report', 'Stock Ledger');
-				}, __('View'));
+				frappe.route_options = {
+					voucher_no: frm.doc.name,
+					from_date: frm.doc.posting_date,
+					to_date: moment(frm.doc.modified).format('YYYY-MM-DD'),
+					company: frm.doc.company,
+					show_cancelled_entries: frm.doc.docstatus === 2
+				}
+				frappe.set_route('query-report', 'Stock Ledger');
+			}, __('View'));
 
 			frm.add_custom_button(__('Accounting Ledger'), () => {
-					frappe.route_options = {
-						voucher_no: frm.doc.name,
-						from_date: frm.doc.posting_date,
-						to_date: moment(frm.doc.modified).format('YYYY-MM-DD'),
-						company: frm.doc.company,
-						group_by: 'Group by Voucher (Consolidated)',
-						show_cancelled_entries: frm.doc.docstatus === 2
-					}
-					frappe.set_route('query-report', 'General Ledger');
-				}, __('View'));
+				frappe.route_options = {
+					voucher_no: frm.doc.name,
+					from_date: frm.doc.posting_date,
+					to_date: moment(frm.doc.modified).format('YYYY-MM-DD'),
+					company: frm.doc.company,
+					group_by: 'Group by Voucher (Consolidated)',
+					show_cancelled_entries: frm.doc.docstatus === 2
+				}
+				frappe.set_route('query-report', 'General Ledger');
+			}, __('View'));
+
+			frm.add_custom_button(__('Purchase Receipt'), () => {
+				frappe.model.open_mapped_doc({
+					method: 'erpnext.subcontracting.doctype.subcontracting_receipt.subcontracting_receipt.make_purchase_receipt',
+					frm: frm,
+					freeze: true,
+					freeze_message: __('Creating Purchase Receipt ...')
+				});
+			}, __('Create'));
 		}
 
 		if (!frm.doc.is_return && frm.doc.docstatus === 1 && frm.doc.per_returned < 100) {
diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
index b980dbd..000078f 100644
--- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
+++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
@@ -542,18 +542,20 @@
 	return make_return_doc("Subcontracting Receipt", source_name, target_doc)
 
 
-def make_purchase_receipt(subcontracting_receipt, save=False, submit=False, notify=False):
-	if isinstance(subcontracting_receipt, str):
-		subcontracting_receipt = frappe.get_doc("Subcontracting Receipt", subcontracting_receipt)
+@frappe.whitelist()
+def make_purchase_receipt(source_name, target_doc=None, save=False, submit=False, notify=False):
+	if isinstance(source_name, str):
+		source_name = frappe.get_doc("Subcontracting Receipt", source_name)
 
-	if not subcontracting_receipt.is_return:
-		purchase_receipt = frappe.new_doc("Purchase Receipt")
-		purchase_receipt.is_subcontracted = 1
-		purchase_receipt.is_old_subcontracting_flow = 0
+	if not source_name.is_return:
+		if not target_doc:
+			target_doc = frappe.new_doc("Purchase Receipt")
+			target_doc.is_subcontracted = 1
+			target_doc.is_old_subcontracting_flow = 0
 
-		purchase_receipt = get_mapped_doc(
+		target_doc = get_mapped_doc(
 			"Subcontracting Receipt",
-			subcontracting_receipt.name,
+			source_name.name,
 			{
 				"Subcontracting Receipt": {
 					"doctype": "Purchase Receipt",
@@ -566,12 +568,12 @@
 					"field_no_map": ["total_qty", "total"],
 				},
 			},
-			purchase_receipt,
+			target_doc,
 			ignore_child_tables=True,
 		)
 
 		po_items_details = {}
-		for item in subcontracting_receipt.items:
+		for item in source_name.items:
 			if item.purchase_order and item.purchase_order_item:
 				if item.purchase_order not in po_items_details:
 					po_doc = frappe.get_doc("Purchase Order", item.purchase_order)
@@ -592,31 +594,33 @@
 						"purchase_order_item": item.purchase_order_item,
 						"subcontracting_receipt_item": item.name,
 					}
-					purchase_receipt.append("items", item_row)
+					target_doc.append("items", item_row)
 
-		if not purchase_receipt.items:
+		if not target_doc.items:
 			frappe.throw(
 				_("Purchase Order Item reference is missing in Subcontracting Receipt {0}").format(
-					subcontracting_receipt.name
+					source_name.name
 				)
 			)
 
-		if (save or submit) and frappe.has_permission(purchase_receipt.doctype, "create"):
-			purchase_receipt.save()
+		target_doc.set_missing_values()
 
-			if submit and frappe.has_permission(purchase_receipt.doctype, "submit", purchase_receipt):
+		if (save or submit) and frappe.has_permission(target_doc.doctype, "create"):
+			target_doc.save()
+
+			if submit and frappe.has_permission(target_doc.doctype, "submit", target_doc):
 				try:
-					purchase_receipt.submit()
+					target_doc.submit()
 				except Exception as e:
-					purchase_receipt.add_comment("Comment", _("Submit Action Failed") + "<br><br>" + str(e))
+					target_doc.add_comment("Comment", _("Submit Action Failed") + "<br><br>" + str(e))
 
 			if notify:
 				frappe.msgprint(
 					_("Purchase Receipt {0} created.").format(
-						get_link_to_form(purchase_receipt.doctype, purchase_receipt.name)
+						get_link_to_form(target_doc.doctype, target_doc.name)
 					),
 					indicator="green",
 					alert=True,
 				)
 
-		return purchase_receipt
+		return target_doc
diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt_dashboard.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt_dashboard.py
index f6e1356..4d15938 100644
--- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt_dashboard.py
+++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt_dashboard.py
@@ -3,7 +3,7 @@
 
 def get_data():
 	return {
-		"fieldname": "subcontracting_receipt_no",
+		"fieldname": "subcontracting_receipt",
 		"non_standard_fieldnames": {
 			"Subcontracting Receipt": "return_against",
 		},
