fix: don't overwrite existing terms in transaction
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index 6406735..525e646 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -795,16 +795,34 @@
 						me.frm.set_value("letter_head", company_doc.default_letter_head);
 					}
 				}
-				let selling_doctypes_for_tc = ["Sales Invoice", "Quotation", "Sales Order", "Delivery Note"];
-				if (company_doc.default_selling_terms && frappe.meta.has_field(me.frm.doc.doctype, "tc_name") &&
-				selling_doctypes_for_tc.indexOf(me.frm.doc.doctype) != -1) {
+
+				if (
+					company_doc.default_selling_terms &&
+					frappe.meta.has_field(me.frm.doc.doctype, "tc_name") &&
+					[
+						"Sales Invoice",
+						"Quotation",
+						"Sales Order",
+						"Delivery Note",
+					].includes(me.frm.doc.doctype) &&
+					!me.frm.doc.tc_name
+				) {
 					me.frm.set_value("tc_name", company_doc.default_selling_terms);
 				}
-				let buying_doctypes_for_tc = ["Request for Quotation", "Supplier Quotation", "Purchase Order",
-					"Material Request", "Purchase Receipt"];
-				// Purchase Invoice is excluded as per issue #3345
-				if (company_doc.default_buying_terms && frappe.meta.has_field(me.frm.doc.doctype, "tc_name") &&
-				buying_doctypes_for_tc.indexOf(me.frm.doc.doctype) != -1) {
+
+				if (
+					company_doc.default_buying_terms &&
+					frappe.meta.has_field(me.frm.doc.doctype, "tc_name") &&
+					[
+						"Request for Quotation",
+						"Supplier Quotation",
+						"Purchase Order",
+						// Purchase Invoice is excluded as per issue #3345
+						"Material Request",
+						"Purchase Receipt",
+					].includes(me.frm.doc.doctype) &&
+					!me.frm.doc.tc_name
+				) {
 					me.frm.set_value("tc_name", company_doc.default_buying_terms);
 				}