feat: validate multiple links
diff --git a/erpnext/accounts/doctype/party_link/party_link.py b/erpnext/accounts/doctype/party_link/party_link.py
index 80f86e7..7d58506 100644
--- a/erpnext/accounts/doctype/party_link/party_link.py
+++ b/erpnext/accounts/doctype/party_link/party_link.py
@@ -10,3 +10,17 @@
 		if self.primary_role not in ['Customer', 'Supplier']:
 			frappe.throw(_("Allowed primary roles are 'Customer' and 'Supplier'. Please select one of these roles only."),
 				title=_("Invalid Primary Role"))
+		
+		existing_party_link = frappe.get_all('Party Link', {
+			'primary_party': self.secondary_party
+		}, pluck="primary_role")
+		if existing_party_link:
+			frappe.throw(_('{} {} is already linked with another {}')
+				.format(self.secondary_role, self.secondary_party, existing_party_link[0]))
+		
+		existing_party_link = frappe.get_all('Party Link', {
+			'secondary_party': self.primary_party
+		}, pluck="primary_role")
+		if existing_party_link:
+			frappe.throw(_('{} {} is already linked with another {}')
+				.format(self.primary_role, self.primary_party, existing_party_link[0]))