Merge pull request #34080 from s-aga-r/batch-no-item

chore: copy `item_code` to `Batch` while creating new batch from SCR
diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js
index b6bef8c..3a2c53f 100644
--- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js
+++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js
@@ -51,13 +51,31 @@
 			}
 		}));
 
-		frm.set_query("expense_account", "items", function () {
+		frm.set_query('expense_account', 'items', function () {
 			return {
-				query: "erpnext.controllers.queries.get_expense_account",
+				query: 'erpnext.controllers.queries.get_expense_account',
 				filters: { 'company': frm.doc.company }
 			};
 		});
 
+		frm.set_query('batch_no', 'items', function(doc, cdt, cdn) {
+			var row = locals[cdt][cdn];
+			return {
+				filters: {
+					item: row.item_code
+				}
+			}
+		});
+
+		let batch_no_field = frm.get_docfield("items", "batch_no");
+		if (batch_no_field) {
+			batch_no_field.get_route_options_for_new_doc = function(row) {
+				return {
+					"item": row.doc.item_code
+				}
+			};
+		}
+
 		frappe.db.get_single_value('Buying Settings', 'backflush_raw_materials_of_subcontract_based_on').then(val => {
 			if (val == 'Material Transferred for Subcontract') {
 				frm.fields_dict['supplied_items'].grid.grid_rows.forEach((grid_row) => {
@@ -73,7 +91,7 @@
 
 	refresh: (frm) => {
 		if (frm.doc.docstatus > 0) {
-			frm.add_custom_button(__("Stock Ledger"), function () {
+			frm.add_custom_button(__('Stock Ledger'), function () {
 				frappe.route_options = {
 					voucher_no: frm.doc.name,
 					from_date: frm.doc.posting_date,
@@ -81,8 +99,8 @@
 					company: frm.doc.company,
 					show_cancelled_entries: frm.doc.docstatus === 2
 				};
-				frappe.set_route("query-report", "Stock Ledger");
-			}, __("View"));
+				frappe.set_route('query-report', 'Stock Ledger');
+			}, __('View'));
 
 			frm.add_custom_button(__('Accounting Ledger'), function () {
 				frappe.route_options = {
@@ -90,11 +108,11 @@
 					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)",
+					group_by: 'Group by Voucher (Consolidated)',
 					show_cancelled_entries: frm.doc.docstatus === 2
 				};
-				frappe.set_route("query-report", "General Ledger");
-			}, __("View"));
+				frappe.set_route('query-report', 'General Ledger');
+			}, __('View'));
 		}
 
 		if (!frm.doc.is_return && frm.doc.docstatus == 1 && frm.doc.per_returned < 100) {
@@ -111,25 +129,25 @@
 			frm.add_custom_button(__('Subcontracting Order'), function () {
 				if (!frm.doc.supplier) {
 					frappe.throw({
-						title: __("Mandatory"),
-						message: __("Please Select a Supplier")
+						title: __('Mandatory'),
+						message: __('Please Select a Supplier')
 					});
 				}
 
 				erpnext.utils.map_current_doc({
 					method: 'erpnext.subcontracting.doctype.subcontracting_order.subcontracting_order.make_subcontracting_receipt',
-					source_doctype: "Subcontracting Order",
+					source_doctype: 'Subcontracting Order',
 					target: frm,
 					setters: {
 						supplier: frm.doc.supplier,
 					},
 					get_query_filters: {
 						docstatus: 1,
-						per_received: ["<", 100],
+						per_received: ['<', 100],
 						company: frm.doc.company
 					}
 				});
-			}, __("Get Items From"));
+			}, __('Get Items From'));
 		}
 	},