chore: Make auto matching party configurable

- Checkbox in Accounts settings "Enable Automatic Party Matching"
- Check before invoking automatching methods
- misc: Remove TODO comments
diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
index c0eed18..259612e 100644
--- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
+++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
@@ -59,7 +59,9 @@
   "frozen_accounts_modifier",
   "report_settings_sb",
   "tab_break_dpet",
-  "show_balance_in_coa"
+  "show_balance_in_coa",
+  "banking_tab",
+  "enable_party_matching"
  ],
  "fields": [
   {
@@ -368,6 +370,18 @@
    "fieldname": "book_tax_discount_loss",
    "fieldtype": "Check",
    "label": "Book Tax Loss on Early Payment Discount"
+  },
+  {
+   "fieldname": "banking_tab",
+   "fieldtype": "Tab Break",
+   "label": "Banking"
+  },
+  {
+   "default": "0",
+   "description": "Auto match and set the Party in Bank Transactions",
+   "fieldname": "enable_party_matching",
+   "fieldtype": "Check",
+   "label": "Enable Automatic Party Matching"
   }
  ],
  "icon": "icon-cog",
@@ -375,7 +389,7 @@
  "index_web_pages_for_search": 1,
  "issingle": 1,
  "links": [],
- "modified": "2023-03-28 09:50:20.375233",
+ "modified": "2023-04-04 16:20:41.330039",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Accounts Settings",
diff --git a/erpnext/accounts/doctype/bank_transaction/bank_transaction.py b/erpnext/accounts/doctype/bank_transaction/bank_transaction.py
index 6a09491..25385a0 100644
--- a/erpnext/accounts/doctype/bank_transaction/bank_transaction.py
+++ b/erpnext/accounts/doctype/bank_transaction/bank_transaction.py
@@ -8,12 +8,6 @@
 
 
 class BankTransaction(StatusUpdater):
-	# TODO
-	# On submit/update after submit
-	# 	- Create/Update a Bank Party Map record
-	# 	- User can edit after submit.
-	# 	- If changes in party/party name after submit, edit bank party map (which should edit all transactions with same account no/iban/bank party name)
-
 	def after_insert(self):
 		self.unallocated_amount = abs(flt(self.withdrawal) - flt(self.deposit))
 
@@ -21,7 +15,8 @@
 		self.clear_linked_payment_entries()
 		self.set_status()
 
-		self.auto_set_party()
+		if frappe.db.get_single_value("Accounts Settings", "enable_party_matching"):
+			self.auto_set_party()
 
 	_saving_flag = False
 
@@ -34,7 +29,8 @@
 			self.update_allocations()
 			self._saving_flag = False
 
-		self.update_automatch_bank_party_mapper()
+		if frappe.db.get_single_value("Accounts Settings", "enable_party_matching"):
+			self.update_automatch_bank_party_mapper()
 
 	def on_cancel(self):
 		self.clear_linked_payment_entries(for_cancel=True)
@@ -157,7 +153,6 @@
 		)
 
 	def auto_set_party(self):
-		# TODO: check if enabled
 		from erpnext.accounts.doctype.bank_transaction.auto_match_party import AutoMatchParty
 
 		if self.party_type and self.party: