fix: gl not generated on manual asset creation (#20265)

diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js
index f6a7fa2..a53ff88 100644
--- a/erpnext/assets/doctype/asset/asset.js
+++ b/erpnext/assets/doctype/asset/asset.js
@@ -338,25 +338,12 @@
 		})
 	},
 
-	purchase_receipt: function(frm) {
+	purchase_receipt: (frm) => {
 		frm.trigger('toggle_reference_doc');
-
 		if (frm.doc.purchase_receipt) {
 			if (frm.doc.item_code) {
 				frappe.db.get_doc('Purchase Receipt', frm.doc.purchase_receipt).then(pr_doc => {
-					frm.set_value('company', pr_doc.company);
-					frm.set_value('purchase_date', pr_doc.posting_date);
-					const item = pr_doc.items.find(item => item.item_code === frm.doc.item_code);
-					if (!item) {
-						frm.set_value('purchase_receipt', '');
-						frappe.msgprint({
-							title: __('Invalid Purchase Receipt'),
-							message: __("The selected Purchase Receipt doesn't contains selected Asset Item."),
-							indicator: 'red'
-						});
-					}
-					frm.set_value('gross_purchase_amount', item.base_net_rate);
-					frm.set_value('location', item.asset_location);
+					frm.events.set_values_from_purchase_doc(frm, 'Purchase Receipt', pr_doc)
 				});
 			} else {
 				frm.set_value('purchase_receipt', '');
@@ -368,24 +355,12 @@
 		}
 	},
 
-	purchase_invoice: function(frm) {
+	purchase_invoice: (frm) => {
 		frm.trigger('toggle_reference_doc');
 		if (frm.doc.purchase_invoice) {
 			if (frm.doc.item_code) {
 				frappe.db.get_doc('Purchase Invoice', frm.doc.purchase_invoice).then(pi_doc => {
-					frm.set_value('company', pi_doc.company);
-					frm.set_value('purchase_date', pi_doc.posting_date);
-					const item = pi_doc.items.find(item => item.item_code === frm.doc.item_code);
-					if (!item) {
-						frm.set_value('purchase_invoice', '');
-						frappe.msgprint({
-							title: __('Invalid Purchase Invoice'),
-							message: __("The selected Purchase Invoice doesn't contains selected Asset Item."),
-							indicator: 'red'
-						});
-					}
-					frm.set_value('gross_purchase_amount', item.base_net_rate);
-					frm.set_value('location', item.asset_location);
+					frm.events.set_values_from_purchase_doc(frm, 'Purchase Invoice', pi_doc)
 				});
 			} else {
 				frm.set_value('purchase_invoice', '');
@@ -397,6 +372,24 @@
 		}
 	},
 
+	set_values_from_purchase_doc: function(frm, doctype, purchase_doc) {
+		frm.set_value('company', purchase_doc.company);
+		frm.set_value('purchase_date', purchase_doc.posting_date);
+		const item = purchase_doc.items.find(item => item.item_code === frm.doc.item_code);
+		if (!item) {
+			doctype_field = frappe.scrub(doctype)
+			frm.set_value(doctype_field, '');
+			frappe.msgprint({
+				title: __(`Invalid ${doctype}`),
+				message: __(`The selected ${doctype} doesn't contains selected Asset Item.`),
+				indicator: 'red'
+			});
+		}
+		frm.set_value('gross_purchase_amount', item.base_net_rate + item.item_tax_amount);
+		frm.set_value('purchase_receipt_amount', item.base_net_rate + item.item_tax_amount);
+		frm.set_value('location', item.asset_location);
+	},
+
 	set_depreciation_rate: function(frm, row) {
 		if (row.total_number_of_depreciations && row.frequency_of_depreciation
 			&& row.expected_value_after_useful_life) {