diff --git a/.github/helper/install.sh b/.github/helper/install.sh
index d1a97f8..915a463 100644
--- a/.github/helper/install.sh
+++ b/.github/helper/install.sh
@@ -4,7 +4,9 @@
 
 cd ~ || exit
 
-sudo apt update && sudo apt install redis-server libcups2-dev
+sudo apt update
+sudo apt remove mysql-server mysql-client
+sudo apt install libcups2-dev redis-server mariadb-client-10.6
 
 pip install frappe-bench
 
@@ -25,14 +27,14 @@
 
 
 if [ "$DB" == "mariadb" ];then
-    mysql --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL character_set_server = 'utf8mb4'"
-    mysql --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL collation_server = 'utf8mb4_unicode_ci'"
+    mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL character_set_server = 'utf8mb4'"
+    mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL collation_server = 'utf8mb4_unicode_ci'"
 
-    mysql --host 127.0.0.1 --port 3306 -u root -proot -e "CREATE USER 'test_frappe'@'localhost' IDENTIFIED BY 'test_frappe'"
-    mysql --host 127.0.0.1 --port 3306 -u root -proot -e "CREATE DATABASE test_frappe"
-    mysql --host 127.0.0.1 --port 3306 -u root -proot -e "GRANT ALL PRIVILEGES ON \`test_frappe\`.* TO 'test_frappe'@'localhost'"
+    mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "CREATE USER 'test_frappe'@'localhost' IDENTIFIED BY 'test_frappe'"
+    mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "CREATE DATABASE test_frappe"
+    mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "GRANT ALL PRIVILEGES ON \`test_frappe\`.* TO 'test_frappe'@'localhost'"
 
-    mysql --host 127.0.0.1 --port 3306 -u root -proot -e "FLUSH PRIVILEGES"
+    mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "FLUSH PRIVILEGES"
 fi
 
 if [ "$DB" == "postgres" ];then
diff --git a/.github/workflows/initiate_release.yml b/.github/workflows/initiate_release.yml
index ee60bad..7034773 100644
--- a/.github/workflows/initiate_release.yml
+++ b/.github/workflows/initiate_release.yml
@@ -30,23 +30,3 @@
           head: version-${{ matrix.version }}-hotfix
         env:
           GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
-
-  beta-release:
-    name: Release
-    runs-on: ubuntu-latest
-    strategy:
-      fail-fast: false
-
-    steps:
-      - uses: octokit/request-action@v2.x
-        with:
-          route: POST /repos/{owner}/{repo}/pulls
-          owner: frappe
-          repo: erpnext
-          title: |-
-            "chore: release v15 beta"
-          body: "Automated beta release."
-          base: version-15-beta
-          head: develop
-        env:
-          GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
diff --git a/.github/workflows/patch.yml b/.github/workflows/patch.yml
index 07b8de7..21dd3d4 100644
--- a/.github/workflows/patch.yml
+++ b/.github/workflows/patch.yml
@@ -28,7 +28,7 @@
           MARIADB_ROOT_PASSWORD: 'root'
         ports:
           - 3306:3306
-        options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
+        options: --health-cmd="mariadb-admin ping" --health-interval=5s --health-timeout=2s --health-retries=3
 
     steps:
       - name: Clone
diff --git a/.github/workflows/server-tests-mariadb.yml b/.github/workflows/server-tests-mariadb.yml
index 559be06..ccdfc8c 100644
--- a/.github/workflows/server-tests-mariadb.yml
+++ b/.github/workflows/server-tests-mariadb.yml
@@ -47,7 +47,7 @@
           MARIADB_ROOT_PASSWORD: 'root'
         ports:
           - 3306:3306
-        options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
+        options: --health-cmd="mariadb-admin ping" --health-interval=5s --health-timeout=2s --health-retries=3
 
     steps:
       - name: Clone
diff --git a/erpnext/accounts/doctype/account_closing_balance/account_closing_balance.py b/erpnext/accounts/doctype/account_closing_balance/account_closing_balance.py
index e75af70..d06bd83 100644
--- a/erpnext/accounts/doctype/account_closing_balance/account_closing_balance.py
+++ b/erpnext/accounts/doctype/account_closing_balance/account_closing_balance.py
@@ -37,6 +37,7 @@
 			}
 		)
 		cle.flags.ignore_permissions = True
+		cle.flags.ignore_links = True
 		cle.submit()
 
 
diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
index 6857ba3..061bab3 100644
--- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
+++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
@@ -32,6 +32,7 @@
   "column_break_19",
   "add_taxes_from_item_tax_template",
   "book_tax_discount_loss",
+  "round_row_wise_tax",
   "print_settings",
   "show_inclusive_tax_in_print",
   "show_taxes_as_table_in_print",
@@ -414,6 +415,13 @@
    "fieldname": "ignore_account_closing_balance",
    "fieldtype": "Check",
    "label": "Ignore Account Closing Balance"
+  },
+  {
+   "default": "0",
+   "description": "Tax Amount will be rounded on a row(items) level",
+   "fieldname": "round_row_wise_tax",
+   "fieldtype": "Check",
+   "label": "Round Tax Amount Row-wise"
   }
  ],
  "icon": "icon-cog",
@@ -421,7 +429,7 @@
  "index_web_pages_for_search": 1,
  "issingle": 1,
  "links": [],
- "modified": "2023-07-27 15:05:34.000264",
+ "modified": "2023-08-28 00:12:02.740633",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Accounts Settings",
diff --git a/erpnext/accounts/doctype/bank_clearance/test_bank_clearance.py b/erpnext/accounts/doctype/bank_clearance/test_bank_clearance.py
index c7404d1..ace751b 100644
--- a/erpnext/accounts/doctype/bank_clearance/test_bank_clearance.py
+++ b/erpnext/accounts/doctype/bank_clearance/test_bank_clearance.py
@@ -35,13 +35,14 @@
 		from lending.loan_management.doctype.loan.test_loan import (
 			create_loan,
 			create_loan_accounts,
-			create_loan_type,
+			create_loan_product,
 			create_repayment_entry,
 			make_loan_disbursement_entry,
 		)
 
 		def create_loan_masters():
-			create_loan_type(
+			create_loan_product(
+				"Clearance Loan",
 				"Clearance Loan",
 				2000000,
 				13.5,
diff --git a/erpnext/accounts/doctype/bank_statement_import/bank_statement_import.js b/erpnext/accounts/doctype/bank_statement_import/bank_statement_import.js
index 04af323..a70af7a 100644
--- a/erpnext/accounts/doctype/bank_statement_import/bank_statement_import.js
+++ b/erpnext/accounts/doctype/bank_statement_import/bank_statement_import.js
@@ -352,10 +352,11 @@
 
 	export_errored_rows(frm) {
 		open_url_post(
-			"/api/method/frappe.core.doctype.data_import.data_import.download_errored_template",
+			"/api/method/erpnext.accounts.doctype.bank_statement_import.bank_statement_import.download_errored_template",
 			{
 				data_import_name: frm.doc.name,
-			}
+			},
+			true
 		);
 	},
 
diff --git a/erpnext/accounts/doctype/bank_transaction/test_bank_transaction.py b/erpnext/accounts/doctype/bank_transaction/test_bank_transaction.py
index 0c328ff..4a6491d 100644
--- a/erpnext/accounts/doctype/bank_transaction/test_bank_transaction.py
+++ b/erpnext/accounts/doctype/bank_transaction/test_bank_transaction.py
@@ -410,7 +410,7 @@
 def create_loan_and_repayment():
 	from lending.loan_management.doctype.loan.test_loan import (
 		create_loan,
-		create_loan_type,
+		create_loan_product,
 		create_repayment_entry,
 		make_loan_disbursement_entry,
 	)
@@ -420,7 +420,8 @@
 
 	from erpnext.setup.doctype.employee.test_employee import make_employee
 
-	create_loan_type(
+	create_loan_product(
+		"Personal Loan",
 		"Personal Loan",
 		500000,
 		8.4,
@@ -441,7 +442,7 @@
 			"applicant_type": "Employee",
 			"company": "_Test Company",
 			"applicant": applicant,
-			"loan_type": "Personal Loan",
+			"loan_product": "Personal Loan",
 			"loan_amount": 5000,
 			"repayment_method": "Repay Fixed Amount per Period",
 			"monthly_repayment_amount": 500,
diff --git a/erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.json b/erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.json
index c62b711..df232a5 100644
--- a/erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.json
+++ b/erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.json
@@ -9,6 +9,7 @@
   "disabled",
   "service_provider",
   "api_endpoint",
+  "access_key",
   "url",
   "column_break_3",
   "help",
@@ -84,12 +85,18 @@
    "fieldname": "disabled",
    "fieldtype": "Check",
    "label": "Disabled"
+  },
+  {
+   "depends_on": "eval:doc.service_provider == 'exchangerate.host';",
+   "fieldname": "access_key",
+   "fieldtype": "Data",
+   "label": "Access Key"
   }
  ],
  "index_web_pages_for_search": 1,
  "issingle": 1,
  "links": [],
- "modified": "2023-01-09 12:19:03.955906",
+ "modified": "2023-10-04 15:30:25.333860",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Currency Exchange Settings",
diff --git a/erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.py b/erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.py
index d618c5c..117d5ff 100644
--- a/erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.py
+++ b/erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.py
@@ -18,11 +18,21 @@
 
 	def set_parameters_and_result(self):
 		if self.service_provider == "exchangerate.host":
+
+			if not self.access_key:
+				frappe.throw(
+					_("Access Key is required for Service Provider: {0}").format(
+						frappe.bold(self.service_provider)
+					)
+				)
+
 			self.set("result_key", [])
 			self.set("req_params", [])
 
 			self.api_endpoint = "https://api.exchangerate.host/convert"
 			self.append("result_key", {"key": "result"})
+			self.append("req_params", {"key": "access_key", "value": self.access_key})
+			self.append("req_params", {"key": "amount", "value": "1"})
 			self.append("req_params", {"key": "date", "value": "{transaction_date}"})
 			self.append("req_params", {"key": "from", "value": "{from_currency}"})
 			self.append("req_params", {"key": "to", "value": "{to_currency}"})
diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.js b/erpnext/accounts/doctype/journal_entry/journal_entry.js
index cdd1203..22b6880 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.js
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.js
@@ -53,7 +53,15 @@
 
 		erpnext.accounts.unreconcile_payments.add_unreconcile_btn(frm);
 	},
-
+	before_save: function(frm) {
+		if ((frm.doc.docstatus == 0) && (!frm.doc.is_system_generated)) {
+			let payment_entry_references = frm.doc.accounts.filter(elem => (elem.reference_type == "Payment Entry"));
+			if (payment_entry_references.length > 0) {
+				let rows = payment_entry_references.map(x => "#"+x.idx);
+				frappe.throw(__("Rows: {0} have 'Payment Entry' as reference_type. This should not be set manually.", [frappe.utils.comma_and(rows)]));
+			}
+		}
+	},
 	make_inter_company_journal_entry: function(frm) {
 		var d = new frappe.ui.Dialog({
 			title: __("Select Company"),
diff --git a/erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.py b/erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.py
index 1e22c64..02c2c67 100644
--- a/erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.py
+++ b/erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.py
@@ -218,6 +218,7 @@
 			"territory": "All Territories",
 		}
 	)
+
 	if not frappe.db.exists("Customer", customer_name):
 		customer.insert(ignore_permissions=True)
 		return customer.name
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index 38a5209..e6403fd 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -271,16 +271,18 @@
 
 				# if no payment template is used by invoice and has a custom term(no `payment_term`), then invoice outstanding will be in 'None' key
 				latest = latest.get(d.payment_term) or latest.get(None)
-
 				# The reference has already been fully paid
 				if not latest:
 					frappe.throw(
 						_("{0} {1} has already been fully paid.").format(_(d.reference_doctype), d.reference_name)
 					)
 				# The reference has already been partly paid
-				elif latest.outstanding_amount < latest.invoice_amount and flt(
-					d.outstanding_amount, d.precision("outstanding_amount")
-				) != flt(latest.outstanding_amount, d.precision("outstanding_amount")):
+				elif (
+					latest.outstanding_amount < latest.invoice_amount
+					and flt(d.outstanding_amount, d.precision("outstanding_amount"))
+					!= flt(latest.outstanding_amount, d.precision("outstanding_amount"))
+					and d.payment_term == ""
+				):
 					frappe.throw(
 						_(
 							"{0} {1} has already been partly paid. Please use the 'Get Outstanding Invoice' or the 'Get Outstanding Orders' button to get the latest outstanding amounts."
@@ -1751,11 +1753,10 @@
 										"voucher_type": d.voucher_type,
 										"posting_date": d.posting_date,
 										"invoice_amount": flt(d.invoice_amount),
-										"outstanding_amount": flt(d.outstanding_amount),
-										"payment_term_outstanding": payment_term_outstanding,
-										"allocated_amount": payment_term_outstanding
+										"outstanding_amount": payment_term_outstanding
 										if payment_term_outstanding
 										else d.outstanding_amount,
+										"payment_term_outstanding": payment_term_outstanding,
 										"payment_amount": payment_term.payment_amount,
 										"payment_term": payment_term.payment_term,
 										"account": d.account,
diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py
index 11d6d5f..ce15bcf 100644
--- a/erpnext/accounts/doctype/payment_request/payment_request.py
+++ b/erpnext/accounts/doctype/payment_request/payment_request.py
@@ -20,7 +20,6 @@
 from erpnext.accounts.doctype.subscription_plan.subscription_plan import get_plan_rate
 from erpnext.accounts.party import get_party_account, get_party_bank_account
 from erpnext.accounts.utils import get_account_currency
-from erpnext.erpnext_integrations.stripe_integration import create_stripe_subscription
 from erpnext.utilities import payment_app_import_guard
 
 
@@ -249,7 +248,7 @@
 		if (
 			party_account_currency == ref_doc.company_currency and party_account_currency != self.currency
 		):
-			party_amount = ref_doc.base_grand_total
+			party_amount = ref_doc.get("base_rounded_total") or ref_doc.get("base_grand_total")
 		else:
 			party_amount = self.grand_total
 
@@ -393,6 +392,9 @@
 
 	def create_subscription(self, payment_provider, gateway_controller, data):
 		if payment_provider == "stripe":
+			with payment_app_import_guard():
+				from payments.payment_gateways.stripe_integration import create_stripe_subscription
+
 			return create_stripe_subscription(gateway_controller, data)
 
 
diff --git a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py
index 52ae951..6c959ba 100644
--- a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py
+++ b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py
@@ -48,6 +48,20 @@
 
 
 def get_report_pdf(doc, consolidated=True):
+	statement_dict = get_statement_dict(doc)
+	if not bool(statement_dict):
+		return False
+	elif consolidated:
+		delimiter = '<div style="page-break-before: always;"></div>' if doc.include_break else ""
+		result = delimiter.join(list(statement_dict.values()))
+		return get_pdf(result, {"orientation": doc.orientation})
+	else:
+		for customer, statement_html in statement_dict.items():
+			statement_dict[customer] = get_pdf(statement_html, {"orientation": doc.orientation})
+		return statement_dict
+
+
+def get_statement_dict(doc, get_statement_dict=False):
 	statement_dict = {}
 	ageing = ""
 
@@ -78,18 +92,11 @@
 			if not res:
 				continue
 
-		statement_dict[entry.customer] = get_html(doc, filters, entry, col, res, ageing)
+		statement_dict[entry.customer] = (
+			[res, ageing] if get_statement_dict else get_html(doc, filters, entry, col, res, ageing)
+		)
 
-	if not bool(statement_dict):
-		return False
-	elif consolidated:
-		delimiter = '<div style="page-break-before: always;"></div>' if doc.include_break else ""
-		result = delimiter.join(list(statement_dict.values()))
-		return get_pdf(result, {"orientation": doc.orientation})
-	else:
-		for customer, statement_html in statement_dict.items():
-			statement_dict[customer] = get_pdf(statement_html, {"orientation": doc.orientation})
-		return statement_dict
+	return statement_dict
 
 
 def set_ageing(doc, entry):
@@ -102,7 +109,8 @@
 			"range2": 60,
 			"range3": 90,
 			"range4": 120,
-			"customer": entry.customer,
+			"party_type": "Customer",
+			"party": [entry.customer],
 		}
 	)
 	col1, ageing = get_ageing(ageing_filters)
diff --git a/erpnext/accounts/doctype/process_statement_of_accounts/test_process_statement_of_accounts.py b/erpnext/accounts/doctype/process_statement_of_accounts/test_process_statement_of_accounts.py
index fb0d8d1..a3a74df 100644
--- a/erpnext/accounts/doctype/process_statement_of_accounts/test_process_statement_of_accounts.py
+++ b/erpnext/accounts/doctype/process_statement_of_accounts/test_process_statement_of_accounts.py
@@ -4,39 +4,107 @@
 import unittest
 
 import frappe
+from frappe.tests.utils import FrappeTestCase
 from frappe.utils import add_days, getdate, today
 
 from erpnext.accounts.doctype.process_statement_of_accounts.process_statement_of_accounts import (
+	get_statement_dict,
 	send_emails,
 )
 from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
+from erpnext.accounts.test.accounts_mixin import AccountsTestMixin
 
 
-class TestProcessStatementOfAccounts(unittest.TestCase):
+class TestProcessStatementOfAccounts(AccountsTestMixin, FrappeTestCase):
 	def setUp(self):
+		self.create_company()
+		self.create_customer()
+		self.create_customer(customer_name="Other Customer")
+		self.clear_old_entries()
 		self.si = create_sales_invoice()
-		self.process_soa = create_process_soa()
+		create_sales_invoice(customer="Other Customer")
+
+	def test_process_soa_for_gl(self):
+		"""Tests the utils for Statement of Accounts(General Ledger)"""
+		process_soa = create_process_soa(
+			name="_Test Process SOA for GL",
+			customers=[{"customer": "_Test Customer"}, {"customer": "Other Customer"}],
+		)
+		statement_dict = get_statement_dict(process_soa, get_statement_dict=True)
+
+		# Checks if the statements are filtered based on the Customer
+		self.assertIn("Other Customer", statement_dict)
+		self.assertIn("_Test Customer", statement_dict)
+
+		# Checks if the correct number of receivable entries exist
+		# 3 rows for opening and closing and 1 row for SI
+		receivable_entries = statement_dict["_Test Customer"][0]
+		self.assertEqual(len(receivable_entries), 4)
+
+		# Checks the amount for the receivable entry
+		self.assertEqual(receivable_entries[1].voucher_no, self.si.name)
+		self.assertEqual(receivable_entries[1].balance, 100)
+
+	def test_process_soa_for_ar(self):
+		"""Tests the utils for Statement of Accounts(Accounts Receivable)"""
+		process_soa = create_process_soa(name="_Test Process SOA for AR", report="Accounts Receivable")
+		statement_dict = get_statement_dict(process_soa, get_statement_dict=True)
+
+		# Checks if the statements are filtered based on the Customer
+		self.assertNotIn("Other Customer", statement_dict)
+		self.assertIn("_Test Customer", statement_dict)
+
+		# Checks if the correct number of receivable entries exist
+		receivable_entries = statement_dict["_Test Customer"][0]
+		self.assertEqual(len(receivable_entries), 1)
+
+		# Checks the amount for the receivable entry
+		self.assertEqual(receivable_entries[0].voucher_no, self.si.name)
+		self.assertEqual(receivable_entries[0].total_due, 100)
+
+		# Checks the ageing summary for AR
+		ageing_summary = statement_dict["_Test Customer"][1][0]
+		expected_summary = frappe._dict(
+			range1=100,
+			range2=0,
+			range3=0,
+			range4=0,
+			range5=0,
+		)
+		self.check_ageing_summary(ageing_summary, expected_summary)
 
 	def test_auto_email_for_process_soa_ar(self):
-		send_emails(self.process_soa.name, from_scheduler=True)
-		self.process_soa.load_from_db()
-		self.assertEqual(self.process_soa.posting_date, getdate(add_days(today(), 7)))
+		process_soa = create_process_soa(
+			name="_Test Process SOA", enable_auto_email=1, report="Accounts Receivable"
+		)
+		send_emails(process_soa.name, from_scheduler=True)
+		process_soa.load_from_db()
+		self.assertEqual(process_soa.posting_date, getdate(add_days(today(), 7)))
+
+	def check_ageing_summary(self, ageing, expected_ageing):
+		for age_range in expected_ageing:
+			self.assertEqual(expected_ageing[age_range], ageing.get(age_range))
 
 	def tearDown(self):
-		frappe.delete_doc_if_exists("Process Statement Of Accounts", "Test Process SOA")
+		frappe.db.rollback()
 
 
-def create_process_soa():
-	frappe.delete_doc_if_exists("Process Statement Of Accounts", "Test Process SOA")
+def create_process_soa(**args):
+	args = frappe._dict(args)
+	frappe.delete_doc_if_exists("Process Statement Of Accounts", args.name)
 	process_soa = frappe.new_doc("Process Statement Of Accounts")
-	soa_dict = {
-		"name": "Test Process SOA",
-		"company": "_Test Company",
-	}
+	soa_dict = frappe._dict(
+		name=args.name,
+		company=args.company or "_Test Company",
+		customers=args.customers or [{"customer": "_Test Customer"}],
+		enable_auto_email=1 if args.enable_auto_email else 0,
+		frequency=args.frequency or "Weekly",
+		report=args.report or "General Ledger",
+		from_date=args.from_date or getdate(today()),
+		to_date=args.to_date or getdate(today()),
+		posting_date=args.posting_date or getdate(today()),
+		include_ageing=1,
+	)
 	process_soa.update(soa_dict)
-	process_soa.set("customers", [{"customer": "_Test Customer"}])
-	process_soa.enable_auto_email = 1
-	process_soa.frequency = "Weekly"
-	process_soa.report = "Accounts Receivable"
 	process_soa.save()
 	return process_soa
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index 095617d..2eaa337 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -479,6 +479,12 @@
 	}
 });
 
+cur_frm.set_query("wip_composite_asset", "items", function() {
+	return {
+		filters: {'is_composite_asset': 1, 'docstatus': 0 }
+	}
+});
+
 cur_frm.cscript.expense_account = function(doc, cdt, cdn){
 	var d = locals[cdt][cdn];
 	if(d.idx == 1 && d.expense_account){
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
index f3c0181..e489882 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
@@ -1385,6 +1385,7 @@
    "depends_on": "eval:doc.is_subcontracted",
    "fieldname": "supplier_warehouse",
    "fieldtype": "Link",
+   "ignore_user_permissions": 1,
    "label": "Supplier Warehouse",
    "no_copy": 1,
    "options": "Warehouse",
@@ -1593,7 +1594,7 @@
  "idx": 204,
  "is_submittable": 1,
  "links": [],
- "modified": "2023-09-21 12:22:04.545106",
+ "modified": "2023-10-01 21:01:47.282533",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Purchase Invoice",
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
index 85ed126..2433268 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -539,8 +539,9 @@
 			]
 			child_tables = {"items": ("expense_account",), "taxes": ("account_head",)}
 			self.needs_repost = self.check_if_fields_updated(fields_to_check, child_tables)
-			self.validate_for_repost()
-			self.db_set("repost_required", self.needs_repost)
+			if self.needs_repost:
+				self.validate_for_repost()
+				self.db_set("repost_required", self.needs_repost)
 
 	def make_gl_entries(self, gl_entries=None, from_repost=False):
 		if not gl_entries:
diff --git a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
index 0aaea06..e365d60 100644
--- a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
@@ -5,7 +5,7 @@
 import unittest
 
 import frappe
-from frappe.tests.utils import change_settings
+from frappe.tests.utils import FrappeTestCase, change_settings
 from frappe.utils import add_days, cint, flt, getdate, nowdate, today
 
 import erpnext
@@ -38,7 +38,7 @@
 test_ignore = ["Serial No"]
 
 
-class TestPurchaseInvoice(unittest.TestCase, StockTestMixin):
+class TestPurchaseInvoice(FrappeTestCase, StockTestMixin):
 	@classmethod
 	def setUpClass(self):
 		unlink_payment_on_cancel_of_invoice()
@@ -48,6 +48,9 @@
 	def tearDownClass(self):
 		unlink_payment_on_cancel_of_invoice(0)
 
+	def tearDown(self):
+		frappe.db.rollback()
+
 	def test_purchase_invoice_received_qty(self):
 		"""
 		1. Test if received qty is validated against accepted + rejected
@@ -422,6 +425,7 @@
 			self.assertEqual(tax.tax_amount, expected_values[i][1])
 			self.assertEqual(tax.total, expected_values[i][2])
 
+	@change_settings("Accounts Settings", {"unlink_payment_on_cancellation_of_invoice": 1})
 	def test_purchase_invoice_with_advance(self):
 		from erpnext.accounts.doctype.journal_entry.test_journal_entry import (
 			test_records as jv_test_records,
@@ -476,6 +480,7 @@
 			)
 		)
 
+	@change_settings("Accounts Settings", {"unlink_payment_on_cancellation_of_invoice": 1})
 	def test_invoice_with_advance_and_multi_payment_terms(self):
 		from erpnext.accounts.doctype.journal_entry.test_journal_entry import (
 			test_records as jv_test_records,
@@ -1220,6 +1225,7 @@
 		acc_settings.submit_journal_entriessubmit_journal_entries = 0
 		acc_settings.save()
 
+	@change_settings("Accounts Settings", {"unlink_payment_on_cancellation_of_invoice": 1})
 	def test_gain_loss_with_advance_entry(self):
 		unlink_enabled = frappe.db.get_value(
 			"Accounts Settings", "Accounts Settings", "unlink_payment_on_cancel_of_invoice"
@@ -1420,6 +1426,7 @@
 		)
 		frappe.db.set_value("Company", "_Test Company", "exchange_gain_loss_account", original_account)
 
+	@change_settings("Accounts Settings", {"unlink_payment_on_cancellation_of_invoice": 1})
 	def test_purchase_invoice_advance_taxes(self):
 		from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry
 
@@ -1916,6 +1923,32 @@
 		pi.load_from_db()
 		self.assertFalse(pi.repost_required)
 
+	@change_settings("Buying Settings", {"supplier_group": None})
+	def test_purchase_invoice_without_supplier_group(self):
+		# Create a Supplier
+		test_supplier_name = "_Test Supplier Without Supplier Group"
+		if not frappe.db.exists("Supplier", test_supplier_name):
+			supplier = frappe.get_doc(
+				{
+					"doctype": "Supplier",
+					"supplier_name": test_supplier_name,
+				}
+			).insert(ignore_permissions=True)
+
+			self.assertEqual(supplier.supplier_group, None)
+
+		po = create_purchase_order(
+			supplier=test_supplier_name,
+			rate=3000,
+			item="_Test Non Stock Item",
+			posting_date="2021-09-15",
+		)
+
+		pi = make_purchase_invoice(supplier=test_supplier_name)
+
+		self.assertEqual(po.docstatus, 1)
+		self.assertEqual(pi.docstatus, 1)
+
 
 def set_advance_flag(company, flag, default_account):
 	frappe.db.set_value(
diff --git a/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.json b/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.json
index 3690142..424e942 100644
--- a/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.json
+++ b/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.json
@@ -77,6 +77,7 @@
   "manufacturer_part_no",
   "accounting",
   "expense_account",
+  "wip_composite_asset",
   "col_break5",
   "is_fixed_asset",
   "asset_location",
@@ -903,12 +904,18 @@
    "no_copy": 1,
    "options": "Serial and Batch Bundle",
    "print_hide": 1
+  },
+  {
+   "fieldname": "wip_composite_asset",
+   "fieldtype": "Link",
+   "label": "WIP Composite Asset",
+   "options": "Asset"
   }
  ],
  "idx": 1,
  "istable": 1,
  "links": [],
- "modified": "2023-07-26 12:54:53.178156",
+ "modified": "2023-10-03 21:01:01.824892",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Purchase Invoice Item",
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index f380825..f6d9c93 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -536,8 +536,9 @@
 				"taxes": ("account_head",),
 			}
 			self.needs_repost = self.check_if_fields_updated(fields_to_check, child_tables)
-			self.validate_for_repost()
-			self.db_set("repost_required", self.needs_repost)
+			if self.needs_repost:
+				self.validate_for_repost()
+				self.db_set("repost_required", self.needs_repost)
 
 	def set_paid_amount(self):
 		paid_amount = 0.0
diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
index 84b0149..c1adffd 100644
--- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
@@ -6,7 +6,7 @@
 
 import frappe
 from frappe.model.dynamic_links import get_dynamic_link_map
-from frappe.tests.utils import change_settings
+from frappe.tests.utils import FrappeTestCase, change_settings
 from frappe.utils import add_days, flt, getdate, nowdate, today
 
 import erpnext
@@ -26,6 +26,7 @@
 from erpnext.controllers.accounts_controller import update_invoice_status
 from erpnext.controllers.taxes_and_totals import get_itemised_tax_breakup_data
 from erpnext.exceptions import InvalidAccountCurrency, InvalidCurrency
+from erpnext.selling.doctype.customer.test_customer import get_customer_dict
 from erpnext.stock.doctype.delivery_note.delivery_note import make_sales_invoice
 from erpnext.stock.doctype.item.test_item import create_item
 from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_purchase_receipt
@@ -44,13 +45,17 @@
 from erpnext.stock.utils import get_incoming_rate, get_stock_balance
 
 
-class TestSalesInvoice(unittest.TestCase):
+class TestSalesInvoice(FrappeTestCase):
 	def setUp(self):
 		from erpnext.stock.doctype.stock_ledger_entry.test_stock_ledger_entry import create_items
 
 		create_items(["_Test Internal Transfer Item"], uoms=[{"uom": "Box", "conversion_factor": 10}])
 		create_internal_parties()
 		setup_accounts()
+		frappe.db.set_single_value("Accounts Settings", "acc_frozen_upto", None)
+
+	def tearDown(self):
+		frappe.db.rollback()
 
 	def make(self):
 		w = frappe.copy_doc(test_records[0])
@@ -178,6 +183,7 @@
 		self.assertRaises(frappe.LinkExistsError, si.cancel)
 		unlink_payment_on_cancel_of_invoice()
 
+	@change_settings("Accounts Settings", {"unlink_payment_on_cancellation_of_invoice": 1})
 	def test_payment_entry_unlink_against_standalone_credit_note(self):
 		from erpnext.accounts.doctype.payment_entry.test_payment_entry import get_payment_entry
 
@@ -1299,6 +1305,7 @@
 		dn.submit()
 		return dn
 
+	@change_settings("Accounts Settings", {"unlink_payment_on_cancellation_of_invoice": 1})
 	def test_sales_invoice_with_advance(self):
 		from erpnext.accounts.doctype.journal_entry.test_journal_entry import (
 			test_records as jv_test_records,
@@ -2774,6 +2781,13 @@
 			company="_Test Company",
 		)
 
+		tds_payable_account = create_account(
+			account_name="TDS Payable",
+			account_type="Tax",
+			parent_account="Duties and Taxes - _TC",
+			company="_Test Company",
+		)
+
 		si = create_sales_invoice(parent_cost_center="Main - _TC", do_not_save=1)
 		si.apply_discount_on = "Grand Total"
 		si.additional_discount_account = additional_discount_account
@@ -3072,8 +3086,8 @@
 			si.commission_rate = commission_rate
 			self.assertRaises(frappe.ValidationError, si.save)
 
+	@change_settings("Accounts Settings", {"acc_frozen_upto": add_days(getdate(), 1)})
 	def test_sales_invoice_submission_post_account_freezing_date(self):
-		frappe.db.set_single_value("Accounts Settings", "acc_frozen_upto", add_days(getdate(), 1))
 		si = create_sales_invoice(do_not_save=True)
 		si.posting_date = add_days(getdate(), 1)
 		si.save()
@@ -3082,8 +3096,6 @@
 		si.posting_date = getdate()
 		si.submit()
 
-		frappe.db.set_single_value("Accounts Settings", "acc_frozen_upto", None)
-
 	def test_over_billing_case_against_delivery_note(self):
 		"""
 		Test a case where duplicating the item with qty = 1 in the invoice
@@ -3112,6 +3124,13 @@
 
 		frappe.db.set_single_value("Accounts Settings", "over_billing_allowance", over_billing_allowance)
 
+	@change_settings(
+		"Accounts Settings",
+		{
+			"book_deferred_entries_via_journal_entry": 1,
+			"submit_journal_entries": 1,
+		},
+	)
 	def test_multi_currency_deferred_revenue_via_journal_entry(self):
 		deferred_account = create_account(
 			account_name="Deferred Revenue",
@@ -3119,11 +3138,6 @@
 			company="_Test Company",
 		)
 
-		acc_settings = frappe.get_single("Accounts Settings")
-		acc_settings.book_deferred_entries_via_journal_entry = 1
-		acc_settings.submit_journal_entries = 1
-		acc_settings.save()
-
 		item = create_item("_Test Item for Deferred Accounting")
 		item.enable_deferred_expense = 1
 		item.item_defaults[0].deferred_revenue_account = deferred_account
@@ -3189,13 +3203,6 @@
 			self.assertEqual(expected_gle[i][2], gle.debit)
 			self.assertEqual(getdate(expected_gle[i][3]), gle.posting_date)
 
-		acc_settings = frappe.get_single("Accounts Settings")
-		acc_settings.book_deferred_entries_via_journal_entry = 0
-		acc_settings.submit_journal_entries = 0
-		acc_settings.save()
-
-		frappe.db.set_single_value("Accounts Settings", "acc_frozen_upto", None)
-
 	def test_standalone_serial_no_return(self):
 		si = create_sales_invoice(
 			item_code="_Test Serialized Item With Series", update_stock=True, is_return=True, qty=-1
@@ -3400,6 +3407,24 @@
 
 		set_advance_flag(company="_Test Company", flag=0, default_account="")
 
+	@change_settings("Selling Settings", {"customer_group": None, "territory": None})
+	def test_sales_invoice_without_customer_group_and_territory(self):
+		# create a customer
+		if not frappe.db.exists("Customer", "_Test Simple Customer"):
+			customer_dict = get_customer_dict("_Test Simple Customer")
+			customer_dict.pop("customer_group")
+			customer_dict.pop("territory")
+			customer = frappe.get_doc(customer_dict).insert(ignore_permissions=True)
+
+			self.assertEqual(customer.customer_group, None)
+			self.assertEqual(customer.territory, None)
+
+		# create a sales invoice
+		si = create_sales_invoice(customer="_Test Simple Customer")
+		self.assertEqual(si.docstatus, 1)
+		self.assertEqual(si.customer_group, None)
+		self.assertEqual(si.territory, None)
+
 	@change_settings("Selling Settings", {"allow_negative_rates_for_items": 0})
 	def test_sales_return_negative_rate(self):
 		si = create_sales_invoice(is_return=1, qty=-2, rate=-10, do_not_save=True)
diff --git a/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.json b/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.json
index abeaab1..5d2764b 100644
--- a/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.json
+++ b/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.json
@@ -157,7 +157,6 @@
    "oldfieldname": "description",
    "oldfieldtype": "Text",
    "print_width": "200px",
-   "reqd": 1,
    "width": "200px"
   },
   {
@@ -912,4 +911,4 @@
  "sort_field": "modified",
  "sort_order": "DESC",
  "states": []
-}
\ No newline at end of file
+}
diff --git a/erpnext/accounts/doctype/subscription/test_subscription.py b/erpnext/accounts/doctype/subscription/test_subscription.py
index 803e879..785fd04 100644
--- a/erpnext/accounts/doctype/subscription/test_subscription.py
+++ b/erpnext/accounts/doctype/subscription/test_subscription.py
@@ -4,6 +4,7 @@
 import unittest
 
 import frappe
+from frappe.tests.utils import FrappeTestCase
 from frappe.utils.data import (
 	add_days,
 	add_months,
@@ -21,11 +22,15 @@
 test_dependencies = ("UOM", "Item Group", "Item")
 
 
-class TestSubscription(unittest.TestCase):
+class TestSubscription(FrappeTestCase):
 	def setUp(self):
 		make_plans()
 		create_parties()
 		reset_settings()
+		frappe.db.set_single_value("Accounts Settings", "acc_frozen_upto", None)
+
+	def tearDown(self):
+		frappe.db.rollback()
 
 	def test_create_subscription_with_trial_with_correct_period(self):
 		subscription = create_subscription(
diff --git a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py
index cffc878..60274cd 100644
--- a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py
+++ b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py
@@ -99,13 +99,11 @@
 
 			# Add all amount columns
 			for k in list(self.party_total[d.party]):
-				if k not in ["currency", "sales_person"]:
-
-					self.party_total[d.party][k] += d.get(k, 0.0)
+				if isinstance(self.party_total[d.party][k], float):
+					self.party_total[d.party][k] += d.get(k) or 0.0
 
 			# set territory, customer_group, sales person etc
 			self.set_party_details(d)
-			self.party_total[d.party].update({"party_type": d.party_type})
 
 	def init_party_total(self, row):
 		self.party_total.setdefault(
@@ -124,6 +122,7 @@
 					"total_due": 0.0,
 					"future_amount": 0.0,
 					"sales_person": [],
+					"party_type": row.party_type,
 				}
 			),
 		)
@@ -133,13 +132,12 @@
 
 		for key in ("territory", "customer_group", "supplier_group"):
 			if row.get(key):
-				self.party_total[row.party][key] = row.get(key)
-
+				self.party_total[row.party][key] = row.get(key, "")
 		if row.sales_person:
-			self.party_total[row.party].sales_person.append(row.sales_person)
+			self.party_total[row.party].sales_person.append(row.get("sales_person", ""))
 
 		if self.filters.sales_partner:
-			self.party_total[row.party]["default_sales_partner"] = row.get("default_sales_partner")
+			self.party_total[row.party]["default_sales_partner"] = row.get("default_sales_partner", "")
 
 	def get_columns(self):
 		self.columns = []
diff --git a/erpnext/accounts/report/balance_sheet/balance_sheet.js b/erpnext/accounts/report/balance_sheet/balance_sheet.js
index ecc13d7..c2b57f7 100644
--- a/erpnext/accounts/report/balance_sheet/balance_sheet.js
+++ b/erpnext/accounts/report/balance_sheet/balance_sheet.js
@@ -1,25 +1,23 @@
 // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 // License: GNU General Public License v3. See license.txt
 
-frappe.require("assets/erpnext/js/financial_statements.js", function () {
-	frappe.query_reports["Balance Sheet"] = $.extend(
-		{},
-		erpnext.financial_statements
-	);
+frappe.query_reports["Balance Sheet"] = $.extend(
+	{},
+	erpnext.financial_statements
+);
 
-	erpnext.utils.add_dimensions("Balance Sheet", 10);
+erpnext.utils.add_dimensions("Balance Sheet", 10);
 
-	frappe.query_reports["Balance Sheet"]["filters"].push({
-		fieldname: "accumulated_values",
-		label: __("Accumulated Values"),
-		fieldtype: "Check",
-		default: 1,
-	});
+frappe.query_reports["Balance Sheet"]["filters"].push({
+	fieldname: "accumulated_values",
+	label: __("Accumulated Values"),
+	fieldtype: "Check",
+	default: 1,
+});
 
-	frappe.query_reports["Balance Sheet"]["filters"].push({
-		fieldname: "include_default_book_entries",
-		label: __("Include Default Book Entries"),
-		fieldtype: "Check",
-		default: 1,
-	});
+frappe.query_reports["Balance Sheet"]["filters"].push({
+	fieldname: "include_default_book_entries",
+	label: __("Include Default Book Entries"),
+	fieldtype: "Check",
+	default: 1,
 });
diff --git a/erpnext/accounts/report/cash_flow/cash_flow.js b/erpnext/accounts/report/cash_flow/cash_flow.js
index a2c34c6..6b8ed27 100644
--- a/erpnext/accounts/report/cash_flow/cash_flow.js
+++ b/erpnext/accounts/report/cash_flow/cash_flow.js
@@ -1,24 +1,24 @@
 // Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors
 // For license information, please see license.txt
 
-frappe.require("assets/erpnext/js/financial_statements.js", function() {
-	frappe.query_reports["Cash Flow"] = $.extend({},
-		erpnext.financial_statements);
+frappe.query_reports["Cash Flow"] = $.extend(
+	{},
+	erpnext.financial_statements
+);
 
-	erpnext.utils.add_dimensions('Cash Flow', 10);
+erpnext.utils.add_dimensions('Cash Flow', 10);
 
-	// The last item in the array is the definition for Presentation Currency
-	// filter. It won't be used in cash flow for now so we pop it. Please take
-	// of this if you are working here.
+// The last item in the array is the definition for Presentation Currency
+// filter. It won't be used in cash flow for now so we pop it. Please take
+// of this if you are working here.
 
-	frappe.query_reports["Cash Flow"]["filters"].splice(8, 1);
+frappe.query_reports["Cash Flow"]["filters"].splice(8, 1);
 
-	frappe.query_reports["Cash Flow"]["filters"].push(
-		{
-			"fieldname": "include_default_book_entries",
-			"label": __("Include Default Book Entries"),
-			"fieldtype": "Check",
-			"default": 1
-		}
-	);
-});
+frappe.query_reports["Cash Flow"]["filters"].push(
+	{
+		"fieldname": "include_default_book_entries",
+		"label": __("Include Default Book Entries"),
+		"fieldtype": "Check",
+		"default": 1
+	}
+);
diff --git a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.js b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.js
index 1afa8d5..590408c 100644
--- a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.js
+++ b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.js
@@ -2,152 +2,150 @@
 // For license information, please see license.txt
 
 
-frappe.require("assets/erpnext/js/financial_statements.js", function() {
-	frappe.query_reports["Consolidated Financial Statement"] = {
-		"filters": [
-			{
-				"fieldname":"company",
-				"label": __("Company"),
-				"fieldtype": "Link",
-				"options": "Company",
-				"default": frappe.defaults.get_user_default("Company"),
-				"reqd": 1
-			},
-			{
-				"fieldname":"filter_based_on",
-				"label": __("Filter Based On"),
-				"fieldtype": "Select",
-				"options": ["Fiscal Year", "Date Range"],
-				"default": ["Fiscal Year"],
-				"reqd": 1,
-				on_change: function() {
-					let filter_based_on = frappe.query_report.get_filter_value('filter_based_on');
-					frappe.query_report.toggle_filter_display('from_fiscal_year', filter_based_on === 'Date Range');
-					frappe.query_report.toggle_filter_display('to_fiscal_year', filter_based_on === 'Date Range');
-					frappe.query_report.toggle_filter_display('period_start_date', filter_based_on === 'Fiscal Year');
-					frappe.query_report.toggle_filter_display('period_end_date', filter_based_on === 'Fiscal Year');
-
-					frappe.query_report.refresh();
-				}
-			},
-			{
-				"fieldname":"period_start_date",
-				"label": __("Start Date"),
-				"fieldtype": "Date",
-				"hidden": 1,
-				"reqd": 1
-			},
-			{
-				"fieldname":"period_end_date",
-				"label": __("End Date"),
-				"fieldtype": "Date",
-				"hidden": 1,
-				"reqd": 1
-			},
-			{
-				"fieldname":"from_fiscal_year",
-				"label": __("Start Year"),
-				"fieldtype": "Link",
-				"options": "Fiscal Year",
-				"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
-				"reqd": 1,
-				on_change: () => {
-					frappe.model.with_doc("Fiscal Year", frappe.query_report.get_filter_value('from_fiscal_year'), function(r) {
-						let year_start_date = frappe.model.get_value("Fiscal Year", frappe.query_report.get_filter_value('from_fiscal_year'), "year_start_date");
-						frappe.query_report.set_filter_value({
-							period_start_date: year_start_date
-						});
-					});
-				}
-			},
-			{
-				"fieldname":"to_fiscal_year",
-				"label": __("End Year"),
-				"fieldtype": "Link",
-				"options": "Fiscal Year",
-				"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
-				"reqd": 1,
-				on_change: () => {
-					frappe.model.with_doc("Fiscal Year", frappe.query_report.get_filter_value('to_fiscal_year'), function(r) {
-						let year_end_date = frappe.model.get_value("Fiscal Year", frappe.query_report.get_filter_value('to_fiscal_year'), "year_end_date");
-						frappe.query_report.set_filter_value({
-							period_end_date: year_end_date
-						});
-					});
-				}
-			},
-			{
-				"fieldname":"finance_book",
-				"label": __("Finance Book"),
-				"fieldtype": "Link",
-				"options": "Finance Book"
-			},
-			{
-				"fieldname":"report",
-				"label": __("Report"),
-				"fieldtype": "Select",
-				"options": ["Profit and Loss Statement", "Balance Sheet", "Cash Flow"],
-				"default": "Balance Sheet",
-				"reqd": 1
-			},
-			{
-				"fieldname": "presentation_currency",
-				"label": __("Currency"),
-				"fieldtype": "Select",
-				"options": erpnext.get_presentation_currency_list(),
-				"default": frappe.defaults.get_user_default("Currency")
-			},
-			{
-				"fieldname":"accumulated_in_group_company",
-				"label": __("Accumulated Values in Group Company"),
-				"fieldtype": "Check",
-				"default": 0
-			},
-			{
-				"fieldname": "include_default_book_entries",
-				"label": __("Include Default Book Entries"),
-				"fieldtype": "Check",
-				"default": 1
-			},
-			{
-				"fieldname": "show_zero_values",
-				"label": __("Show zero values"),
-				"fieldtype": "Check"
-			}
-		],
-		"formatter": function(value, row, column, data, default_formatter) {
-			if (data && column.fieldname=="account") {
-				value = data.account_name || value;
-
-				column.link_onclick =
-				"erpnext.financial_statements.open_general_ledger(" + JSON.stringify(data) + ")";
-				column.is_tree = true;
-			}
-
-			if (data && data.account && column.apply_currency_formatter) {
-				data.currency = erpnext.get_currency(column.company_name);
-			}
-
-			value = default_formatter(value, row, column, data);
-			if (!data.parent_account) {
-				value = $(`<span>${value}</span>`);
-
-				var $value = $(value).css("font-weight", "bold");
-
-				value = $value.wrap("<p></p>").parent().html();
-			}
-			return value;
+frappe.query_reports["Consolidated Financial Statement"] = {
+	"filters": [
+		{
+			"fieldname":"company",
+			"label": __("Company"),
+			"fieldtype": "Link",
+			"options": "Company",
+			"default": frappe.defaults.get_user_default("Company"),
+			"reqd": 1
 		},
-		onload: function() {
-			let fiscal_year = erpnext.utils.get_fiscal_year(frappe.datetime.get_today());
+		{
+			"fieldname":"filter_based_on",
+			"label": __("Filter Based On"),
+			"fieldtype": "Select",
+			"options": ["Fiscal Year", "Date Range"],
+			"default": ["Fiscal Year"],
+			"reqd": 1,
+			on_change: function() {
+				let filter_based_on = frappe.query_report.get_filter_value('filter_based_on');
+				frappe.query_report.toggle_filter_display('from_fiscal_year', filter_based_on === 'Date Range');
+				frappe.query_report.toggle_filter_display('to_fiscal_year', filter_based_on === 'Date Range');
+				frappe.query_report.toggle_filter_display('period_start_date', filter_based_on === 'Fiscal Year');
+				frappe.query_report.toggle_filter_display('period_end_date', filter_based_on === 'Fiscal Year');
 
-			frappe.model.with_doc("Fiscal Year", fiscal_year, function(r) {
-				var fy = frappe.model.get_doc("Fiscal Year", fiscal_year);
-				frappe.query_report.set_filter_value({
-					period_start_date: fy.year_start_date,
-					period_end_date: fy.year_end_date
+				frappe.query_report.refresh();
+			}
+		},
+		{
+			"fieldname":"period_start_date",
+			"label": __("Start Date"),
+			"fieldtype": "Date",
+			"hidden": 1,
+			"reqd": 1
+		},
+		{
+			"fieldname":"period_end_date",
+			"label": __("End Date"),
+			"fieldtype": "Date",
+			"hidden": 1,
+			"reqd": 1
+		},
+		{
+			"fieldname":"from_fiscal_year",
+			"label": __("Start Year"),
+			"fieldtype": "Link",
+			"options": "Fiscal Year",
+			"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
+			"reqd": 1,
+			on_change: () => {
+				frappe.model.with_doc("Fiscal Year", frappe.query_report.get_filter_value('from_fiscal_year'), function(r) {
+					let year_start_date = frappe.model.get_value("Fiscal Year", frappe.query_report.get_filter_value('from_fiscal_year'), "year_start_date");
+					frappe.query_report.set_filter_value({
+						period_start_date: year_start_date
+					});
 				});
-			});
+			}
+		},
+		{
+			"fieldname":"to_fiscal_year",
+			"label": __("End Year"),
+			"fieldtype": "Link",
+			"options": "Fiscal Year",
+			"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
+			"reqd": 1,
+			on_change: () => {
+				frappe.model.with_doc("Fiscal Year", frappe.query_report.get_filter_value('to_fiscal_year'), function(r) {
+					let year_end_date = frappe.model.get_value("Fiscal Year", frappe.query_report.get_filter_value('to_fiscal_year'), "year_end_date");
+					frappe.query_report.set_filter_value({
+						period_end_date: year_end_date
+					});
+				});
+			}
+		},
+		{
+			"fieldname":"finance_book",
+			"label": __("Finance Book"),
+			"fieldtype": "Link",
+			"options": "Finance Book"
+		},
+		{
+			"fieldname":"report",
+			"label": __("Report"),
+			"fieldtype": "Select",
+			"options": ["Profit and Loss Statement", "Balance Sheet", "Cash Flow"],
+			"default": "Balance Sheet",
+			"reqd": 1
+		},
+		{
+			"fieldname": "presentation_currency",
+			"label": __("Currency"),
+			"fieldtype": "Select",
+			"options": erpnext.get_presentation_currency_list(),
+			"default": frappe.defaults.get_user_default("Currency")
+		},
+		{
+			"fieldname":"accumulated_in_group_company",
+			"label": __("Accumulated Values in Group Company"),
+			"fieldtype": "Check",
+			"default": 0
+		},
+		{
+			"fieldname": "include_default_book_entries",
+			"label": __("Include Default Book Entries"),
+			"fieldtype": "Check",
+			"default": 1
+		},
+		{
+			"fieldname": "show_zero_values",
+			"label": __("Show zero values"),
+			"fieldtype": "Check"
 		}
+	],
+	"formatter": function(value, row, column, data, default_formatter) {
+		if (data && column.fieldname=="account") {
+			value = data.account_name || value;
+
+			column.link_onclick =
+				"erpnext.financial_statements.open_general_ledger(" + JSON.stringify(data) + ")";
+			column.is_tree = true;
+		}
+
+		if (data && data.account && column.apply_currency_formatter) {
+			data.currency = erpnext.get_currency(column.company_name);
+		}
+
+		value = default_formatter(value, row, column, data);
+		if (!data.parent_account) {
+			value = $(`<span>${value}</span>`);
+
+			var $value = $(value).css("font-weight", "bold");
+
+			value = $value.wrap("<p></p>").parent().html();
+		}
+		return value;
+	},
+	onload: function() {
+		let fiscal_year = erpnext.utils.get_fiscal_year(frappe.datetime.get_today());
+
+		frappe.model.with_doc("Fiscal Year", fiscal_year, function(r) {
+			var fy = frappe.model.get_doc("Fiscal Year", fiscal_year);
+			frappe.query_report.set_filter_value({
+				period_start_date: fy.year_start_date,
+				period_end_date: fy.year_end_date
+			});
+		});
 	}
-});
+}
diff --git a/erpnext/accounts/report/dimension_wise_accounts_balance_report/dimension_wise_accounts_balance_report.js b/erpnext/accounts/report/dimension_wise_accounts_balance_report/dimension_wise_accounts_balance_report.js
index 79e5a09..51fa8c8 100644
--- a/erpnext/accounts/report/dimension_wise_accounts_balance_report/dimension_wise_accounts_balance_report.js
+++ b/erpnext/accounts/report/dimension_wise_accounts_balance_report/dimension_wise_accounts_balance_report.js
@@ -2,83 +2,81 @@
 // For license information, please see license.txt
 
 
-frappe.require("assets/erpnext/js/financial_statements.js", function() {
-	frappe.query_reports["Dimension-wise Accounts Balance Report"] = {
-		"filters": [
-			{
-				"fieldname": "company",
-				"label": __("Company"),
-				"fieldtype": "Link",
-				"options": "Company",
-				"default": frappe.defaults.get_user_default("Company"),
-				"reqd": 1
-			},
-			{
-				"fieldname": "fiscal_year",
-				"label": __("Fiscal Year"),
-				"fieldtype": "Link",
-				"options": "Fiscal Year",
-				"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
-				"reqd": 1,
-				"on_change": function(query_report) {
-					var fiscal_year = query_report.get_values().fiscal_year;
-					if (!fiscal_year) {
-						return;
-					}
-					frappe.model.with_doc("Fiscal Year", fiscal_year, function(r) {
-						var fy = frappe.model.get_doc("Fiscal Year", fiscal_year);
-						frappe.query_report.set_filter_value({
-							from_date: fy.year_start_date,
-							to_date: fy.year_end_date
-						});
-					});
+frappe.query_reports["Dimension-wise Accounts Balance Report"] = {
+	"filters": [
+		{
+			"fieldname": "company",
+			"label": __("Company"),
+			"fieldtype": "Link",
+			"options": "Company",
+			"default": frappe.defaults.get_user_default("Company"),
+			"reqd": 1
+		},
+		{
+			"fieldname": "fiscal_year",
+			"label": __("Fiscal Year"),
+			"fieldtype": "Link",
+			"options": "Fiscal Year",
+			"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
+			"reqd": 1,
+			"on_change": function(query_report) {
+				var fiscal_year = query_report.get_values().fiscal_year;
+				if (!fiscal_year) {
+					return;
 				}
-			},
-			{
-				"fieldname": "from_date",
-				"label": __("From Date"),
-				"fieldtype": "Date",
-				"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[1],
-				"reqd": 1
-			},
-			{
-				"fieldname": "to_date",
-				"label": __("To Date"),
-				"fieldtype": "Date",
-				"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[2],
-				"reqd": 1
-			},
-			{
-				"fieldname": "finance_book",
-				"label": __("Finance Book"),
-				"fieldtype": "Link",
-				"options": "Finance Book",
-			},
-			{
-				"fieldname": "dimension",
-				"label": __("Select Dimension"),
-				"fieldtype": "Select",
-				"default": "Cost Center",
-				"options": get_accounting_dimension_options(),
-				"reqd": 1,
-			},
-		],
-		"formatter": erpnext.financial_statements.formatter,
-		"tree": true,
-		"name_field": "account",
-		"parent_field": "parent_account",
-		"initial_depth": 3
-	}
+				frappe.model.with_doc("Fiscal Year", fiscal_year, function(r) {
+					var fy = frappe.model.get_doc("Fiscal Year", fiscal_year);
+					frappe.query_report.set_filter_value({
+						from_date: fy.year_start_date,
+						to_date: fy.year_end_date
+					});
+				});
+			}
+		},
+		{
+			"fieldname": "from_date",
+			"label": __("From Date"),
+			"fieldtype": "Date",
+			"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[1],
+			"reqd": 1
+		},
+		{
+			"fieldname": "to_date",
+			"label": __("To Date"),
+			"fieldtype": "Date",
+			"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[2],
+			"reqd": 1
+		},
+		{
+			"fieldname": "finance_book",
+			"label": __("Finance Book"),
+			"fieldtype": "Link",
+			"options": "Finance Book",
+		},
+		{
+			"fieldname": "dimension",
+			"label": __("Select Dimension"),
+			"fieldtype": "Select",
+			"default": "Cost Center",
+			"options": get_accounting_dimension_options(),
+			"reqd": 1,
+		},
+	],
+	"formatter": erpnext.financial_statements.formatter,
+	"tree": true,
+	"name_field": "account",
+	"parent_field": "parent_account",
+	"initial_depth": 3
+}
 
-});
 
 function get_accounting_dimension_options() {
 	let options =["Cost Center", "Project"];
 	frappe.db.get_list('Accounting Dimension',
-		{fields:['document_type']}).then((res) => {
-			res.forEach((dimension) => {
-				options.push(dimension.document_type);
-			});
-		});
+			   {fields:['document_type']}).then((res) => {
+				   res.forEach((dimension) => {
+					   options.push(dimension.document_type);
+				   });
+			   });
 	return options
 }
diff --git a/erpnext/accounts/report/general_and_payment_ledger_comparison/general_and_payment_ledger_comparison.py b/erpnext/accounts/report/general_and_payment_ledger_comparison/general_and_payment_ledger_comparison.py
index 553c137..099884a 100644
--- a/erpnext/accounts/report/general_and_payment_ledger_comparison/general_and_payment_ledger_comparison.py
+++ b/erpnext/accounts/report/general_and_payment_ledger_comparison/general_and_payment_ledger_comparison.py
@@ -133,15 +133,17 @@
 			self.gle_balances = set(val.gle) | self.gle_balances
 			self.ple_balances = set(val.ple) | self.ple_balances
 
-		self.diff1 = self.gle_balances.difference(self.ple_balances)
-		self.diff2 = self.ple_balances.difference(self.gle_balances)
+		self.variation_in_payment_ledger = self.gle_balances.difference(self.ple_balances)
+		self.variation_in_general_ledger = self.ple_balances.difference(self.gle_balances)
 		self.diff = frappe._dict({})
 
-		for x in self.diff1:
+		for x in self.variation_in_payment_ledger:
 			self.diff[(x[0], x[1], x[2], x[3])] = frappe._dict({"gl_balance": x[4]})
 
-		for x in self.diff2:
-			self.diff[(x[0], x[1], x[2], x[3])].update(frappe._dict({"pl_balance": x[4]}))
+		for x in self.variation_in_general_ledger:
+			self.diff.setdefault((x[0], x[1], x[2], x[3]), frappe._dict({"gl_balance": 0.0})).update(
+				frappe._dict({"pl_balance": x[4]})
+			)
 
 	def generate_data(self):
 		self.data = []
diff --git a/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.js b/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.js
index f6b0b8c..40d4259 100644
--- a/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.js
+++ b/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.js
@@ -2,20 +2,15 @@
 // For license information, please see license.txt
 
 
-frappe.query_reports["Gross and Net Profit Report"] = {
-	"filters": [
+frappe.query_reports["Gross and Net Profit Report"] = $.extend(
+	{},
+	erpnext.financial_statements
+);
 
-	]
-}
-frappe.require("assets/erpnext/js/financial_statements.js", function() {
-	frappe.query_reports["Gross and Net Profit Report"] = $.extend({},
-		erpnext.financial_statements);
-
-	frappe.query_reports["Gross and Net Profit Report"]["filters"].push(
-		{
-			"fieldname": "accumulated_values",
-			"label": __("Accumulated Values"),
-			"fieldtype": "Check"
-		}
-	);
-});
+frappe.query_reports["Gross and Net Profit Report"]["filters"].push(
+	{
+		"fieldname": "accumulated_values",
+		"label": __("Accumulated Values"),
+		"fieldtype": "Check"
+	}
+);
diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py
index 3324a73..38060bb 100644
--- a/erpnext/accounts/report/gross_profit/gross_profit.py
+++ b/erpnext/accounts/report/gross_profit/gross_profit.py
@@ -544,6 +544,8 @@
 						new_row.qty += flt(row.qty)
 						new_row.buying_amount += flt(row.buying_amount, self.currency_precision)
 						new_row.base_amount += flt(row.base_amount, self.currency_precision)
+						if self.filters.get("group_by") == "Sales Person":
+							new_row.allocated_amount += flt(row.allocated_amount, self.currency_precision)
 				new_row = self.set_average_rate(new_row)
 				self.grouped_data.append(new_row)
 
diff --git a/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.js b/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.js
index 9fe93b9..e5898bf 100644
--- a/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.js
+++ b/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.js
@@ -1,18 +1,16 @@
 // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 // License: GNU General Public License v3. See license.txt
 
-frappe.require("assets/erpnext/js/financial_statements.js", function () {
-	frappe.query_reports["Profit and Loss Statement"] = $.extend(
-		{},
-		erpnext.financial_statements
-	);
+frappe.query_reports["Profit and Loss Statement"] = $.extend(
+	{},
+	erpnext.financial_statements
+);
 
-	erpnext.utils.add_dimensions("Profit and Loss Statement", 10);
+erpnext.utils.add_dimensions("Profit and Loss Statement", 10);
 
-	frappe.query_reports["Profit and Loss Statement"]["filters"].push({
-		fieldname: "accumulated_values",
-		label: __("Accumulated Values"),
-		fieldtype: "Check",
-		default: 1,
-	});
+frappe.query_reports["Profit and Loss Statement"]["filters"].push({
+	fieldname: "accumulated_values",
+	label: __("Accumulated Values"),
+	fieldtype: "Check",
+	default: 1,
 });
diff --git a/erpnext/accounts/report/profitability_analysis/profitability_analysis.js b/erpnext/accounts/report/profitability_analysis/profitability_analysis.js
index c9accef..4a3d9bb 100644
--- a/erpnext/accounts/report/profitability_analysis/profitability_analysis.js
+++ b/erpnext/accounts/report/profitability_analysis/profitability_analysis.js
@@ -1,133 +1,131 @@
 // Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
 // For license information, please see license.txt
 
-frappe.require("assets/erpnext/js/financial_statements.js", function() {
-	frappe.query_reports["Profitability Analysis"] = {
-		"filters": [
-			{
-				"fieldname": "company",
-				"label": __("Company"),
-				"fieldtype": "Link",
-				"options": "Company",
-				"default": frappe.defaults.get_user_default("Company"),
-				"reqd": 1
-			},
-			{
-				"fieldname": "based_on",
-				"label": __("Based On"),
-				"fieldtype": "Select",
-				"options": ["Cost Center", "Project", "Accounting Dimension"],
-				"default": "Cost Center",
-				"reqd": 1,
-				"on_change": function(query_report){
-					let based_on = query_report.get_values().based_on;
-					if(based_on!='Accounting Dimension'){
-						frappe.query_report.set_filter_value({
-							accounting_dimension: ''
-						});
-					}
-				}
-			},
-			{
-				"fieldname": "accounting_dimension",
-				"label": __("Accounting Dimension"),
-				"fieldtype": "Link",
-				"options": "Accounting Dimension",
-				"get_query": () =>{
-					return {
-						filters: {
-							"disabled": 0
-						}
-					}
-				}
-			},
-			{
-				"fieldname": "fiscal_year",
-				"label": __("Fiscal Year"),
-				"fieldtype": "Link",
-				"options": "Fiscal Year",
-				"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
-				"reqd": 1,
-				"on_change": function(query_report) {
-					var fiscal_year = query_report.get_values().fiscal_year;
-					if (!fiscal_year) {
-						return;
-					}
-					frappe.model.with_doc("Fiscal Year", fiscal_year, function(r) {
-						var fy = frappe.model.get_doc("Fiscal Year", fiscal_year);
-						frappe.query_report.set_filter_value({
-							from_date: fy.year_start_date,
-							to_date: fy.year_end_date
-						});
+frappe.query_reports["Profitability Analysis"] = {
+	"filters": [
+		{
+			"fieldname": "company",
+			"label": __("Company"),
+			"fieldtype": "Link",
+			"options": "Company",
+			"default": frappe.defaults.get_user_default("Company"),
+			"reqd": 1
+		},
+		{
+			"fieldname": "based_on",
+			"label": __("Based On"),
+			"fieldtype": "Select",
+			"options": ["Cost Center", "Project", "Accounting Dimension"],
+			"default": "Cost Center",
+			"reqd": 1,
+			"on_change": function(query_report){
+				let based_on = query_report.get_values().based_on;
+				if(based_on!='Accounting Dimension'){
+					frappe.query_report.set_filter_value({
+						accounting_dimension: ''
 					});
 				}
-			},
-			{
-				"fieldname": "from_date",
-				"label": __("From Date"),
-				"fieldtype": "Date",
-				"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[1],
-			},
-			{
-				"fieldname": "to_date",
-				"label": __("To Date"),
-				"fieldtype": "Date",
-				"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[2],
-			},
-			{
-				"fieldname": "show_zero_values",
-				"label": __("Show zero values"),
-				"fieldtype": "Check"
 			}
-		],
-		"formatter": function(value, row, column, data, default_formatter) {
-			if (column.fieldname=="account") {
-				value = data.account_name;
-
-				column.link_onclick =
-					"frappe.query_reports['Profitability Analysis'].open_profit_and_loss_statement(" + JSON.stringify(data) + ")";
-				column.is_tree = true;
-			}
-
-			value = default_formatter(value, row, column, data);
-
-			if (!data.parent_account && data.based_on != 'project') {
-				value = $(`<span>${value}</span>`);
-				var $value = $(value).css("font-weight", "bold");
-				if (data.warn_if_negative && data[column.fieldname] < 0) {
-					$value.addClass("text-danger");
+		},
+		{
+			"fieldname": "accounting_dimension",
+			"label": __("Accounting Dimension"),
+			"fieldtype": "Link",
+			"options": "Accounting Dimension",
+			"get_query": () =>{
+				return {
+					filters: {
+						"disabled": 0
+					}
 				}
+			}
+		},
+		{
+			"fieldname": "fiscal_year",
+			"label": __("Fiscal Year"),
+			"fieldtype": "Link",
+			"options": "Fiscal Year",
+			"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
+			"reqd": 1,
+			"on_change": function(query_report) {
+				var fiscal_year = query_report.get_values().fiscal_year;
+				if (!fiscal_year) {
+					return;
+				}
+				frappe.model.with_doc("Fiscal Year", fiscal_year, function(r) {
+					var fy = frappe.model.get_doc("Fiscal Year", fiscal_year);
+					frappe.query_report.set_filter_value({
+						from_date: fy.year_start_date,
+						to_date: fy.year_end_date
+					});
+				});
+			}
+		},
+		{
+			"fieldname": "from_date",
+			"label": __("From Date"),
+			"fieldtype": "Date",
+			"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[1],
+		},
+		{
+			"fieldname": "to_date",
+			"label": __("To Date"),
+			"fieldtype": "Date",
+			"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[2],
+		},
+		{
+			"fieldname": "show_zero_values",
+			"label": __("Show zero values"),
+			"fieldtype": "Check"
+		}
+	],
+	"formatter": function(value, row, column, data, default_formatter) {
+		if (column.fieldname=="account") {
+			value = data.account_name;
 
-				value = $value.wrap("<p></p>").parent().html();
+			column.link_onclick =
+				"frappe.query_reports['Profitability Analysis'].open_profit_and_loss_statement(" + JSON.stringify(data) + ")";
+			column.is_tree = true;
+		}
+
+		value = default_formatter(value, row, column, data);
+
+		if (!data.parent_account && data.based_on != 'project') {
+			value = $(`<span>${value}</span>`);
+			var $value = $(value).css("font-weight", "bold");
+			if (data.warn_if_negative && data[column.fieldname] < 0) {
+				$value.addClass("text-danger");
 			}
 
-			return value;
-		},
-		"open_profit_and_loss_statement": function(data) {
-			if (!data.account) return;
+			value = $value.wrap("<p></p>").parent().html();
+		}
 
-			frappe.route_options = {
-				"company": frappe.query_report.get_filter_value('company'),
-				"from_fiscal_year": data.fiscal_year,
-				"to_fiscal_year": data.fiscal_year
-			};
+		return value;
+	},
+	"open_profit_and_loss_statement": function(data) {
+		if (!data.account) return;
 
-			if(data.based_on == 'cost_center'){
-				frappe.route_options["cost_center"] = data.account
-			} else {
-				frappe.route_options["project"] = data.account
-			}
+		frappe.route_options = {
+			"company": frappe.query_report.get_filter_value('company'),
+			"from_fiscal_year": data.fiscal_year,
+			"to_fiscal_year": data.fiscal_year
+		};
 
-			frappe.set_route("query-report", "Profit and Loss Statement");
-		},
-		"tree": true,
-		"name_field": "account",
-		"parent_field": "parent_account",
-		"initial_depth": 3
-	}
+		if(data.based_on == 'Cost Center'){
+			frappe.route_options["cost_center"] = data.account
+		} else {
+			frappe.route_options["project"] = data.account
+		}
 
-	erpnext.dimension_filters.forEach((dimension) => {
-		frappe.query_reports["Profitability Analysis"].filters[1].options.push(dimension["document_type"]);
-	});
+		frappe.set_route("query-report", "Profit and Loss Statement");
+	},
+	"tree": true,
+	"name_field": "account",
+	"parent_field": "parent_account",
+	"initial_depth": 3
+}
 
+erpnext.dimension_filters.forEach((dimension) => {
+	frappe.query_reports["Profitability Analysis"].filters[1].options.push(dimension["document_type"]);
 });
+
diff --git a/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py b/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py
index 91ad3d6..f2ec31c 100644
--- a/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py
+++ b/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py
@@ -68,7 +68,11 @@
 				tax_amount += entry.credit - entry.debit
 
 			if net_total_map.get(name):
-				total_amount, grand_total, base_total = net_total_map.get(name)
+				if voucher_type == "Journal Entry":
+					# back calcalute total amount from rate and tax_amount
+					total_amount = grand_total = base_total = tax_amount / (rate / 100)
+				else:
+					total_amount, grand_total, base_total = net_total_map.get(name)
 			else:
 				total_amount += entry.credit
 
diff --git a/erpnext/accounts/report/trial_balance/trial_balance.js b/erpnext/accounts/report/trial_balance/trial_balance.js
index c12ab0f..edd40b6 100644
--- a/erpnext/accounts/report/trial_balance/trial_balance.js
+++ b/erpnext/accounts/report/trial_balance/trial_balance.js
@@ -1,118 +1,116 @@
 // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 // License: GNU General Public License v3. See license.txt
 
-frappe.require("assets/erpnext/js/financial_statements.js", function() {
-	frappe.query_reports["Trial Balance"] = {
-		"filters": [
-			{
-				"fieldname": "company",
-				"label": __("Company"),
-				"fieldtype": "Link",
-				"options": "Company",
-				"default": frappe.defaults.get_user_default("Company"),
-				"reqd": 1
-			},
-			{
-				"fieldname": "fiscal_year",
-				"label": __("Fiscal Year"),
-				"fieldtype": "Link",
-				"options": "Fiscal Year",
-				"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
-				"reqd": 1,
-				"on_change": function(query_report) {
-					var fiscal_year = query_report.get_values().fiscal_year;
-					if (!fiscal_year) {
-						return;
-					}
-					frappe.model.with_doc("Fiscal Year", fiscal_year, function(r) {
-						var fy = frappe.model.get_doc("Fiscal Year", fiscal_year);
-						frappe.query_report.set_filter_value({
-							from_date: fy.year_start_date,
-							to_date: fy.year_end_date
-						});
+frappe.query_reports["Trial Balance"] = {
+	"filters": [
+		{
+			"fieldname": "company",
+			"label": __("Company"),
+			"fieldtype": "Link",
+			"options": "Company",
+			"default": frappe.defaults.get_user_default("Company"),
+			"reqd": 1
+		},
+		{
+			"fieldname": "fiscal_year",
+			"label": __("Fiscal Year"),
+			"fieldtype": "Link",
+			"options": "Fiscal Year",
+			"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
+			"reqd": 1,
+			"on_change": function(query_report) {
+				var fiscal_year = query_report.get_values().fiscal_year;
+				if (!fiscal_year) {
+					return;
+				}
+				frappe.model.with_doc("Fiscal Year", fiscal_year, function(r) {
+					var fy = frappe.model.get_doc("Fiscal Year", fiscal_year);
+					frappe.query_report.set_filter_value({
+						from_date: fy.year_start_date,
+						to_date: fy.year_end_date
 					});
-				}
-			},
-			{
-				"fieldname": "from_date",
-				"label": __("From Date"),
-				"fieldtype": "Date",
-				"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[1],
-			},
-			{
-				"fieldname": "to_date",
-				"label": __("To Date"),
-				"fieldtype": "Date",
-				"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[2],
-			},
-			{
-				"fieldname": "cost_center",
-				"label": __("Cost Center"),
-				"fieldtype": "Link",
-				"options": "Cost Center",
-				"get_query": function() {
-					var company = frappe.query_report.get_filter_value('company');
-					return {
-						"doctype": "Cost Center",
-						"filters": {
-							"company": company,
-						}
+				});
+			}
+		},
+		{
+			"fieldname": "from_date",
+			"label": __("From Date"),
+			"fieldtype": "Date",
+			"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[1],
+		},
+		{
+			"fieldname": "to_date",
+			"label": __("To Date"),
+			"fieldtype": "Date",
+			"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[2],
+		},
+		{
+			"fieldname": "cost_center",
+			"label": __("Cost Center"),
+			"fieldtype": "Link",
+			"options": "Cost Center",
+			"get_query": function() {
+				var company = frappe.query_report.get_filter_value('company');
+				return {
+					"doctype": "Cost Center",
+					"filters": {
+						"company": company,
 					}
 				}
-			},
-			{
-				"fieldname": "project",
-				"label": __("Project"),
-				"fieldtype": "Link",
-				"options": "Project"
-			},
-			{
-				"fieldname": "finance_book",
-				"label": __("Finance Book"),
-				"fieldtype": "Link",
-				"options": "Finance Book",
-			},
-			{
-				"fieldname": "presentation_currency",
-				"label": __("Currency"),
-				"fieldtype": "Select",
-				"options": erpnext.get_presentation_currency_list()
-			},
-			{
-				"fieldname": "with_period_closing_entry",
-				"label": __("Period Closing Entry"),
-				"fieldtype": "Check",
-				"default": 1
-			},
-			{
-				"fieldname": "show_zero_values",
-				"label": __("Show zero values"),
-				"fieldtype": "Check"
-			},
-			{
-				"fieldname": "show_unclosed_fy_pl_balances",
-				"label": __("Show unclosed fiscal year's P&L balances"),
-				"fieldtype": "Check"
-			},
-			{
-				"fieldname": "include_default_book_entries",
-				"label": __("Include Default Book Entries"),
-				"fieldtype": "Check",
-				"default": 1
-			},
-			{
-				"fieldname": "show_net_values",
-				"label": __("Show net values in opening and closing columns"),
-				"fieldtype": "Check",
-				"default": 1
 			}
-		],
-		"formatter": erpnext.financial_statements.formatter,
-		"tree": true,
-		"name_field": "account",
-		"parent_field": "parent_account",
-		"initial_depth": 3
-	}
+		},
+		{
+			"fieldname": "project",
+			"label": __("Project"),
+			"fieldtype": "Link",
+			"options": "Project"
+		},
+		{
+			"fieldname": "finance_book",
+			"label": __("Finance Book"),
+			"fieldtype": "Link",
+			"options": "Finance Book",
+		},
+		{
+			"fieldname": "presentation_currency",
+			"label": __("Currency"),
+			"fieldtype": "Select",
+			"options": erpnext.get_presentation_currency_list()
+		},
+		{
+			"fieldname": "with_period_closing_entry",
+			"label": __("Period Closing Entry"),
+			"fieldtype": "Check",
+			"default": 1
+		},
+		{
+			"fieldname": "show_zero_values",
+			"label": __("Show zero values"),
+			"fieldtype": "Check"
+		},
+		{
+			"fieldname": "show_unclosed_fy_pl_balances",
+			"label": __("Show unclosed fiscal year's P&L balances"),
+			"fieldtype": "Check"
+		},
+		{
+			"fieldname": "include_default_book_entries",
+			"label": __("Include Default Book Entries"),
+			"fieldtype": "Check",
+			"default": 1
+		},
+		{
+			"fieldname": "show_net_values",
+			"label": __("Show net values in opening and closing columns"),
+			"fieldtype": "Check",
+			"default": 1
+		}
+	],
+	"formatter": erpnext.financial_statements.formatter,
+	"tree": true,
+	"name_field": "account",
+	"parent_field": "parent_account",
+	"initial_depth": 3
+}
 
-	erpnext.utils.add_dimensions('Trial Balance', 6);
-});
+erpnext.utils.add_dimensions('Trial Balance', 6);
diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js
index 962292b..f0e4c82 100644
--- a/erpnext/assets/doctype/asset/asset.js
+++ b/erpnext/assets/doctype/asset/asset.js
@@ -148,6 +148,15 @@
 
 		if (frm.doc.docstatus == 0) {
 			frm.toggle_reqd("finance_books", frm.doc.calculate_depreciation);
+
+			if (frm.doc.is_composite_asset && !frm.doc.capitalized_in) {
+				$('.primary-action').prop('hidden', true);
+				$('.form-message').text('Capitalize this asset to confirm');
+
+				frm.add_custom_button(__("Capitalize Asset"), function() {
+					frm.trigger("create_asset_capitalization");
+				});
+			}
 		}
 	},
 
@@ -169,7 +178,7 @@
 			frm.set_df_property('purchase_invoice', 'read_only', 1);
 			frm.set_df_property('purchase_receipt', 'read_only', 1);
 		}
-		else if (frm.doc.is_existing_asset) {
+		else if (frm.doc.is_existing_asset || frm.doc.is_composite_asset) {
 			frm.toggle_reqd('purchase_receipt', 0);
 			frm.toggle_reqd('purchase_invoice', 0);
 		}
@@ -239,7 +248,7 @@
 
 		datatable.style.setStyle(`.dt-scrollable`, {'font-size': '0.75rem', 'margin-bottom': '1rem', 'margin-left': '0.35rem', 'margin-right': '0.35rem'});
 		datatable.style.setStyle(`.dt-header`, {'margin-left': '0.35rem', 'margin-right': '0.35rem'});
-		datatable.style.setStyle(`.dt-cell--header`, {'color': 'var(--text-muted)'});
+		datatable.style.setStyle(`.dt-cell--header .dt-cell__content`, {'color': 'var(--gray-600)', 'font-size': 'var(--text-sm)'});
 		datatable.style.setStyle(`.dt-cell`, {'color': 'var(--text-color)'});
 		datatable.style.setStyle(`.dt-cell--col-1`, {'text-align': 'center'});
 		datatable.style.setStyle(`.dt-cell--col-2`, {'font-weight': 600});
@@ -328,7 +337,7 @@
 
 
 	item_code: function(frm) {
-		if(frm.doc.item_code && frm.doc.calculate_depreciation) {
+		if(frm.doc.item_code && frm.doc.calculate_depreciation && frm.doc.gross_purchase_amount) {
 			frm.trigger('set_finance_book');
 		} else {
 			frm.set_value('finance_books', []);
@@ -340,7 +349,8 @@
 			method: "erpnext.assets.doctype.asset.asset.get_item_details",
 			args: {
 				item_code: frm.doc.item_code,
-				asset_category: frm.doc.asset_category
+				asset_category: frm.doc.asset_category,
+				gross_purchase_amount: frm.doc.gross_purchase_amount
 			},
 			callback: function(r, rt) {
 				if(r.message) {
@@ -352,7 +362,17 @@
 
 	is_existing_asset: function(frm) {
 		frm.trigger("toggle_reference_doc");
-		// frm.toggle_reqd("next_depreciation_date", (!frm.doc.is_existing_asset && frm.doc.calculate_depreciation));
+	},
+
+	is_composite_asset: function(frm) {
+		if(frm.doc.is_composite_asset) {
+			frm.set_value('gross_purchase_amount', 0);
+			frm.set_df_property('gross_purchase_amount', 'read_only', 1);
+		} else {
+			frm.set_df_property('gross_purchase_amount', 'read_only', 0);
+		}
+
+		frm.trigger("toggle_reference_doc");
 	},
 
 	make_sales_invoice: function(frm) {
@@ -402,6 +422,19 @@
 		});
 	},
 
+	create_asset_capitalization: function(frm) {
+		frappe.call({
+			args: {
+				"asset": frm.doc.name,
+			},
+			method: "erpnext.assets.doctype.asset.asset.create_asset_capitalization",
+			callback: function(r) {
+				var doclist = frappe.model.sync(r.message);
+				frappe.set_route("Form", doclist[0].doctype, doclist[0].name);
+			}
+		});
+	},
+
 	split_asset: function(frm) {
 		const title = __('Split Asset');
 
@@ -457,7 +490,7 @@
 
 	calculate_depreciation: function(frm) {
 		frm.toggle_reqd("finance_books", frm.doc.calculate_depreciation);
-		if (frm.doc.item_code && frm.doc.calculate_depreciation ) {
+		if (frm.doc.item_code && frm.doc.calculate_depreciation && frm.doc.gross_purchase_amount) {
 			frm.trigger("set_finance_book");
 		} else {
 			frm.set_value("finance_books", []);
@@ -465,9 +498,11 @@
 	},
 
 	gross_purchase_amount: function(frm) {
-		frm.doc.finance_books.forEach(d => {
-			frm.events.set_depreciation_rate(frm, d);
-		})
+		if (frm.doc.finance_books) {
+			frm.doc.finance_books.forEach(d => {
+				frm.events.set_depreciation_rate(frm, d);
+			})
+		}
 	},
 
 	purchase_receipt: (frm) => {
@@ -546,7 +581,21 @@
 				}
 			});
 		}
-	}
+	},
+
+	set_salvage_value_percentage_or_expected_value_after_useful_life: function(frm, row, salvage_value_percentage_changed, expected_value_after_useful_life_changed) {
+		if (expected_value_after_useful_life_changed) {
+			frappe.flags.from_set_salvage_value_percentage_or_expected_value_after_useful_life = true;
+			const new_salvage_value_percentage = flt((row.expected_value_after_useful_life * 100) / frm.doc.gross_purchase_amount, precision("salvage_value_percentage", row));
+			frappe.model.set_value(row.doctype, row.name, "salvage_value_percentage", new_salvage_value_percentage);
+			frappe.flags.from_set_salvage_value_percentage_or_expected_value_after_useful_life = false;
+		} else if (salvage_value_percentage_changed) {
+			frappe.flags.from_set_salvage_value_percentage_or_expected_value_after_useful_life = true;
+			const new_expected_value_after_useful_life = flt(frm.doc.gross_purchase_amount * (row.salvage_value_percentage / 100), precision('gross_purchase_amount'));
+			frappe.model.set_value(row.doctype, row.name, "expected_value_after_useful_life", new_expected_value_after_useful_life);
+			frappe.flags.from_set_salvage_value_percentage_or_expected_value_after_useful_life = false;
+		}
+	},
 });
 
 frappe.ui.form.on('Asset Finance Book', {
@@ -557,9 +606,19 @@
 
 	expected_value_after_useful_life: function(frm, cdt, cdn) {
 		const row = locals[cdt][cdn];
+		if (!frappe.flags.from_set_salvage_value_percentage_or_expected_value_after_useful_life) {
+			frm.events.set_salvage_value_percentage_or_expected_value_after_useful_life(frm, row, false, true);
+		}
 		frm.events.set_depreciation_rate(frm, row);
 	},
 
+	salvage_value_percentage: function(frm, cdt, cdn) {
+		const row = locals[cdt][cdn];
+		if (!frappe.flags.from_set_salvage_value_percentage_or_expected_value_after_useful_life) {
+			frm.events.set_salvage_value_percentage_or_expected_value_after_useful_life(frm, row, true, false);
+		}
+	},
+
 	frequency_of_depreciation: function(frm, cdt, cdn) {
 		const row = locals[cdt][cdn];
 		frm.events.set_depreciation_rate(frm, row);
diff --git a/erpnext/assets/doctype/asset/asset.json b/erpnext/assets/doctype/asset/asset.json
index befb524..c7d08e2 100644
--- a/erpnext/assets/doctype/asset/asset.json
+++ b/erpnext/assets/doctype/asset/asset.json
@@ -14,6 +14,7 @@
   "asset_owner",
   "asset_owner_company",
   "is_existing_asset",
+  "is_composite_asset",
   "supplier",
   "customer",
   "image",
@@ -72,7 +73,8 @@
   "purchase_receipt_amount",
   "default_finance_book",
   "depr_entry_posting_status",
-  "amended_from"
+  "amended_from",
+  "capitalized_in"
  ],
  "fields": [
   {
@@ -199,7 +201,7 @@
    "fieldtype": "Date",
    "label": "Purchase Date",
    "read_only": 1,
-   "read_only_depends_on": "eval:!doc.is_existing_asset",
+   "read_only_depends_on": "eval:!doc.is_existing_asset && !doc.is_composite_asset",
    "reqd": 1
   },
   {
@@ -237,10 +239,12 @@
    "default": "0",
    "fieldname": "calculate_depreciation",
    "fieldtype": "Check",
-   "label": "Calculate Depreciation"
+   "label": "Calculate Depreciation",
+   "read_only_depends_on": "eval:doc.is_composite_asset && !doc.gross_purchase_amount"
   },
   {
    "default": "0",
+   "depends_on": "eval:!doc.is_composite_asset",
    "fieldname": "is_existing_asset",
    "fieldtype": "Check",
    "label": "Is Existing Asset"
@@ -478,7 +482,7 @@
    "fieldname": "asset_quantity",
    "fieldtype": "Int",
    "label": "Asset Quantity",
-   "read_only_depends_on": "eval:!doc.is_existing_asset"
+   "read_only_depends_on": "eval:!doc.is_existing_asset && !doc.is_composite_asset"
   },
   {
    "fieldname": "depr_entry_posting_status",
@@ -507,6 +511,21 @@
    "fieldname": "is_fully_depreciated",
    "fieldtype": "Check",
    "label": "Is Fully Depreciated"
+  },
+  {
+   "default": "0",
+   "depends_on": "eval:!doc.is_existing_asset",
+   "fieldname": "is_composite_asset",
+   "fieldtype": "Check",
+   "label": "Is Composite Asset"
+  },
+  {
+   "fieldname": "capitalized_in",
+   "fieldtype": "Link",
+   "hidden": 1,
+   "label": "Capitalized In",
+   "options": "Asset Capitalization",
+   "read_only": 1
   }
  ],
  "idx": 72,
@@ -545,7 +564,7 @@
    "table_fieldname": "accounts"
   }
  ],
- "modified": "2023-07-28 20:12:44.819616",
+ "modified": "2023-10-03 23:28:26.732269",
  "modified_by": "Administrator",
  "module": "Assets",
  "name": "Asset",
diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index 0dbed87..9d35634 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -198,7 +198,9 @@
 			self.asset_category = frappe.get_cached_value("Item", self.item_code, "asset_category")
 
 		if self.item_code and not self.get("finance_books"):
-			finance_books = get_item_details(self.item_code, self.asset_category)
+			finance_books = get_item_details(
+				self.item_code, self.asset_category, self.gross_purchase_amount
+			)
 			self.set("finance_books", finance_books)
 
 	def validate_finance_books(self):
@@ -226,7 +228,7 @@
 		if not self.asset_category:
 			self.asset_category = frappe.get_cached_value("Item", self.item_code, "asset_category")
 
-		if not flt(self.gross_purchase_amount):
+		if not flt(self.gross_purchase_amount) and not self.is_composite_asset:
 			frappe.throw(_("Gross Purchase Amount is mandatory"), frappe.MandatoryError)
 
 		if is_cwip_accounting_enabled(self.asset_category):
@@ -767,6 +769,15 @@
 
 
 @frappe.whitelist()
+def create_asset_capitalization(asset):
+	asset_capitalization = frappe.new_doc("Asset Capitalization")
+	asset_capitalization.update(
+		{"target_asset": asset, "capitalization_method": "Choose a WIP composite asset"}
+	)
+	return asset_capitalization
+
+
+@frappe.whitelist()
 def create_asset_value_adjustment(asset, asset_category, company):
 	asset_value_adjustment = frappe.new_doc("Asset Value Adjustment")
 	asset_value_adjustment.update(
@@ -797,7 +808,7 @@
 
 
 @frappe.whitelist()
-def get_item_details(item_code, asset_category):
+def get_item_details(item_code, asset_category, gross_purchase_amount):
 	asset_category_doc = frappe.get_doc("Asset Category", asset_category)
 	books = []
 	for d in asset_category_doc.finance_books:
@@ -807,7 +818,11 @@
 				"depreciation_method": d.depreciation_method,
 				"total_number_of_depreciations": d.total_number_of_depreciations,
 				"frequency_of_depreciation": d.frequency_of_depreciation,
-				"start_date": nowdate(),
+				"daily_depreciation": d.daily_depreciation,
+				"salvage_value_percentage": d.salvage_value_percentage,
+				"expected_value_after_useful_life": flt(gross_purchase_amount)
+				* flt(d.salvage_value_percentage / 100),
+				"depreciation_start_date": d.depreciation_start_date or nowdate(),
 			}
 		)
 
diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py
index 39fcb21..88ef69c 100644
--- a/erpnext/assets/doctype/asset/test_asset.py
+++ b/erpnext/assets/doctype/asset/test_asset.py
@@ -1744,6 +1744,7 @@
 			"location": args.location or "Test Location",
 			"asset_owner": args.asset_owner or "Company",
 			"is_existing_asset": args.is_existing_asset or 1,
+			"is_composite_asset": args.is_composite_asset or 0,
 			"asset_quantity": args.get("asset_quantity") or 1,
 			"depr_entry_posting_status": args.depr_entry_posting_status or "",
 		}
diff --git a/erpnext/assets/doctype/asset_activity/asset_activity.json b/erpnext/assets/doctype/asset_activity/asset_activity.json
index 476fb27..00992e2 100644
--- a/erpnext/assets/doctype/asset_activity/asset_activity.json
+++ b/erpnext/assets/doctype/asset_activity/asset_activity.json
@@ -75,13 +75,14 @@
  "in_create": 1,
  "index_web_pages_for_search": 1,
  "links": [],
- "modified": "2023-08-01 11:09:52.584482",
+ "modified": "2023-09-29 15:56:17.608643",
  "modified_by": "Administrator",
  "module": "Assets",
  "name": "Asset Activity",
  "owner": "Administrator",
  "permissions": [
   {
+   "delete": 1,
    "email": 1,
    "read": 1,
    "report": 1,
@@ -89,6 +90,7 @@
    "share": 1
   },
   {
+   "delete": 1,
    "email": 1,
    "read": 1,
    "report": 1,
@@ -96,6 +98,7 @@
    "share": 1
   },
   {
+   "delete": 1,
    "email": 1,
    "read": 1,
    "report": 1,
diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.js b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.js
index 6d55d77..be78d9e 100644
--- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.js
+++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.js
@@ -16,9 +16,15 @@
 
 	refresh() {
 		this.show_general_ledger();
+
 		if ((this.frm.doc.stock_items && this.frm.doc.stock_items.length) || !this.frm.doc.target_is_fixed_asset) {
 			this.show_stock_ledger();
 		}
+
+		if (this.frm.doc.stock_items && !this.frm.doc.stock_items.length && this.frm.doc.target_asset && this.frm.doc.capitalization_method === "Choose a WIP composite asset") {
+			this.set_consumed_stock_items_tagged_to_wip_composite_asset(this.frm.doc.target_asset);
+			this.get_target_asset_details();
+		}
 	}
 
 	setup_queries() {
@@ -35,18 +41,9 @@
 		});
 
 		me.frm.set_query("target_asset", function() {
-			var filters = {};
-
-			if (me.frm.doc.target_item_code) {
-				filters['item_code'] = me.frm.doc.target_item_code;
-			}
-
-			filters['status'] = ["not in", ["Draft", "Scrapped", "Sold", "Capitalized", "Decapitalized"]];
-			filters['docstatus'] = 1;
-
 			return {
-				filters: filters
-			};
+				filters: {'is_composite_asset': 1, 'docstatus': 0 }
+			}
 		});
 
 		me.frm.set_query("asset", "asset_items", function() {
@@ -128,6 +125,39 @@
 		return this.get_target_item_details();
 	}
 
+	target_asset() {
+		if (this.frm.doc.target_asset && this.frm.doc.capitalization_method === "Choose a WIP composite asset") {
+			this.set_consumed_stock_items_tagged_to_wip_composite_asset(this.frm.doc.target_asset);
+			this.get_target_asset_details();
+		}
+	}
+
+	set_consumed_stock_items_tagged_to_wip_composite_asset(asset) {
+		var me = this;
+
+		if (asset) {
+			return me.frm.call({
+				method: "erpnext.assets.doctype.asset_capitalization.asset_capitalization.get_items_tagged_to_wip_composite_asset",
+				args: {
+					asset: asset,
+				},
+				callback: function (r) {
+					if (!r.exc && r.message) {
+						me.frm.clear_table("stock_items");
+
+						for (let item of r.message) {
+							me.frm.add_child("stock_items", item);
+						}
+
+						refresh_field("stock_items");
+
+						me.calculate_totals();
+					}
+				}
+			});
+		}
+	}
+
 	item_code(doc, cdt, cdn) {
 		var row = frappe.get_doc(cdt, cdn);
 		if (cdt === "Asset Capitalization Stock Item") {
@@ -242,6 +272,26 @@
 		}
 	}
 
+	get_target_asset_details() {
+		var me = this;
+
+		if (me.frm.doc.target_asset) {
+			return me.frm.call({
+				method: "erpnext.assets.doctype.asset_capitalization.asset_capitalization.get_target_asset_details",
+				child: me.frm.doc,
+				args: {
+					asset: me.frm.doc.target_asset,
+					company: me.frm.doc.company,
+				},
+				callback: function (r) {
+					if (!r.exc) {
+						me.frm.refresh_fields();
+					}
+				}
+			});
+		}
+	}
+
 	get_consumed_stock_item_details(row) {
 		var me = this;
 
diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.json b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.json
index 04b0c4e..9ddc442 100644
--- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.json
+++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.json
@@ -8,24 +8,25 @@
  "engine": "InnoDB",
  "field_order": [
   "title",
+  "company",
   "naming_series",
   "entry_type",
-  "target_item_code",
-  "target_asset",
   "target_item_name",
   "target_is_fixed_asset",
   "target_has_batch_no",
   "target_has_serial_no",
   "column_break_9",
-  "target_asset_name",
+  "capitalization_method",
+  "target_item_code",
   "target_asset_location",
+  "target_asset",
+  "target_asset_name",
   "target_warehouse",
   "target_qty",
   "target_stock_uom",
   "target_batch_no",
   "target_serial_no",
   "column_break_5",
-  "company",
   "finance_book",
   "posting_date",
   "posting_time",
@@ -57,12 +58,13 @@
    "label": "Title"
   },
   {
+   "depends_on": "eval:(doc.target_item_code && !doc.__islocal && doc.capitalization_method !== 'Choose a WIP composite asset') || ((doc.entry_type=='Capitalization' && doc.capitalization_method=='Create a new composite asset') || doc.entry_type=='Decapitalization')",
    "fieldname": "target_item_code",
    "fieldtype": "Link",
    "in_standard_filter": 1,
    "label": "Target Item Code",
-   "options": "Item",
-   "reqd": 1
+   "mandatory_depends_on": "eval:(doc.entry_type=='Capitalization' && doc.capitalization_method=='Create a new composite asset') || doc.entry_type=='Decapitalization'",
+   "options": "Item"
   },
   {
    "depends_on": "eval:doc.target_item_code && doc.target_item_name != doc.target_item_code",
@@ -86,16 +88,18 @@
    "fieldtype": "Column Break"
   },
   {
+   "depends_on": "eval:(doc.target_asset && !doc.__islocal) || (doc.entry_type=='Capitalization' && doc.capitalization_method=='Choose a WIP composite asset')",
    "fieldname": "target_asset",
    "fieldtype": "Link",
    "in_standard_filter": 1,
    "label": "Target Asset",
+   "mandatory_depends_on": "eval:doc.entry_type=='Capitalization' && doc.capitalization_method=='Choose a WIP composite asset'",
    "no_copy": 1,
    "options": "Asset",
-   "read_only": 1
+   "read_only_depends_on": "eval:(doc.entry_type=='Decapitalization') || (doc.entry_type=='Capitalization' && doc.capitalization_method=='Create a new composite asset')"
   },
   {
-   "depends_on": "eval:doc.entry_type=='Capitalization'",
+   "depends_on": "eval:(doc.target_asset_name && !doc.__islocal) || (doc.target_asset && doc.entry_type=='Capitalization' && doc.capitalization_method=='Choose a WIP composite asset')",
    "fetch_from": "target_asset.asset_name",
    "fieldname": "target_asset_name",
    "fieldtype": "Data",
@@ -186,12 +190,14 @@
   },
   {
    "default": "1",
+   "depends_on": "eval:doc.entry_type=='Decapitalization'",
    "fieldname": "target_qty",
    "fieldtype": "Float",
    "label": "Target Qty",
    "read_only_depends_on": "eval:doc.entry_type=='Capitalization'"
   },
   {
+   "depends_on": "eval:doc.entry_type=='Decapitalization'",
    "fetch_from": "target_item_code.stock_uom",
    "fieldname": "target_stock_uom",
    "fieldtype": "Link",
@@ -331,18 +337,26 @@
    "read_only": 1
   },
   {
-   "depends_on": "eval:doc.entry_type=='Capitalization'",
+   "depends_on": "eval:doc.entry_type=='Capitalization' && doc.capitalization_method=='Create a new composite asset'",
    "fieldname": "target_asset_location",
    "fieldtype": "Link",
    "label": "Target Asset Location",
-   "mandatory_depends_on": "eval:doc.entry_type=='Capitalization'",
+   "mandatory_depends_on": "eval:doc.entry_type=='Capitalization' && doc.capitalization_method=='Create a new composite asset'",
    "options": "Location"
+  },
+  {
+   "depends_on": "eval:doc.entry_type=='Capitalization'",
+   "fieldname": "capitalization_method",
+   "fieldtype": "Select",
+   "label": "Capitalization Method",
+   "mandatory_depends_on": "eval:doc.entry_type=='Capitalization'",
+   "options": "\nCreate a new composite asset\nChoose a WIP composite asset"
   }
  ],
  "index_web_pages_for_search": 1,
  "is_submittable": 1,
  "links": [],
- "modified": "2023-06-22 14:17:07.995120",
+ "modified": "2023-10-03 22:55:59.461456",
  "modified_by": "Administrator",
  "module": "Assets",
  "name": "Asset Capitalization",
diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py
index 662e4b9..0d6f6b4 100644
--- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py
+++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py
@@ -53,6 +53,7 @@
 		self.validate_posting_time()
 		self.set_missing_values(for_validate=True)
 		self.validate_target_item()
+		self.validate_target_asset()
 		self.validate_consumed_stock_item()
 		self.validate_consumed_asset_item()
 		self.validate_service_item()
@@ -67,12 +68,12 @@
 
 	def before_submit(self):
 		self.validate_source_mandatory()
-		if self.entry_type == "Capitalization":
-			self.create_target_asset()
+		self.create_target_asset()
 
 	def on_submit(self):
 		self.update_stock_ledger()
 		self.make_gl_entries()
+		self.update_target_asset()
 
 	def on_cancel(self):
 		self.ignore_linked_doctypes = (
@@ -94,6 +95,11 @@
 			if self.meta.has_field(k) and (not self.get(k) or k in force_fields):
 				self.set(k, v)
 
+		target_asset_details = get_target_asset_details(self.target_asset, self.company)
+		for k, v in target_asset_details.items():
+			if self.meta.has_field(k) and (not self.get(k) or k in force_fields):
+				self.set(k, v)
+
 		for d in self.stock_items:
 			args = self.as_dict()
 			args.update(d.as_dict())
@@ -155,6 +161,33 @@
 
 		self.validate_item(target_item)
 
+	def validate_target_asset(self):
+		if self.target_asset:
+			target_asset = self.get_asset_for_validation(self.target_asset)
+
+			if not target_asset.is_composite_asset:
+				frappe.throw(_("Target Asset {0} needs to be composite asset").format(target_asset.name))
+
+			if target_asset.item_code != self.target_item_code:
+				frappe.throw(
+					_("Asset {0} does not belong to Item {1}").format(self.target_asset, self.target_item_code)
+				)
+
+			if target_asset.status in ("Scrapped", "Sold", "Capitalized", "Decapitalized"):
+				frappe.throw(
+					_("Target Asset {0} cannot be {1}").format(target_asset.name, target_asset.status)
+				)
+
+			if target_asset.docstatus == 1:
+				frappe.throw(_("Target Asset {0} cannot be submitted").format(target_asset.name))
+			elif target_asset.docstatus == 2:
+				frappe.throw(_("Target Asset {0} cannot be cancelled").format(target_asset.name))
+
+			if target_asset.company != self.company:
+				frappe.throw(
+					_("Target Asset {0} does not belong to company {1}").format(target_asset.name, self.company)
+				)
+
 	def validate_consumed_stock_item(self):
 		for d in self.stock_items:
 			if d.item_code:
@@ -179,7 +212,23 @@
 					)
 
 				asset = self.get_asset_for_validation(d.asset)
-				self.validate_asset(asset)
+
+				if asset.status in ("Draft", "Scrapped", "Sold", "Capitalized", "Decapitalized"):
+					frappe.throw(
+						_("Row #{0}: Consumed Asset {1} cannot be {2}").format(d.idx, asset.name, asset.status)
+					)
+
+				if asset.docstatus == 0:
+					frappe.throw(_("Row #{0}: Consumed Asset {1} cannot be Draft").format(d.idx, asset.name))
+				elif asset.docstatus == 2:
+					frappe.throw(_("Row #{0}: Consumed Asset {1} cannot be cancelled").format(d.idx, asset.name))
+
+				if asset.company != self.company:
+					frappe.throw(
+						_("Row #{0}: Consumed Asset {1} does not belong to company {2}").format(
+							d.idx, asset.name, self.company
+						)
+					)
 
 	def validate_service_item(self):
 		for d in self.service_items:
@@ -214,21 +263,12 @@
 
 	def get_asset_for_validation(self, asset):
 		return frappe.db.get_value(
-			"Asset", asset, ["name", "item_code", "company", "status", "docstatus"], as_dict=1
+			"Asset",
+			asset,
+			["name", "item_code", "company", "status", "docstatus", "is_composite_asset"],
+			as_dict=1,
 		)
 
-	def validate_asset(self, asset):
-		if asset.status in ("Draft", "Scrapped", "Sold", "Capitalized", "Decapitalized"):
-			frappe.throw(_("Asset {0} is {1}").format(asset.name, asset.status))
-
-		if asset.docstatus == 0:
-			frappe.throw(_("Asset {0} is Draft").format(asset.name))
-		if asset.docstatus == 2:
-			frappe.throw(_("Asset {0} is cancelled").format(asset.name))
-
-		if asset.company != self.company:
-			frappe.throw(_("Asset {0} does not belong to company {1}").format(asset.name, self.company))
-
 	@frappe.whitelist()
 	def set_warehouse_details(self):
 		for d in self.get("stock_items"):
@@ -495,16 +535,25 @@
 				)
 
 	def create_target_asset(self):
+		if (
+			self.entry_type != "Capitalization"
+			or self.capitalization_method != "Create a new composite asset"
+		):
+			return
+
 		total_target_asset_value = flt(self.total_value, self.precision("total_value"))
+
 		asset_doc = frappe.new_doc("Asset")
 		asset_doc.company = self.company
 		asset_doc.item_code = self.target_item_code
-		asset_doc.is_existing_asset = 1
+		asset_doc.is_composite_asset = 1
 		asset_doc.location = self.target_asset_location
 		asset_doc.available_for_use_date = self.posting_date
 		asset_doc.purchase_date = self.posting_date
 		asset_doc.gross_purchase_amount = total_target_asset_value
 		asset_doc.purchase_receipt_amount = total_target_asset_value
+		asset_doc.purchase_receipt_amount = total_target_asset_value
+		asset_doc.capitalized_in = self.name
 		asset_doc.flags.ignore_validate = True
 		asset_doc.flags.asset_created_via_asset_capitalization = True
 		asset_doc.insert()
@@ -528,6 +577,28 @@
 			).format(get_link_to_form("Asset", asset_doc.name))
 		)
 
+	def update_target_asset(self):
+		if (
+			self.entry_type != "Capitalization"
+			or self.capitalization_method != "Choose a WIP composite asset"
+		):
+			return
+
+		total_target_asset_value = flt(self.total_value, self.precision("total_value"))
+
+		asset_doc = frappe.get_doc("Asset", self.target_asset)
+		asset_doc.gross_purchase_amount = total_target_asset_value
+		asset_doc.purchase_receipt_amount = total_target_asset_value
+		asset_doc.capitalized_in = self.name
+		asset_doc.flags.ignore_validate = True
+		asset_doc.save()
+
+		frappe.msgprint(
+			_(
+				"Asset {0} has been updated. Please set the depreciation details if any and submit it."
+			).format(get_link_to_form("Asset", asset_doc.name))
+		)
+
 	def restore_consumed_asset_items(self):
 		for item in self.asset_items:
 			asset = frappe.get_doc("Asset", item.asset)
@@ -613,6 +684,33 @@
 
 
 @frappe.whitelist()
+def get_target_asset_details(asset=None, company=None):
+	out = frappe._dict()
+
+	# Get Asset Details
+	asset_details = frappe._dict()
+	if asset:
+		asset_details = frappe.db.get_value("Asset", asset, ["asset_name", "item_code"], as_dict=1)
+		if not asset_details:
+			frappe.throw(_("Asset {0} does not exist").format(asset))
+
+		# Re-set item code from Asset
+		out.target_item_code = asset_details.item_code
+
+	# Set Asset Details
+	out.asset_name = asset_details.asset_name
+
+	if asset_details.item_code:
+		out.target_fixed_asset_account = get_asset_category_account(
+			"fixed_asset_account", item=asset_details.item_code, company=company
+		)
+	else:
+		out.target_fixed_asset_account = None
+
+	return out
+
+
+@frappe.whitelist()
 def get_consumed_stock_item_details(args):
 	if isinstance(args, str):
 		args = json.loads(args)
@@ -760,3 +858,30 @@
 	)
 
 	return out
+
+
+@frappe.whitelist()
+def get_items_tagged_to_wip_composite_asset(asset):
+	fields = [
+		"item_code",
+		"item_name",
+		"batch_no",
+		"serial_no",
+		"stock_qty",
+		"stock_uom",
+		"warehouse",
+		"cost_center",
+		"qty",
+		"valuation_rate",
+		"amount",
+	]
+
+	pi_items = frappe.get_all(
+		"Purchase Invoice Item", filters={"wip_composite_asset": asset}, fields=fields
+	)
+
+	pr_items = frappe.get_all(
+		"Purchase Receipt Item", filters={"wip_composite_asset": asset}, fields=fields
+	)
+
+	return pi_items + pr_items
diff --git a/erpnext/assets/doctype/asset_capitalization/test_asset_capitalization.py b/erpnext/assets/doctype/asset_capitalization/test_asset_capitalization.py
index 6e0a685..ac7c90d 100644
--- a/erpnext/assets/doctype/asset_capitalization/test_asset_capitalization.py
+++ b/erpnext/assets/doctype/asset_capitalization/test_asset_capitalization.py
@@ -58,6 +58,7 @@
 		# Create and submit Asset Captitalization
 		asset_capitalization = create_asset_capitalization(
 			entry_type="Capitalization",
+			capitalization_method="Create a new composite asset",
 			target_item_code="Macbook Pro",
 			target_asset_location="Test Location",
 			stock_qty=stock_qty,
@@ -147,6 +148,7 @@
 		# Create and submit Asset Captitalization
 		asset_capitalization = create_asset_capitalization(
 			entry_type="Capitalization",
+			capitalization_method="Create a new composite asset",
 			target_item_code="Macbook Pro",
 			target_asset_location="Test Location",
 			stock_qty=stock_qty,
@@ -211,6 +213,77 @@
 		self.assertFalse(get_actual_gle_dict(asset_capitalization.name))
 		self.assertFalse(get_actual_sle_dict(asset_capitalization.name))
 
+	def test_capitalization_with_wip_composite_asset(self):
+		company = "_Test Company with perpetual inventory"
+		set_depreciation_settings_in_company(company=company)
+
+		stock_rate = 1000
+		stock_qty = 2
+		stock_amount = 2000
+
+		total_amount = 2000
+
+		wip_composite_asset = create_asset(
+			asset_name="Asset Capitalization WIP Composite Asset",
+			is_composite_asset=1,
+			warehouse="Stores - TCP1",
+			company=company,
+		)
+
+		# Create and submit Asset Captitalization
+		asset_capitalization = create_asset_capitalization(
+			entry_type="Capitalization",
+			capitalization_method="Choose a WIP composite asset",
+			target_asset=wip_composite_asset.name,
+			target_asset_location="Test Location",
+			stock_qty=stock_qty,
+			stock_rate=stock_rate,
+			service_expense_account="Expenses Included In Asset Valuation - TCP1",
+			company=company,
+			submit=1,
+		)
+
+		# Test Asset Capitalization values
+		self.assertEqual(asset_capitalization.entry_type, "Capitalization")
+		self.assertEqual(asset_capitalization.capitalization_method, "Choose a WIP composite asset")
+		self.assertEqual(asset_capitalization.target_qty, 1)
+
+		self.assertEqual(asset_capitalization.stock_items[0].valuation_rate, stock_rate)
+		self.assertEqual(asset_capitalization.stock_items[0].amount, stock_amount)
+		self.assertEqual(asset_capitalization.stock_items_total, stock_amount)
+
+		self.assertEqual(asset_capitalization.total_value, total_amount)
+		self.assertEqual(asset_capitalization.target_incoming_rate, total_amount)
+
+		# Test Target Asset values
+		target_asset = frappe.get_doc("Asset", asset_capitalization.target_asset)
+		self.assertEqual(target_asset.gross_purchase_amount, total_amount)
+		self.assertEqual(target_asset.purchase_receipt_amount, total_amount)
+
+		# Test General Ledger Entries
+		expected_gle = {
+			"_Test Fixed Asset - TCP1": 2000,
+			"_Test Warehouse - TCP1": -2000,
+		}
+		actual_gle = get_actual_gle_dict(asset_capitalization.name)
+
+		self.assertEqual(actual_gle, expected_gle)
+
+		# Test Stock Ledger Entries
+		expected_sle = {
+			("Capitalization Source Stock Item", "_Test Warehouse - TCP1"): {
+				"actual_qty": -stock_qty,
+				"stock_value_difference": -stock_amount,
+			}
+		}
+		actual_sle = get_actual_sle_dict(asset_capitalization.name)
+		self.assertEqual(actual_sle, expected_sle)
+
+		# Cancel Asset Capitalization and make test entries and status are reversed
+		asset_capitalization.cancel()
+		self.assertFalse(get_actual_gle_dict(asset_capitalization.name))
+		self.assertFalse(get_actual_sle_dict(asset_capitalization.name))
+
 	def test_decapitalization_with_depreciation(self):
 		# Variables
 		purchase_date = "2020-01-01"
@@ -347,6 +420,7 @@
 	asset_capitalization.update(
 		{
 			"entry_type": args.entry_type or "Capitalization",
+			"capitalization_method": args.capitalization_method or None,
 			"company": company,
 			"posting_date": args.posting_date or now.strftime("%Y-%m-%d"),
 			"posting_time": args.posting_time or now.strftime("%H:%M:%S.%f"),
diff --git a/erpnext/assets/doctype/asset_finance_book/asset_finance_book.json b/erpnext/assets/doctype/asset_finance_book/asset_finance_book.json
index 4121302..2c27dc9 100644
--- a/erpnext/assets/doctype/asset_finance_book/asset_finance_book.json
+++ b/erpnext/assets/doctype/asset_finance_book/asset_finance_book.json
@@ -12,6 +12,7 @@
   "column_break_5",
   "frequency_of_depreciation",
   "depreciation_start_date",
+  "salvage_value_percentage",
   "expected_value_after_useful_life",
   "value_after_depreciation",
   "rate_of_depreciation"
@@ -91,12 +92,17 @@
    "fieldname": "daily_depreciation",
    "fieldtype": "Check",
    "label": "Daily Depreciation"
+  },
+  {
+   "fieldname": "salvage_value_percentage",
+   "fieldtype": "Percent",
+   "label": "Salvage Value Percentage"
   }
  ],
  "index_web_pages_for_search": 1,
  "istable": 1,
  "links": [],
- "modified": "2023-08-10 22:10:36.576199",
+ "modified": "2023-09-29 15:39:52.740594",
  "modified_by": "Administrator",
  "module": "Assets",
  "name": "Asset Finance Book",
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.json b/erpnext/buying/doctype/purchase_order/purchase_order.json
index 5b5cc2b..f74df66 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.json
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.json
@@ -477,6 +477,7 @@
    "depends_on": "eval:doc.is_subcontracted",
    "fieldname": "supplier_warehouse",
    "fieldtype": "Link",
+   "ignore_user_permissions": 1,
    "label": "Supplier Warehouse",
    "options": "Warehouse"
   },
@@ -1274,7 +1275,7 @@
  "idx": 105,
  "is_submittable": 1,
  "links": [],
- "modified": "2023-09-13 16:21:07.361700",
+ "modified": "2023-10-01 20:58:07.851037",
  "modified_by": "Administrator",
  "module": "Buying",
  "name": "Purchase Order",
diff --git a/erpnext/buying/doctype/purchase_order_item/purchase_order_item.json b/erpnext/buying/doctype/purchase_order_item/purchase_order_item.json
index f79b622..6b29984 100644
--- a/erpnext/buying/doctype/purchase_order_item/purchase_order_item.json
+++ b/erpnext/buying/doctype/purchase_order_item/purchase_order_item.json
@@ -180,7 +180,6 @@
    "oldfieldname": "description",
    "oldfieldtype": "Small Text",
    "print_width": "300px",
-   "reqd": 1,
    "width": "300px"
   },
   {
@@ -916,4 +915,4 @@
  "sort_order": "DESC",
  "states": [],
  "track_changes": 1
-}
\ No newline at end of file
+}
diff --git a/erpnext/buying/doctype/request_for_quotation_item/request_for_quotation_item.json b/erpnext/buying/doctype/request_for_quotation_item/request_for_quotation_item.json
index e07f462..82fcfa2 100644
--- a/erpnext/buying/doctype/request_for_quotation_item/request_for_quotation_item.json
+++ b/erpnext/buying/doctype/request_for_quotation_item/request_for_quotation_item.json
@@ -84,7 +84,6 @@
    "oldfieldname": "description",
    "oldfieldtype": "Small Text",
    "print_width": "300px",
-   "reqd": 1,
    "width": "300px"
   },
   {
@@ -270,4 +269,4 @@
  "sort_field": "modified",
  "sort_order": "DESC",
  "track_changes": 1
-}
\ No newline at end of file
+}
diff --git a/erpnext/buying/doctype/supplier/supplier.json b/erpnext/buying/doctype/supplier/supplier.json
index 19972ca..f37db5f 100644
--- a/erpnext/buying/doctype/supplier/supplier.json
+++ b/erpnext/buying/doctype/supplier/supplier.json
@@ -167,8 +167,7 @@
    "label": "Supplier Group",
    "oldfieldname": "supplier_type",
    "oldfieldtype": "Link",
-   "options": "Supplier Group",
-   "reqd": 1
+   "options": "Supplier Group"
   },
   {
    "default": "Company",
@@ -486,7 +485,7 @@
    "link_fieldname": "party"
   }
  ],
- "modified": "2023-09-21 12:24:20.398889",
+ "modified": "2023-09-25 12:48:21.869563",
  "modified_by": "Administrator",
  "module": "Buying",
  "name": "Supplier",
diff --git a/erpnext/buying/doctype/supplier/test_supplier.py b/erpnext/buying/doctype/supplier/test_supplier.py
index ee2ada3..350a25f 100644
--- a/erpnext/buying/doctype/supplier/test_supplier.py
+++ b/erpnext/buying/doctype/supplier/test_supplier.py
@@ -207,11 +207,14 @@
 			"doctype": "Supplier",
 			"supplier_name": args.supplier_name,
 			"default_currency": args.default_currency,
-			"supplier_group": args.supplier_group or "Services",
 			"supplier_type": args.supplier_type or "Company",
 			"tax_withholding_category": args.tax_withholding_category,
 		}
-	).insert()
+	)
+	if not args.without_supplier_group:
+		doc.supplier_group = args.supplier_group or "Services"
+
+	doc.insert()
 
 	return doc
 
diff --git a/erpnext/buying/doctype/supplier_quotation_item/supplier_quotation_item.json b/erpnext/buying/doctype/supplier_quotation_item/supplier_quotation_item.json
index 638cde0..8d491fb 100644
--- a/erpnext/buying/doctype/supplier_quotation_item/supplier_quotation_item.json
+++ b/erpnext/buying/doctype/supplier_quotation_item/supplier_quotation_item.json
@@ -126,7 +126,6 @@
    "oldfieldname": "description",
    "oldfieldtype": "Small Text",
    "print_width": "300px",
-   "reqd": 1,
    "width": "300px"
   },
   {
@@ -569,4 +568,4 @@
  "sort_field": "modified",
  "sort_order": "DESC",
  "track_changes": 1
-}
\ No newline at end of file
+}
diff --git a/erpnext/buying/report/supplier_quotation_comparison/supplier_quotation_comparison.py b/erpnext/buying/report/supplier_quotation_comparison/supplier_quotation_comparison.py
index a728290..01ff28d 100644
--- a/erpnext/buying/report/supplier_quotation_comparison/supplier_quotation_comparison.py
+++ b/erpnext/buying/report/supplier_quotation_comparison/supplier_quotation_comparison.py
@@ -35,8 +35,12 @@
 			sq_item.parent,
 			sq_item.item_code,
 			sq_item.qty,
+			sq.currency,
 			sq_item.stock_qty,
 			sq_item.amount,
+			sq_item.base_rate,
+			sq_item.base_amount,
+			sq.price_list_currency,
 			sq_item.uom,
 			sq_item.stock_uom,
 			sq_item.request_for_quotation,
@@ -105,7 +109,11 @@
 			"qty": data.get("qty"),
 			"price": flt(data.get("amount") * exchange_rate, float_precision),
 			"uom": data.get("uom"),
+			"price_list_currency": data.get("price_list_currency"),
+			"currency": data.get("currency"),
 			"stock_uom": data.get("stock_uom"),
+			"base_amount": flt(data.get("base_amount"), float_precision),
+			"base_rate": flt(data.get("base_rate"), float_precision),
 			"request_for_quotation": data.get("request_for_quotation"),
 			"valid_till": data.get("valid_till"),
 			"lead_time_days": data.get("lead_time_days"),
@@ -183,6 +191,8 @@
 
 
 def get_columns(filters):
+	currency = frappe.get_cached_value("Company", filters.get("company"), "default_currency")
+
 	group_by_columns = [
 		{
 			"fieldname": "supplier_name",
@@ -204,10 +214,17 @@
 		{"fieldname": "uom", "label": _("UOM"), "fieldtype": "Link", "options": "UOM", "width": 90},
 		{"fieldname": "qty", "label": _("Quantity"), "fieldtype": "Float", "width": 80},
 		{
+			"fieldname": "currency",
+			"label": _("Currency"),
+			"fieldtype": "Link",
+			"options": "Currency",
+			"width": 110,
+		},
+		{
 			"fieldname": "price",
 			"label": _("Price"),
 			"fieldtype": "Currency",
-			"options": "Company:company:default_currency",
+			"options": "currency",
 			"width": 110,
 		},
 		{
@@ -221,10 +238,24 @@
 			"fieldname": "price_per_unit",
 			"label": _("Price per Unit (Stock UOM)"),
 			"fieldtype": "Currency",
-			"options": "Company:company:default_currency",
+			"options": "currency",
 			"width": 120,
 		},
 		{
+			"fieldname": "base_amount",
+			"label": _("Price ({0})").format(currency),
+			"fieldtype": "Currency",
+			"options": "price_list_currency",
+			"width": 180,
+		},
+		{
+			"fieldname": "base_rate",
+			"label": _("Price Per Unit ({0})").format(currency),
+			"fieldtype": "Currency",
+			"options": "price_list_currency",
+			"width": 180,
+		},
+		{
 			"fieldname": "quotation",
 			"label": _("Supplier Quotation"),
 			"fieldtype": "Link",
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 6812940..e170044 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -13,6 +13,7 @@
 	add_days,
 	add_months,
 	cint,
+	comma_and,
 	flt,
 	fmt_money,
 	formatdate,
@@ -181,6 +182,17 @@
 		self.validate_party_account_currency()
 
 		if self.doctype in ["Purchase Invoice", "Sales Invoice"]:
+			if invalid_advances := [
+				x for x in self.advances if not x.reference_type or not x.reference_name
+			]:
+				frappe.throw(
+					_(
+						"Rows: {0} in {1} section are Invalid. Reference Name should point to a valid Payment Entry or Journal Entry."
+					).format(
+						frappe.bold(comma_and([x.idx for x in invalid_advances])), frappe.bold(_("Advance Payments"))
+					)
+				)
+
 			pos_check_field = "is_pos" if self.doctype == "Sales Invoice" else "is_paid"
 			if cint(self.allocate_advances_automatically) and not cint(self.get(pos_check_field)):
 				self.set_advances()
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index 9014662..418a56f 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -288,7 +288,9 @@
 			last_valuation_rate_in_sales_uom = last_valuation_rate * (item.conversion_factor or 1)
 
 			if flt(item.base_net_rate) < flt(last_valuation_rate_in_sales_uom):
-				throw_message(item.idx, item.item_name, last_valuation_rate_in_sales_uom, "valuation rate")
+				throw_message(
+					item.idx, item.item_name, last_valuation_rate_in_sales_uom, "valuation rate (Moving Average)"
+				)
 
 	def get_item_list(self):
 		il = []
diff --git a/erpnext/controllers/taxes_and_totals.py b/erpnext/controllers/taxes_and_totals.py
index 62d4c53..96284d6 100644
--- a/erpnext/controllers/taxes_and_totals.py
+++ b/erpnext/controllers/taxes_and_totals.py
@@ -25,6 +25,9 @@
 	def __init__(self, doc: Document):
 		self.doc = doc
 		frappe.flags.round_off_applicable_accounts = []
+		frappe.flags.round_row_wise_tax = frappe.db.get_single_value(
+			"Accounts Settings", "round_row_wise_tax"
+		)
 
 		self._items = self.filter_rows() if self.doc.doctype == "Quotation" else self.doc.get("items")
 
@@ -190,7 +193,9 @@
 
 				item.net_rate = item.rate
 
-				if not item.qty and self.doc.get("is_return"):
+				if (
+					not item.qty and self.doc.get("is_return") and self.doc.get("doctype") != "Purchase Receipt"
+				):
 					item.amount = flt(-1 * item.rate, item.precision("amount"))
 				elif not item.qty and self.doc.get("is_debit_note"):
 					item.amount = flt(item.rate, item.precision("amount"))
@@ -368,6 +373,8 @@
 			for i, tax in enumerate(self.doc.get("taxes")):
 				# tax_amount represents the amount of tax for the current step
 				current_tax_amount = self.get_current_tax_amount(item, tax, item_tax_map)
+				if frappe.flags.round_row_wise_tax:
+					current_tax_amount = flt(current_tax_amount, tax.precision("tax_amount"))
 
 				# Adjust divisional loss to the last item
 				if tax.charge_type == "Actual":
@@ -478,10 +485,19 @@
 		# store tax breakup for each item
 		key = item.item_code or item.item_name
 		item_wise_tax_amount = current_tax_amount * self.doc.conversion_rate
-		if tax.item_wise_tax_detail.get(key):
-			item_wise_tax_amount += tax.item_wise_tax_detail[key][1]
+		if frappe.flags.round_row_wise_tax:
+			item_wise_tax_amount = flt(item_wise_tax_amount, tax.precision("tax_amount"))
+			if tax.item_wise_tax_detail.get(key):
+				item_wise_tax_amount += flt(tax.item_wise_tax_detail[key][1], tax.precision("tax_amount"))
+			tax.item_wise_tax_detail[key] = [
+				tax_rate,
+				flt(item_wise_tax_amount, tax.precision("tax_amount")),
+			]
+		else:
+			if tax.item_wise_tax_detail.get(key):
+				item_wise_tax_amount += tax.item_wise_tax_detail[key][1]
 
-		tax.item_wise_tax_detail[key] = [tax_rate, flt(item_wise_tax_amount)]
+			tax.item_wise_tax_detail[key] = [tax_rate, flt(item_wise_tax_amount)]
 
 	def round_off_totals(self, tax):
 		if tax.account_head in frappe.flags.round_off_applicable_accounts:
diff --git a/erpnext/crm/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py
index 105c58d..e897ba4 100644
--- a/erpnext/crm/doctype/lead/lead.py
+++ b/erpnext/crm/doctype/lead/lead.py
@@ -379,7 +379,7 @@
 		}
 	)
 
-	set_address_details(out, lead, "Lead")
+	set_address_details(out, lead, "Lead", company=company)
 
 	taxes_and_charges = set_taxes(
 		None,
diff --git a/erpnext/crm/report/lead_details/lead_details.py b/erpnext/crm/report/lead_details/lead_details.py
index 7b8c43b..98dfbec 100644
--- a/erpnext/crm/report/lead_details/lead_details.py
+++ b/erpnext/crm/report/lead_details/lead_details.py
@@ -4,6 +4,7 @@
 
 import frappe
 from frappe import _
+from frappe.query_builder.functions import Concat_ws, Date
 
 
 def execute(filters=None):
@@ -69,53 +70,41 @@
 
 
 def get_data(filters):
-	return frappe.db.sql(
-		"""
-		SELECT
-			`tabLead`.name,
-			`tabLead`.lead_name,
-			`tabLead`.status,
-			`tabLead`.lead_owner,
-			`tabLead`.territory,
-			`tabLead`.source,
-			`tabLead`.email_id,
-			`tabLead`.mobile_no,
-			`tabLead`.phone,
-			`tabLead`.owner,
-			`tabLead`.company,
-			concat_ws(', ',
-				trim(',' from `tabAddress`.address_line1),
-				trim(',' from tabAddress.address_line2)
-			) AS address,
-			`tabAddress`.state,
-			`tabAddress`.pincode,
-			`tabAddress`.country
-		FROM
-			`tabLead` left join `tabDynamic Link` on (
-			`tabLead`.name = `tabDynamic Link`.link_name and
-			`tabDynamic Link`.parenttype = 'Address')
-			left join `tabAddress` on (
-			`tabAddress`.name=`tabDynamic Link`.parent)
-		WHERE
-			company = %(company)s
-			AND DATE(`tabLead`.creation) BETWEEN %(from_date)s AND %(to_date)s
-			{conditions}
-		ORDER BY
-			`tabLead`.creation asc """.format(
-			conditions=get_conditions(filters)
-		),
-		filters,
-		as_dict=1,
+	lead = frappe.qb.DocType("Lead")
+	address = frappe.qb.DocType("Address")
+	dynamic_link = frappe.qb.DocType("Dynamic Link")
+
+	query = (
+		frappe.qb.from_(lead)
+		.left_join(dynamic_link)
+		.on((lead.name == dynamic_link.link_name) & (dynamic_link.parenttype == "Address"))
+		.left_join(address)
+		.on(address.name == dynamic_link.parent)
+		.select(
+			lead.name,
+			lead.lead_name,
+			lead.status,
+			lead.lead_owner,
+			lead.territory,
+			lead.source,
+			lead.email_id,
+			lead.mobile_no,
+			lead.phone,
+			lead.owner,
+			lead.company,
+			(Concat_ws(", ", address.address_line1, address.address_line2)).as_("address"),
+			address.state,
+			address.pincode,
+			address.country,
+		)
+		.where(lead.company == filters.company)
+		.where(Date(lead.creation).between(filters.from_date, filters.to_date))
 	)
 
-
-def get_conditions(filters):
-	conditions = []
-
 	if filters.get("territory"):
-		conditions.append(" and `tabLead`.territory=%(territory)s")
+		query = query.where(lead.territory == filters.get("territory"))
 
 	if filters.get("status"):
-		conditions.append(" and `tabLead`.status=%(status)s")
+		query = query.where(lead.status == filters.get("status"))
 
-	return " ".join(conditions) if conditions else ""
+	return query.run(as_dict=1)
diff --git a/erpnext/e_commerce/shopping_cart/test_shopping_cart.py b/erpnext/e_commerce/shopping_cart/test_shopping_cart.py
index 951039d..8210f97 100644
--- a/erpnext/e_commerce/shopping_cart/test_shopping_cart.py
+++ b/erpnext/e_commerce/shopping_cart/test_shopping_cart.py
@@ -17,7 +17,6 @@
 	request_for_quotation,
 	update_cart,
 )
-from erpnext.tests.utils import create_test_contact_and_address
 
 
 class TestShoppingCart(unittest.TestCase):
@@ -28,7 +27,6 @@
 
 	def setUp(self):
 		frappe.set_user("Administrator")
-		create_test_contact_and_address()
 		self.enable_shopping_cart()
 		if not frappe.db.exists("Website Item", {"item_code": "_Test Item"}):
 			make_website_item(frappe.get_cached_doc("Item", "_Test Item"))
@@ -46,48 +44,57 @@
 		frappe.db.sql("delete from `tabTax Rule`")
 
 	def test_get_cart_new_user(self):
-		self.login_as_new_user()
-
+		self.login_as_customer(
+			"test_contact_two_customer@example.com", "_Test Contact 2 For _Test Customer"
+		)
+		create_address_and_contact(
+			address_title="_Test Address for Customer 2",
+			first_name="_Test Contact for Customer 2",
+			email="test_contact_two_customer@example.com",
+			customer="_Test Customer 2",
+		)
 		# test if lead is created and quotation with new lead is fetched
-		quotation = _get_cart_quotation()
+		customer = frappe.get_doc("Customer", "_Test Customer 2")
+		quotation = _get_cart_quotation(party=customer)
 		self.assertEqual(quotation.quotation_to, "Customer")
 		self.assertEqual(
 			quotation.contact_person,
-			frappe.db.get_value("Contact", dict(email_id="test_cart_user@example.com")),
+			frappe.db.get_value("Contact", dict(email_id="test_contact_two_customer@example.com")),
 		)
 		self.assertEqual(quotation.contact_email, frappe.session.user)
 
 		return quotation
 
-	def test_get_cart_customer(self):
-		def validate_quotation():
+	def test_get_cart_customer(self, customer="_Test Customer 2"):
+		def validate_quotation(customer_name):
 			# test if quotation with customer is fetched
-			quotation = _get_cart_quotation()
+			party = frappe.get_doc("Customer", customer_name)
+			quotation = _get_cart_quotation(party=party)
 			self.assertEqual(quotation.quotation_to, "Customer")
-			self.assertEqual(quotation.party_name, "_Test Customer")
+			self.assertEqual(quotation.party_name, customer_name)
 			self.assertEqual(quotation.contact_email, frappe.session.user)
 			return quotation
 
-		self.login_as_customer(
-			"test_contact_two_customer@example.com", "_Test Contact 2 For _Test Customer"
-		)
-		validate_quotation()
-
-		self.login_as_customer()
-		quotation = validate_quotation()
-
+		quotation = validate_quotation(customer)
 		return quotation
 
 	def test_add_to_cart(self):
-		self.login_as_customer()
-
+		self.login_as_customer(
+			"test_contact_two_customer@example.com", "_Test Contact 2 For _Test Customer"
+		)
+		create_address_and_contact(
+			address_title="_Test Address for Customer 2",
+			first_name="_Test Contact for Customer 2",
+			email="test_contact_two_customer@example.com",
+			customer="_Test Customer 2",
+		)
 		# clear existing quotations
 		self.clear_existing_quotations()
 
 		# add first item
 		update_cart("_Test Item", 1)
 
-		quotation = self.test_get_cart_customer()
+		quotation = self.test_get_cart_customer("_Test Customer 2")
 
 		self.assertEqual(quotation.get("items")[0].item_code, "_Test Item")
 		self.assertEqual(quotation.get("items")[0].qty, 1)
@@ -95,7 +102,7 @@
 
 		# add second item
 		update_cart("_Test Item 2", 1)
-		quotation = self.test_get_cart_customer()
+		quotation = self.test_get_cart_customer("_Test Customer 2")
 		self.assertEqual(quotation.get("items")[1].item_code, "_Test Item 2")
 		self.assertEqual(quotation.get("items")[1].qty, 1)
 		self.assertEqual(quotation.get("items")[1].amount, 20)
@@ -108,7 +115,7 @@
 
 		# update first item
 		update_cart("_Test Item", 5)
-		quotation = self.test_get_cart_customer()
+		quotation = self.test_get_cart_customer("_Test Customer 2")
 		self.assertEqual(quotation.get("items")[0].item_code, "_Test Item")
 		self.assertEqual(quotation.get("items")[0].qty, 5)
 		self.assertEqual(quotation.get("items")[0].amount, 50)
@@ -121,7 +128,7 @@
 
 		# remove first item
 		update_cart("_Test Item", 0)
-		quotation = self.test_get_cart_customer()
+		quotation = self.test_get_cart_customer("_Test Customer 2")
 
 		self.assertEqual(quotation.get("items")[0].item_code, "_Test Item 2")
 		self.assertEqual(quotation.get("items")[0].qty, 1)
@@ -132,7 +139,17 @@
 	@unittest.skip("Flaky in CI")
 	def test_tax_rule(self):
 		self.create_tax_rule()
-		self.login_as_customer()
+
+		self.login_as_customer(
+			"test_contact_two_customer@example.com", "_Test Contact 2 For _Test Customer"
+		)
+		create_address_and_contact(
+			address_title="_Test Address for Customer 2",
+			first_name="_Test Contact for Customer 2",
+			email="test_contact_two_customer@example.com",
+			customer="_Test Customer 2",
+		)
+
 		quotation = self.create_quotation()
 
 		from erpnext.accounts.party import set_taxes
@@ -320,7 +337,7 @@
 		if frappe.db.exists("User", email):
 			return
 
-		frappe.get_doc(
+		user = frappe.get_doc(
 			{
 				"doctype": "User",
 				"user_type": "Website User",
@@ -330,6 +347,40 @@
 			}
 		).insert(ignore_permissions=True)
 
+		user.add_roles("Customer")
+
+
+def create_address_and_contact(**kwargs):
+	if not frappe.db.get_value("Address", {"address_title": kwargs.get("address_title")}):
+		frappe.get_doc(
+			{
+				"doctype": "Address",
+				"address_title": kwargs.get("address_title"),
+				"address_type": kwargs.get("address_type") or "Office",
+				"address_line1": kwargs.get("address_line1") or "Station Road",
+				"city": kwargs.get("city") or "_Test City",
+				"state": kwargs.get("state") or "Test State",
+				"country": kwargs.get("country") or "India",
+				"links": [
+					{"link_doctype": "Customer", "link_name": kwargs.get("customer") or "_Test Customer"}
+				],
+			}
+		).insert()
+
+	if not frappe.db.get_value("Contact", {"first_name": kwargs.get("first_name")}):
+		contact = frappe.get_doc(
+			{
+				"doctype": "Contact",
+				"first_name": kwargs.get("first_name"),
+				"links": [
+					{"link_doctype": "Customer", "link_name": kwargs.get("customer") or "_Test Customer"}
+				],
+			}
+		)
+		contact.add_email(kwargs.get("email") or "test_contact_customer@example.com", is_primary=True)
+		contact.add_phone(kwargs.get("phone") or "+91 0000000000", is_primary_phone=True)
+		contact.insert()
+
 
 test_dependencies = [
 	"Sales Taxes and Charges Template",
diff --git a/erpnext/erpnext_integrations/doctype/gocardless_mandate/__init__.py b/erpnext/erpnext_integrations/doctype/gocardless_mandate/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/erpnext_integrations/doctype/gocardless_mandate/__init__.py
+++ /dev/null
diff --git a/erpnext/erpnext_integrations/doctype/gocardless_mandate/gocardless_mandate.js b/erpnext/erpnext_integrations/doctype/gocardless_mandate/gocardless_mandate.js
deleted file mode 100644
index 37f9f7b..0000000
--- a/erpnext/erpnext_integrations/doctype/gocardless_mandate/gocardless_mandate.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2018, Frappe Technologies and contributors
-// For license information, please see license.txt
-
-frappe.ui.form.on('GoCardless Mandate', {
-});
diff --git a/erpnext/erpnext_integrations/doctype/gocardless_mandate/gocardless_mandate.json b/erpnext/erpnext_integrations/doctype/gocardless_mandate/gocardless_mandate.json
deleted file mode 100644
index edf652c..0000000
--- a/erpnext/erpnext_integrations/doctype/gocardless_mandate/gocardless_mandate.json
+++ /dev/null
@@ -1,184 +0,0 @@
-{
- "allow_copy": 0,
- "allow_guest_to_view": 0,
- "allow_import": 0,
- "allow_rename": 0,
- "autoname": "field:mandate",
- "beta": 0,
- "creation": "2018-02-08 11:33:15.721919",
- "custom": 0,
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "",
- "editable_grid": 1,
- "engine": "InnoDB",
- "fields": [
-  {
-   "allow_bulk_edit": 0,
-   "allow_on_submit": 0,
-   "bold": 0,
-   "collapsible": 0,
-   "columns": 0,
-   "fieldname": "disabled",
-   "fieldtype": "Check",
-   "hidden": 0,
-   "ignore_user_permissions": 0,
-   "ignore_xss_filter": 0,
-   "in_filter": 0,
-   "in_global_search": 0,
-   "in_list_view": 0,
-   "in_standard_filter": 0,
-   "label": "Disabled",
-   "length": 0,
-   "no_copy": 0,
-   "permlevel": 0,
-   "precision": "",
-   "print_hide": 0,
-   "print_hide_if_no_value": 0,
-   "read_only": 0,
-   "remember_last_selected_value": 0,
-   "report_hide": 0,
-   "reqd": 0,
-   "search_index": 0,
-   "set_only_once": 0,
-   "unique": 0
-  },
-  {
-   "allow_bulk_edit": 0,
-   "allow_on_submit": 0,
-   "bold": 0,
-   "collapsible": 0,
-   "columns": 0,
-   "fieldname": "customer",
-   "fieldtype": "Link",
-   "hidden": 0,
-   "ignore_user_permissions": 0,
-   "ignore_xss_filter": 0,
-   "in_filter": 0,
-   "in_global_search": 0,
-   "in_list_view": 1,
-   "in_standard_filter": 0,
-   "label": "Customer",
-   "length": 0,
-   "no_copy": 0,
-   "options": "Customer",
-   "permlevel": 0,
-   "precision": "",
-   "print_hide": 0,
-   "print_hide_if_no_value": 0,
-   "read_only": 0,
-   "remember_last_selected_value": 0,
-   "report_hide": 0,
-   "reqd": 1,
-   "search_index": 0,
-   "set_only_once": 0,
-   "unique": 0
-  },
-  {
-   "allow_bulk_edit": 0,
-   "allow_on_submit": 0,
-   "bold": 0,
-   "collapsible": 0,
-   "columns": 0,
-   "fieldname": "mandate",
-   "fieldtype": "Data",
-   "hidden": 0,
-   "ignore_user_permissions": 0,
-   "ignore_xss_filter": 0,
-   "in_filter": 0,
-   "in_global_search": 0,
-   "in_list_view": 0,
-   "in_standard_filter": 0,
-   "label": "Mandate",
-   "length": 0,
-   "no_copy": 0,
-   "permlevel": 0,
-   "precision": "",
-   "print_hide": 0,
-   "print_hide_if_no_value": 0,
-   "read_only": 1,
-   "remember_last_selected_value": 0,
-   "report_hide": 0,
-   "reqd": 1,
-   "search_index": 0,
-   "set_only_once": 0,
-   "unique": 0
-  },
-  {
-   "allow_bulk_edit": 0,
-   "allow_on_submit": 0,
-   "bold": 0,
-   "collapsible": 0,
-   "columns": 0,
-   "fieldname": "gocardless_customer",
-   "fieldtype": "Data",
-   "hidden": 0,
-   "ignore_user_permissions": 0,
-   "ignore_xss_filter": 0,
-   "in_filter": 0,
-   "in_global_search": 0,
-   "in_list_view": 1,
-   "in_standard_filter": 0,
-   "label": "GoCardless Customer",
-   "length": 0,
-   "no_copy": 0,
-   "permlevel": 0,
-   "precision": "",
-   "print_hide": 0,
-   "print_hide_if_no_value": 0,
-   "read_only": 1,
-   "remember_last_selected_value": 0,
-   "report_hide": 0,
-   "reqd": 1,
-   "search_index": 0,
-   "set_only_once": 0,
-   "unique": 0
-  }
- ],
- "has_web_view": 0,
- "hide_heading": 0,
- "hide_toolbar": 0,
- "idx": 0,
- "image_view": 0,
- "in_create": 0,
- "is_submittable": 0,
- "issingle": 0,
- "istable": 0,
- "max_attachments": 0,
- "modified": "2018-02-11 12:28:03.183095",
- "modified_by": "Administrator",
- "module": "ERPNext Integrations",
- "name": "GoCardless Mandate",
- "name_case": "",
- "owner": "Administrator",
- "permissions": [
-  {
-   "amend": 0,
-   "apply_user_permissions": 0,
-   "cancel": 0,
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "export": 1,
-   "if_owner": 0,
-   "import": 0,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "System Manager",
-   "set_user_permissions": 0,
-   "share": 1,
-   "submit": 0,
-   "write": 1
-  }
- ],
- "quick_entry": 1,
- "read_only": 0,
- "read_only_onload": 0,
- "show_name_in_global_search": 0,
- "sort_field": "modified",
- "sort_order": "DESC",
- "track_changes": 1,
- "track_seen": 0
-}
diff --git a/erpnext/erpnext_integrations/doctype/gocardless_mandate/gocardless_mandate.py b/erpnext/erpnext_integrations/doctype/gocardless_mandate/gocardless_mandate.py
deleted file mode 100644
index bceb3ca..0000000
--- a/erpnext/erpnext_integrations/doctype/gocardless_mandate/gocardless_mandate.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright (c) 2018, Frappe Technologies and contributors
-# For license information, please see license.txt
-
-
-from frappe.model.document import Document
-
-
-class GoCardlessMandate(Document):
-	pass
diff --git a/erpnext/erpnext_integrations/doctype/gocardless_mandate/test_gocardless_mandate.py b/erpnext/erpnext_integrations/doctype/gocardless_mandate/test_gocardless_mandate.py
deleted file mode 100644
index 0c1952a..0000000
--- a/erpnext/erpnext_integrations/doctype/gocardless_mandate/test_gocardless_mandate.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright (c) 2018, Frappe Technologies and Contributors
-# See license.txt
-
-import unittest
-
-
-class TestGoCardlessMandate(unittest.TestCase):
-	pass
diff --git a/erpnext/erpnext_integrations/doctype/gocardless_settings/__init__.py b/erpnext/erpnext_integrations/doctype/gocardless_settings/__init__.py
deleted file mode 100644
index 65be599..0000000
--- a/erpnext/erpnext_integrations/doctype/gocardless_settings/__init__.py
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright (c) 2018, Frappe Technologies and contributors
-# For license information, please see license.txt
-
-
-import hashlib
-import hmac
-import json
-
-import frappe
-
-
-@frappe.whitelist(allow_guest=True)
-def webhooks():
-	r = frappe.request
-	if not r:
-		return
-
-	if not authenticate_signature(r):
-		raise frappe.AuthenticationError
-
-	gocardless_events = json.loads(r.get_data()) or []
-	for event in gocardless_events["events"]:
-		set_status(event)
-
-	return 200
-
-
-def set_status(event):
-	resource_type = event.get("resource_type", {})
-
-	if resource_type == "mandates":
-		set_mandate_status(event)
-
-
-def set_mandate_status(event):
-	mandates = []
-	if isinstance(event["links"], (list,)):
-		for link in event["links"]:
-			mandates.append(link["mandate"])
-	else:
-		mandates.append(event["links"]["mandate"])
-
-	if (
-		event["action"] == "pending_customer_approval"
-		or event["action"] == "pending_submission"
-		or event["action"] == "submitted"
-		or event["action"] == "active"
-	):
-		disabled = 0
-	else:
-		disabled = 1
-
-	for mandate in mandates:
-		frappe.db.set_value("GoCardless Mandate", mandate, "disabled", disabled)
-
-
-def authenticate_signature(r):
-	"""Returns True if the received signature matches the generated signature"""
-	received_signature = frappe.get_request_header("Webhook-Signature")
-
-	if not received_signature:
-		return False
-
-	for key in get_webhook_keys():
-		computed_signature = hmac.new(key.encode("utf-8"), r.get_data(), hashlib.sha256).hexdigest()
-		if hmac.compare_digest(str(received_signature), computed_signature):
-			return True
-
-	return False
-
-
-def get_webhook_keys():
-	def _get_webhook_keys():
-		webhook_keys = [
-			d.webhooks_secret
-			for d in frappe.get_all(
-				"GoCardless Settings",
-				fields=["webhooks_secret"],
-			)
-			if d.webhooks_secret
-		]
-
-		return webhook_keys
-
-	return frappe.cache().get_value("gocardless_webhooks_secret", _get_webhook_keys)
-
-
-def clear_cache():
-	frappe.cache().delete_value("gocardless_webhooks_secret")
diff --git a/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.js b/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.js
deleted file mode 100644
index 2411297..0000000
--- a/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (c) 2018, Frappe Technologies and contributors
-// For license information, please see license.txt
-
-frappe.ui.form.on('GoCardless Settings', {
-	refresh: function(frm) {
-		erpnext.utils.check_payments_app();
-	}
-});
diff --git a/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.json b/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.json
deleted file mode 100644
index cca3653..0000000
--- a/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.json
+++ /dev/null
@@ -1,211 +0,0 @@
-{
- "allow_copy": 0,
- "allow_guest_to_view": 0,
- "allow_import": 0,
- "allow_rename": 0,
- "autoname": "field:gateway_name",
- "beta": 0,
- "creation": "2018-02-06 16:11:10.028249",
- "custom": 0,
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "",
- "editable_grid": 1,
- "engine": "InnoDB",
- "fields": [
-  {
-   "allow_bulk_edit": 0,
-   "allow_on_submit": 0,
-   "bold": 0,
-   "collapsible": 0,
-   "columns": 0,
-   "fieldname": "gateway_name",
-   "fieldtype": "Data",
-   "hidden": 0,
-   "ignore_user_permissions": 0,
-   "ignore_xss_filter": 0,
-   "in_filter": 0,
-   "in_global_search": 0,
-   "in_list_view": 1,
-   "in_standard_filter": 0,
-   "label": "Payment Gateway Name",
-   "length": 0,
-   "no_copy": 0,
-   "permlevel": 0,
-   "precision": "",
-   "print_hide": 0,
-   "print_hide_if_no_value": 0,
-   "read_only": 0,
-   "remember_last_selected_value": 0,
-   "report_hide": 0,
-   "reqd": 1,
-   "search_index": 0,
-   "set_only_once": 0,
-   "unique": 0
-  },
-  {
-   "allow_bulk_edit": 0,
-   "allow_on_submit": 0,
-   "bold": 0,
-   "collapsible": 0,
-   "columns": 0,
-   "fieldname": "section_break_2",
-   "fieldtype": "Section Break",
-   "hidden": 0,
-   "ignore_user_permissions": 0,
-   "ignore_xss_filter": 0,
-   "in_filter": 0,
-   "in_global_search": 0,
-   "in_list_view": 0,
-   "in_standard_filter": 0,
-   "length": 0,
-   "no_copy": 0,
-   "permlevel": 0,
-   "precision": "",
-   "print_hide": 0,
-   "print_hide_if_no_value": 0,
-   "read_only": 0,
-   "remember_last_selected_value": 0,
-   "report_hide": 0,
-   "reqd": 0,
-   "search_index": 0,
-   "set_only_once": 0,
-   "unique": 0
-  },
-  {
-   "allow_bulk_edit": 0,
-   "allow_on_submit": 0,
-   "bold": 0,
-   "collapsible": 0,
-   "columns": 0,
-   "fieldname": "access_token",
-   "fieldtype": "Data",
-   "hidden": 0,
-   "ignore_user_permissions": 0,
-   "ignore_xss_filter": 0,
-   "in_filter": 0,
-   "in_global_search": 0,
-   "in_list_view": 1,
-   "in_standard_filter": 0,
-   "label": "Access Token",
-   "length": 0,
-   "no_copy": 0,
-   "permlevel": 0,
-   "precision": "",
-   "print_hide": 0,
-   "print_hide_if_no_value": 0,
-   "read_only": 0,
-   "remember_last_selected_value": 0,
-   "report_hide": 0,
-   "reqd": 1,
-   "search_index": 0,
-   "set_only_once": 0,
-   "unique": 0
-  },
-  {
-   "allow_bulk_edit": 0,
-   "allow_on_submit": 0,
-   "bold": 0,
-   "collapsible": 0,
-   "columns": 0,
-   "fieldname": "webhooks_secret",
-   "fieldtype": "Data",
-   "hidden": 0,
-   "ignore_user_permissions": 0,
-   "ignore_xss_filter": 0,
-   "in_filter": 0,
-   "in_global_search": 0,
-   "in_list_view": 0,
-   "in_standard_filter": 0,
-   "label": "Webhooks Secret",
-   "length": 0,
-   "no_copy": 0,
-   "permlevel": 0,
-   "precision": "",
-   "print_hide": 0,
-   "print_hide_if_no_value": 0,
-   "read_only": 0,
-   "remember_last_selected_value": 0,
-   "report_hide": 0,
-   "reqd": 0,
-   "search_index": 0,
-   "set_only_once": 0,
-   "unique": 0
-  },
-  {
-   "allow_bulk_edit": 0,
-   "allow_on_submit": 0,
-   "bold": 0,
-   "collapsible": 0,
-   "columns": 0,
-   "fieldname": "use_sandbox",
-   "fieldtype": "Check",
-   "hidden": 0,
-   "ignore_user_permissions": 0,
-   "ignore_xss_filter": 0,
-   "in_filter": 0,
-   "in_global_search": 0,
-   "in_list_view": 0,
-   "in_standard_filter": 0,
-   "label": "Use Sandbox",
-   "length": 0,
-   "no_copy": 0,
-   "permlevel": 0,
-   "precision": "",
-   "print_hide": 0,
-   "print_hide_if_no_value": 0,
-   "read_only": 0,
-   "remember_last_selected_value": 0,
-   "report_hide": 0,
-   "reqd": 0,
-   "search_index": 0,
-   "set_only_once": 0,
-   "unique": 0
-  }
- ],
- "has_web_view": 0,
- "hide_heading": 0,
- "hide_toolbar": 0,
- "idx": 0,
- "image_view": 0,
- "in_create": 0,
- "is_submittable": 0,
- "issingle": 0,
- "istable": 0,
- "max_attachments": 0,
- "modified": "2022-02-12 14:18:47.209114",
- "modified_by": "Administrator",
- "module": "ERPNext Integrations",
- "name": "GoCardless Settings",
- "name_case": "",
- "owner": "Administrator",
- "permissions": [
-  {
-   "amend": 0,
-   "apply_user_permissions": 0,
-   "cancel": 0,
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "export": 1,
-   "if_owner": 0,
-   "import": 0,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "System Manager",
-   "set_user_permissions": 0,
-   "share": 1,
-   "submit": 0,
-   "write": 1
-  }
- ],
- "read_only": 0,
- "read_only_onload": 0,
- "show_name_in_global_search": 0,
- "sort_field": "modified",
- "sort_order": "DESC",
- "track_changes": 1,
- "track_seen": 0
-}
diff --git a/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.py b/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.py
deleted file mode 100644
index 4a29a6a..0000000
--- a/erpnext/erpnext_integrations/doctype/gocardless_settings/gocardless_settings.py
+++ /dev/null
@@ -1,220 +0,0 @@
-# Copyright (c) 2018, Frappe Technologies and contributors
-# For license information, please see license.txt
-
-
-from urllib.parse import urlencode
-
-import frappe
-import gocardless_pro
-from frappe import _
-from frappe.integrations.utils import create_request_log
-from frappe.model.document import Document
-from frappe.utils import call_hook_method, cint, flt, get_url
-
-from erpnext.utilities import payment_app_import_guard
-
-
-class GoCardlessSettings(Document):
-	supported_currencies = ["EUR", "DKK", "GBP", "SEK", "AUD", "NZD", "CAD", "USD"]
-
-	def validate(self):
-		self.initialize_client()
-
-	def initialize_client(self):
-		self.environment = self.get_environment()
-		try:
-			self.client = gocardless_pro.Client(
-				access_token=self.access_token, environment=self.environment
-			)
-			return self.client
-		except Exception as e:
-			frappe.throw(e)
-
-	def on_update(self):
-		with payment_app_import_guard():
-			from payments.utils import create_payment_gateway
-
-		create_payment_gateway(
-			"GoCardless-" + self.gateway_name, settings="GoCardLess Settings", controller=self.gateway_name
-		)
-		call_hook_method("payment_gateway_enabled", gateway="GoCardless-" + self.gateway_name)
-
-	def on_payment_request_submission(self, data):
-		if data.reference_doctype != "Fees":
-			customer_data = frappe.db.get_value(
-				data.reference_doctype, data.reference_name, ["company", "customer_name"], as_dict=1
-			)
-
-		data = {
-			"amount": flt(data.grand_total, data.precision("grand_total")),
-			"title": customer_data.company.encode("utf-8"),
-			"description": data.subject.encode("utf-8"),
-			"reference_doctype": data.doctype,
-			"reference_docname": data.name,
-			"payer_email": data.email_to or frappe.session.user,
-			"payer_name": customer_data.customer_name,
-			"order_id": data.name,
-			"currency": data.currency,
-		}
-
-		valid_mandate = self.check_mandate_validity(data)
-		if valid_mandate is not None:
-			data.update(valid_mandate)
-
-			self.create_payment_request(data)
-			return False
-		else:
-			return True
-
-	def check_mandate_validity(self, data):
-
-		if frappe.db.exists("GoCardless Mandate", dict(customer=data.get("payer_name"), disabled=0)):
-			registered_mandate = frappe.db.get_value(
-				"GoCardless Mandate", dict(customer=data.get("payer_name"), disabled=0), "mandate"
-			)
-			self.initialize_client()
-			mandate = self.client.mandates.get(registered_mandate)
-
-			if (
-				mandate.status == "pending_customer_approval"
-				or mandate.status == "pending_submission"
-				or mandate.status == "submitted"
-				or mandate.status == "active"
-			):
-				return {"mandate": registered_mandate}
-			else:
-				return None
-		else:
-			return None
-
-	def get_environment(self):
-		if self.use_sandbox:
-			return "sandbox"
-		else:
-			return "live"
-
-	def validate_transaction_currency(self, currency):
-		if currency not in self.supported_currencies:
-			frappe.throw(
-				_(
-					"Please select another payment method. Go Cardless does not support transactions in currency '{0}'"
-				).format(currency)
-			)
-
-	def get_payment_url(self, **kwargs):
-		return get_url("./integrations/gocardless_checkout?{0}".format(urlencode(kwargs)))
-
-	def create_payment_request(self, data):
-		self.data = frappe._dict(data)
-
-		try:
-			self.integration_request = create_request_log(self.data, "Host", "GoCardless")
-			return self.create_charge_on_gocardless()
-
-		except Exception:
-			frappe.log_error("Gocardless payment reqeust failed")
-			return {
-				"redirect_to": frappe.redirect_to_message(
-					_("Server Error"),
-					_(
-						"There seems to be an issue with the server's GoCardless configuration. Don't worry, in case of failure, the amount will get refunded to your account."
-					),
-				),
-				"status": 401,
-			}
-
-	def create_charge_on_gocardless(self):
-		redirect_to = self.data.get("redirect_to") or None
-		redirect_message = self.data.get("redirect_message") or None
-
-		reference_doc = frappe.get_doc(
-			self.data.get("reference_doctype"), self.data.get("reference_docname")
-		)
-		self.initialize_client()
-
-		try:
-			payment = self.client.payments.create(
-				params={
-					"amount": cint(reference_doc.grand_total * 100),
-					"currency": reference_doc.currency,
-					"links": {"mandate": self.data.get("mandate")},
-					"metadata": {
-						"reference_doctype": reference_doc.doctype,
-						"reference_document": reference_doc.name,
-					},
-				},
-				headers={
-					"Idempotency-Key": self.data.get("reference_docname"),
-				},
-			)
-
-			if (
-				payment.status == "pending_submission"
-				or payment.status == "pending_customer_approval"
-				or payment.status == "submitted"
-			):
-				self.integration_request.db_set("status", "Authorized", update_modified=False)
-				self.flags.status_changed_to = "Completed"
-				self.integration_request.db_set("output", payment.status, update_modified=False)
-
-			elif payment.status == "confirmed" or payment.status == "paid_out":
-				self.integration_request.db_set("status", "Completed", update_modified=False)
-				self.flags.status_changed_to = "Completed"
-				self.integration_request.db_set("output", payment.status, update_modified=False)
-
-			elif (
-				payment.status == "cancelled"
-				or payment.status == "customer_approval_denied"
-				or payment.status == "charged_back"
-			):
-				self.integration_request.db_set("status", "Cancelled", update_modified=False)
-				frappe.log_error("Gocardless payment cancelled")
-				self.integration_request.db_set("error", payment.status, update_modified=False)
-			else:
-				self.integration_request.db_set("status", "Failed", update_modified=False)
-				frappe.log_error("Gocardless payment failed")
-				self.integration_request.db_set("error", payment.status, update_modified=False)
-
-		except Exception as e:
-			frappe.log_error("GoCardless Payment Error")
-
-		if self.flags.status_changed_to == "Completed":
-			status = "Completed"
-			if "reference_doctype" in self.data and "reference_docname" in self.data:
-				custom_redirect_to = None
-				try:
-					custom_redirect_to = frappe.get_doc(
-						self.data.get("reference_doctype"), self.data.get("reference_docname")
-					).run_method("on_payment_authorized", self.flags.status_changed_to)
-				except Exception:
-					frappe.log_error("Gocardless redirect failed")
-
-				if custom_redirect_to:
-					redirect_to = custom_redirect_to
-
-			redirect_url = redirect_to
-		else:
-			status = "Error"
-			redirect_url = "payment-failed"
-
-			if redirect_message:
-				redirect_url += "&" + urlencode({"redirect_message": redirect_message})
-
-			redirect_url = get_url(redirect_url)
-
-		return {"redirect_to": redirect_url, "status": status}
-
-
-def get_gateway_controller(doc):
-	payment_request = frappe.get_doc("Payment Request", doc)
-	gateway_controller = frappe.db.get_value(
-		"Payment Gateway", payment_request.payment_gateway, "gateway_controller"
-	)
-	return gateway_controller
-
-
-def gocardless_initialization(doc):
-	gateway_controller = get_gateway_controller(doc)
-	settings = frappe.get_doc("GoCardless Settings", gateway_controller)
-	client = settings.initialize_client()
-	return client
diff --git a/erpnext/erpnext_integrations/doctype/gocardless_settings/test_gocardless_settings.py b/erpnext/erpnext_integrations/doctype/gocardless_settings/test_gocardless_settings.py
deleted file mode 100644
index 379afe5..0000000
--- a/erpnext/erpnext_integrations/doctype/gocardless_settings/test_gocardless_settings.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright (c) 2018, Frappe Technologies and Contributors
-# See license.txt
-
-import unittest
-
-
-class TestGoCardlessSettings(unittest.TestCase):
-	pass
diff --git a/erpnext/erpnext_integrations/doctype/mpesa_settings/__init__.py b/erpnext/erpnext_integrations/doctype/mpesa_settings/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/erpnext_integrations/doctype/mpesa_settings/__init__.py
+++ /dev/null
diff --git a/erpnext/erpnext_integrations/doctype/mpesa_settings/account_balance.html b/erpnext/erpnext_integrations/doctype/mpesa_settings/account_balance.html
deleted file mode 100644
index b74a718..0000000
--- a/erpnext/erpnext_integrations/doctype/mpesa_settings/account_balance.html
+++ /dev/null
@@ -1,28 +0,0 @@
-
-{% if not jQuery.isEmptyObject(data) %}
-<h5 style="margin-top: 20px;"> {{ __("Balance Details") }} </h5>
-<table class="table table-bordered small">
-	<thead>
-		<tr>
-			<th style="width: 20%">{{ __("Account Type") }}</th>
-			<th style="width: 20%" class="text-right">{{ __("Current Balance") }}</th>
-			<th style="width: 20%" class="text-right">{{ __("Available Balance") }}</th>
-			<th style="width: 20%" class="text-right">{{ __("Reserved Balance") }}</th>
-			<th style="width: 20%" class="text-right">{{ __("Uncleared Balance") }}</th>
-		</tr>
-	</thead>
-	<tbody>
-		{% for(const [key, value] of Object.entries(data)) { %}
-			<tr>
-				<td> {%= key %} </td>
-				<td class="text-right"> {%= value["current_balance"] %} </td>
-				<td class="text-right"> {%= value["available_balance"] %} </td>
-				<td class="text-right"> {%= value["reserved_balance"] %} </td>
-				<td class="text-right"> {%= value["uncleared_balance"] %} </td>
-			</tr>
-		{% } %}
-	</tbody>
-</table>
-{% else %}
-<p style="margin-top: 30px;"> Account Balance Information Not Available. </p>
-{% endif %}
diff --git a/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_connector.py b/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_connector.py
deleted file mode 100644
index a577e7f..0000000
--- a/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_connector.py
+++ /dev/null
@@ -1,149 +0,0 @@
-import base64
-import datetime
-
-import requests
-from requests.auth import HTTPBasicAuth
-
-
-class MpesaConnector:
-	def __init__(
-		self,
-		env="sandbox",
-		app_key=None,
-		app_secret=None,
-		sandbox_url="https://sandbox.safaricom.co.ke",
-		live_url="https://api.safaricom.co.ke",
-	):
-		"""Setup configuration for Mpesa connector and generate new access token."""
-		self.env = env
-		self.app_key = app_key
-		self.app_secret = app_secret
-		if env == "sandbox":
-			self.base_url = sandbox_url
-		else:
-			self.base_url = live_url
-		self.authenticate()
-
-	def authenticate(self):
-		"""
-		This method is used to fetch the access token required by Mpesa.
-
-		Returns:
-		        access_token (str): This token is to be used with the Bearer header for further API calls to Mpesa.
-		"""
-		authenticate_uri = "/oauth/v1/generate?grant_type=client_credentials"
-		authenticate_url = "{0}{1}".format(self.base_url, authenticate_uri)
-		r = requests.get(authenticate_url, auth=HTTPBasicAuth(self.app_key, self.app_secret))
-		self.authentication_token = r.json()["access_token"]
-		return r.json()["access_token"]
-
-	def get_balance(
-		self,
-		initiator=None,
-		security_credential=None,
-		party_a=None,
-		identifier_type=None,
-		remarks=None,
-		queue_timeout_url=None,
-		result_url=None,
-	):
-		"""
-		This method uses Mpesa's Account Balance API to to enquire the balance on a M-Pesa BuyGoods (Till Number).
-
-		Args:
-		        initiator (str): Username used to authenticate the transaction.
-		        security_credential (str): Generate from developer portal.
-		        command_id (str): AccountBalance.
-		        party_a (int): Till number being queried.
-		        identifier_type (int): Type of organization receiving the transaction. (MSISDN/Till Number/Organization short code)
-		        remarks (str): Comments that are sent along with the transaction(maximum 100 characters).
-		        queue_timeout_url (str): The url that handles information of timed out transactions.
-		        result_url (str): The url that receives results from M-Pesa api call.
-
-		Returns:
-		        OriginatorConverstionID (str): The unique request ID for tracking a transaction.
-		        ConversationID (str): The unique request ID returned by mpesa for each request made
-		        ResponseDescription (str): Response Description message
-		"""
-
-		payload = {
-			"Initiator": initiator,
-			"SecurityCredential": security_credential,
-			"CommandID": "AccountBalance",
-			"PartyA": party_a,
-			"IdentifierType": identifier_type,
-			"Remarks": remarks,
-			"QueueTimeOutURL": queue_timeout_url,
-			"ResultURL": result_url,
-		}
-		headers = {
-			"Authorization": "Bearer {0}".format(self.authentication_token),
-			"Content-Type": "application/json",
-		}
-		saf_url = "{0}{1}".format(self.base_url, "/mpesa/accountbalance/v1/query")
-		r = requests.post(saf_url, headers=headers, json=payload)
-		return r.json()
-
-	def stk_push(
-		self,
-		business_shortcode=None,
-		passcode=None,
-		amount=None,
-		callback_url=None,
-		reference_code=None,
-		phone_number=None,
-		description=None,
-	):
-		"""
-		This method uses Mpesa's Express API to initiate online payment on behalf of a customer.
-
-		Args:
-		        business_shortcode (int): The short code of the organization.
-		        passcode (str): Get from developer portal
-		        amount (int): The amount being transacted
-		        callback_url (str): A CallBack URL is a valid secure URL that is used to receive notifications from M-Pesa API.
-		        reference_code(str): Account Reference: This is an Alpha-Numeric parameter that is defined by your system as an Identifier of the transaction for CustomerPayBillOnline transaction type.
-		        phone_number(int): The Mobile Number to receive the STK Pin Prompt.
-		        description(str): This is any additional information/comment that can be sent along with the request from your system. MAX 13 characters
-
-		Success Response:
-		        CustomerMessage(str): Messages that customers can understand.
-		        CheckoutRequestID(str): This is a global unique identifier of the processed checkout transaction request.
-		        ResponseDescription(str): Describes Success or failure
-		        MerchantRequestID(str): This is a global unique Identifier for any submitted payment request.
-		        ResponseCode(int): 0 means success all others are error codes. e.g.404.001.03
-
-		Error Reponse:
-		        requestId(str): This is a unique requestID for the payment request
-		        errorCode(str): This is a predefined code that indicates the reason for request failure.
-		        errorMessage(str): This is a predefined code that indicates the reason for request failure.
-		"""
-
-		time = (
-			str(datetime.datetime.now()).split(".")[0].replace("-", "").replace(" ", "").replace(":", "")
-		)
-		password = "{0}{1}{2}".format(str(business_shortcode), str(passcode), time)
-		encoded = base64.b64encode(bytes(password, encoding="utf8"))
-		payload = {
-			"BusinessShortCode": business_shortcode,
-			"Password": encoded.decode("utf-8"),
-			"Timestamp": time,
-			"Amount": amount,
-			"PartyA": int(phone_number),
-			"PartyB": reference_code,
-			"PhoneNumber": int(phone_number),
-			"CallBackURL": callback_url,
-			"AccountReference": reference_code,
-			"TransactionDesc": description,
-			"TransactionType": "CustomerPayBillOnline"
-			if self.env == "sandbox"
-			else "CustomerBuyGoodsOnline",
-		}
-		headers = {
-			"Authorization": "Bearer {0}".format(self.authentication_token),
-			"Content-Type": "application/json",
-		}
-
-		saf_url = "{0}{1}".format(self.base_url, "/mpesa/stkpush/v1/processrequest")
-		r = requests.post(saf_url, headers=headers, json=payload)
-		return r.json()
diff --git a/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_custom_fields.py b/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_custom_fields.py
deleted file mode 100644
index c92edc5..0000000
--- a/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_custom_fields.py
+++ /dev/null
@@ -1,56 +0,0 @@
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-
-
-def create_custom_pos_fields():
-	"""Create custom fields corresponding to POS Settings and POS Invoice."""
-	pos_field = {
-		"POS Invoice": [
-			{
-				"fieldname": "request_for_payment",
-				"label": "Request for Payment",
-				"fieldtype": "Button",
-				"hidden": 1,
-				"insert_after": "contact_email",
-			},
-			{
-				"fieldname": "mpesa_receipt_number",
-				"label": "Mpesa Receipt Number",
-				"fieldtype": "Data",
-				"read_only": 1,
-				"insert_after": "company",
-			},
-		]
-	}
-	if not frappe.get_meta("POS Invoice").has_field("request_for_payment"):
-		create_custom_fields(pos_field)
-
-	record_dict = [
-		{
-			"doctype": "POS Field",
-			"fieldname": "contact_mobile",
-			"label": "Mobile No",
-			"fieldtype": "Data",
-			"options": "Phone",
-			"parenttype": "POS Settings",
-			"parent": "POS Settings",
-			"parentfield": "invoice_fields",
-		},
-		{
-			"doctype": "POS Field",
-			"fieldname": "request_for_payment",
-			"label": "Request for Payment",
-			"fieldtype": "Button",
-			"parenttype": "POS Settings",
-			"parent": "POS Settings",
-			"parentfield": "invoice_fields",
-		},
-	]
-	create_pos_settings(record_dict)
-
-
-def create_pos_settings(record_dict):
-	for record in record_dict:
-		if frappe.db.exists("POS Field", {"fieldname": record.get("fieldname")}):
-			continue
-		frappe.get_doc(record).insert()
diff --git a/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.js b/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.js
deleted file mode 100644
index 447d720..0000000
--- a/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors
-// For license information, please see license.txt
-
-frappe.ui.form.on('Mpesa Settings', {
-	onload_post_render: function(frm) {
-		frm.events.setup_account_balance_html(frm);
-	},
-
-	refresh: function(frm) {
-		erpnext.utils.check_payments_app();
-
-		frappe.realtime.on("refresh_mpesa_dashboard", function(){
-			frm.reload_doc();
-			frm.events.setup_account_balance_html(frm);
-		});
-	},
-
-	get_account_balance: function(frm) {
-		if (!frm.doc.initiator_name && !frm.doc.security_credential) {
-			frappe.throw(__("Please set the initiator name and the security credential"));
-		}
-		frappe.call({
-			method: "get_account_balance_info",
-			doc: frm.doc
-		});
-	},
-
-	setup_account_balance_html: function(frm) {
-		if (!frm.doc.account_balance) return;
-		$("div").remove(".form-dashboard-section.custom");
-		frm.dashboard.add_section(
-			frappe.render_template('account_balance', {
-				data: JSON.parse(frm.doc.account_balance)
-			})
-		);
-		frm.dashboard.show();
-	}
-
-});
diff --git a/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.json b/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.json
deleted file mode 100644
index 8f3b427..0000000
--- a/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.json
+++ /dev/null
@@ -1,152 +0,0 @@
-{
- "actions": [],
- "autoname": "field:payment_gateway_name",
- "creation": "2020-09-10 13:21:27.398088",
- "doctype": "DocType",
- "editable_grid": 1,
- "engine": "InnoDB",
- "field_order": [
-  "payment_gateway_name",
-  "consumer_key",
-  "consumer_secret",
-  "initiator_name",
-  "till_number",
-  "transaction_limit",
-  "sandbox",
-  "column_break_4",
-  "business_shortcode",
-  "online_passkey",
-  "security_credential",
-  "get_account_balance",
-  "account_balance"
- ],
- "fields": [
-  {
-   "fieldname": "payment_gateway_name",
-   "fieldtype": "Data",
-   "label": "Payment Gateway Name",
-   "reqd": 1,
-   "unique": 1
-  },
-  {
-   "fieldname": "consumer_key",
-   "fieldtype": "Data",
-   "in_list_view": 1,
-   "label": "Consumer Key",
-   "reqd": 1
-  },
-  {
-   "fieldname": "consumer_secret",
-   "fieldtype": "Password",
-   "in_list_view": 1,
-   "label": "Consumer Secret",
-   "reqd": 1
-  },
-  {
-   "fieldname": "till_number",
-   "fieldtype": "Data",
-   "in_list_view": 1,
-   "label": "Till Number",
-   "reqd": 1
-  },
-  {
-   "default": "0",
-   "fieldname": "sandbox",
-   "fieldtype": "Check",
-   "label": "Sandbox"
-  },
-  {
-   "fieldname": "column_break_4",
-   "fieldtype": "Column Break"
-  },
-  {
-   "fieldname": "online_passkey",
-   "fieldtype": "Password",
-   "label": " Online PassKey",
-   "reqd": 1
-  },
-  {
-   "fieldname": "initiator_name",
-   "fieldtype": "Data",
-   "label": "Initiator Name"
-  },
-  {
-   "fieldname": "security_credential",
-   "fieldtype": "Small Text",
-   "label": "Security Credential"
-  },
-  {
-   "fieldname": "account_balance",
-   "fieldtype": "Long Text",
-   "hidden": 1,
-   "label": "Account Balance",
-   "read_only": 1
-  },
-  {
-   "fieldname": "get_account_balance",
-   "fieldtype": "Button",
-   "label": "Get Account Balance"
-  },
-  {
-   "depends_on": "eval:(doc.sandbox==0)",
-   "fieldname": "business_shortcode",
-   "fieldtype": "Data",
-   "label": "Business Shortcode",
-   "mandatory_depends_on": "eval:(doc.sandbox==0)"
-  },
-  {
-   "default": "150000",
-   "fieldname": "transaction_limit",
-   "fieldtype": "Float",
-   "label": "Transaction Limit",
-   "non_negative": 1
-  }
- ],
- "links": [],
- "modified": "2021-03-02 17:35:14.084342",
- "modified_by": "Administrator",
- "module": "ERPNext Integrations",
- "name": "Mpesa Settings",
- "owner": "Administrator",
- "permissions": [
-  {
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "export": 1,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "System Manager",
-   "share": 1,
-   "write": 1
-  },
-  {
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "export": 1,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Accounts Manager",
-   "share": 1,
-   "write": 1
-  },
-  {
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "export": 1,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Accounts User",
-   "share": 1,
-   "write": 1
-  }
- ],
- "sort_field": "modified",
- "sort_order": "DESC",
- "track_changes": 1
-}
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.py b/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.py
deleted file mode 100644
index a298e11..0000000
--- a/erpnext/erpnext_integrations/doctype/mpesa_settings/mpesa_settings.py
+++ /dev/null
@@ -1,354 +0,0 @@
-# Copyright (c) 2020, Frappe Technologies and contributors
-# For license information, please see license.txt
-
-
-from json import dumps, loads
-
-import frappe
-from frappe import _
-from frappe.integrations.utils import create_request_log
-from frappe.model.document import Document
-from frappe.utils import call_hook_method, fmt_money, get_request_site_address
-
-from erpnext.erpnext_integrations.doctype.mpesa_settings.mpesa_connector import MpesaConnector
-from erpnext.erpnext_integrations.doctype.mpesa_settings.mpesa_custom_fields import (
-	create_custom_pos_fields,
-)
-from erpnext.erpnext_integrations.utils import create_mode_of_payment
-from erpnext.utilities import payment_app_import_guard
-
-
-class MpesaSettings(Document):
-	supported_currencies = ["KES"]
-
-	def validate_transaction_currency(self, currency):
-		if currency not in self.supported_currencies:
-			frappe.throw(
-				_(
-					"Please select another payment method. Mpesa does not support transactions in currency '{0}'"
-				).format(currency)
-			)
-
-	def on_update(self):
-		with payment_app_import_guard():
-			from payments.utils import create_payment_gateway
-
-		create_custom_pos_fields()
-		create_payment_gateway(
-			"Mpesa-" + self.payment_gateway_name,
-			settings="Mpesa Settings",
-			controller=self.payment_gateway_name,
-		)
-		call_hook_method(
-			"payment_gateway_enabled", gateway="Mpesa-" + self.payment_gateway_name, payment_channel="Phone"
-		)
-
-		# required to fetch the bank account details from the payment gateway account
-		frappe.db.commit()
-		create_mode_of_payment("Mpesa-" + self.payment_gateway_name, payment_type="Phone")
-
-	def request_for_payment(self, **kwargs):
-		args = frappe._dict(kwargs)
-		request_amounts = self.split_request_amount_according_to_transaction_limit(args)
-
-		for i, amount in enumerate(request_amounts):
-			args.request_amount = amount
-			if frappe.flags.in_test:
-				from erpnext.erpnext_integrations.doctype.mpesa_settings.test_mpesa_settings import (
-					get_payment_request_response_payload,
-				)
-
-				response = frappe._dict(get_payment_request_response_payload(amount))
-			else:
-				response = frappe._dict(generate_stk_push(**args))
-
-			self.handle_api_response("CheckoutRequestID", args, response)
-
-	def split_request_amount_according_to_transaction_limit(self, args):
-		request_amount = args.request_amount
-		if request_amount > self.transaction_limit:
-			# make multiple requests
-			request_amounts = []
-			requests_to_be_made = frappe.utils.ceil(
-				request_amount / self.transaction_limit
-			)  # 480/150 = ceil(3.2) = 4
-			for i in range(requests_to_be_made):
-				amount = self.transaction_limit
-				if i == requests_to_be_made - 1:
-					amount = request_amount - (
-						self.transaction_limit * i
-					)  # for 4th request, 480 - (150 * 3) = 30
-				request_amounts.append(amount)
-		else:
-			request_amounts = [request_amount]
-
-		return request_amounts
-
-	@frappe.whitelist()
-	def get_account_balance_info(self):
-		payload = dict(
-			reference_doctype="Mpesa Settings", reference_docname=self.name, doc_details=vars(self)
-		)
-
-		if frappe.flags.in_test:
-			from erpnext.erpnext_integrations.doctype.mpesa_settings.test_mpesa_settings import (
-				get_test_account_balance_response,
-			)
-
-			response = frappe._dict(get_test_account_balance_response())
-		else:
-			response = frappe._dict(get_account_balance(payload))
-
-		self.handle_api_response("ConversationID", payload, response)
-
-	def handle_api_response(self, global_id, request_dict, response):
-		"""Response received from API calls returns a global identifier for each transaction, this code is returned during the callback."""
-		# check error response
-		if getattr(response, "requestId"):
-			req_name = getattr(response, "requestId")
-			error = response
-		else:
-			# global checkout id used as request name
-			req_name = getattr(response, global_id)
-			error = None
-
-		if not frappe.db.exists("Integration Request", req_name):
-			create_request_log(request_dict, "Host", "Mpesa", req_name, error)
-
-		if error:
-			frappe.throw(_(getattr(response, "errorMessage")), title=_("Transaction Error"))
-
-
-def generate_stk_push(**kwargs):
-	"""Generate stk push by making a API call to the stk push API."""
-	args = frappe._dict(kwargs)
-	try:
-		callback_url = (
-			get_request_site_address(True)
-			+ "/api/method/erpnext.erpnext_integrations.doctype.mpesa_settings.mpesa_settings.verify_transaction"
-		)
-
-		mpesa_settings = frappe.get_doc("Mpesa Settings", args.payment_gateway[6:])
-		env = "production" if not mpesa_settings.sandbox else "sandbox"
-		# for sandbox, business shortcode is same as till number
-		business_shortcode = (
-			mpesa_settings.business_shortcode if env == "production" else mpesa_settings.till_number
-		)
-
-		connector = MpesaConnector(
-			env=env,
-			app_key=mpesa_settings.consumer_key,
-			app_secret=mpesa_settings.get_password("consumer_secret"),
-		)
-
-		mobile_number = sanitize_mobile_number(args.sender)
-
-		response = connector.stk_push(
-			business_shortcode=business_shortcode,
-			amount=args.request_amount,
-			passcode=mpesa_settings.get_password("online_passkey"),
-			callback_url=callback_url,
-			reference_code=mpesa_settings.till_number,
-			phone_number=mobile_number,
-			description="POS Payment",
-		)
-
-		return response
-
-	except Exception:
-		frappe.log_error("Mpesa Express Transaction Error")
-		frappe.throw(
-			_("Issue detected with Mpesa configuration, check the error logs for more details"),
-			title=_("Mpesa Express Error"),
-		)
-
-
-def sanitize_mobile_number(number):
-	"""Add country code and strip leading zeroes from the phone number."""
-	return "254" + str(number).lstrip("0")
-
-
-@frappe.whitelist(allow_guest=True)
-def verify_transaction(**kwargs):
-	"""Verify the transaction result received via callback from stk."""
-	transaction_response = frappe._dict(kwargs["Body"]["stkCallback"])
-
-	checkout_id = getattr(transaction_response, "CheckoutRequestID", "")
-	if not isinstance(checkout_id, str):
-		frappe.throw(_("Invalid Checkout Request ID"))
-
-	integration_request = frappe.get_doc("Integration Request", checkout_id)
-	transaction_data = frappe._dict(loads(integration_request.data))
-	total_paid = 0  # for multiple integration request made against a pos invoice
-	success = False  # for reporting successfull callback to point of sale ui
-
-	if transaction_response["ResultCode"] == 0:
-		if integration_request.reference_doctype and integration_request.reference_docname:
-			try:
-				item_response = transaction_response["CallbackMetadata"]["Item"]
-				amount = fetch_param_value(item_response, "Amount", "Name")
-				mpesa_receipt = fetch_param_value(item_response, "MpesaReceiptNumber", "Name")
-				pr = frappe.get_doc(
-					integration_request.reference_doctype, integration_request.reference_docname
-				)
-
-				mpesa_receipts, completed_payments = get_completed_integration_requests_info(
-					integration_request.reference_doctype, integration_request.reference_docname, checkout_id
-				)
-
-				total_paid = amount + sum(completed_payments)
-				mpesa_receipts = ", ".join(mpesa_receipts + [mpesa_receipt])
-
-				if total_paid >= pr.grand_total:
-					pr.run_method("on_payment_authorized", "Completed")
-					success = True
-
-				frappe.db.set_value("POS Invoice", pr.reference_name, "mpesa_receipt_number", mpesa_receipts)
-				integration_request.handle_success(transaction_response)
-			except Exception:
-				integration_request.handle_failure(transaction_response)
-				frappe.log_error("Mpesa: Failed to verify transaction")
-
-	else:
-		integration_request.handle_failure(transaction_response)
-
-	frappe.publish_realtime(
-		event="process_phone_payment",
-		doctype="POS Invoice",
-		docname=transaction_data.payment_reference,
-		user=integration_request.owner,
-		message={
-			"amount": total_paid,
-			"success": success,
-			"failure_message": transaction_response["ResultDesc"]
-			if transaction_response["ResultCode"] != 0
-			else "",
-		},
-	)
-
-
-def get_completed_integration_requests_info(reference_doctype, reference_docname, checkout_id):
-	output_of_other_completed_requests = frappe.get_all(
-		"Integration Request",
-		filters={
-			"name": ["!=", checkout_id],
-			"reference_doctype": reference_doctype,
-			"reference_docname": reference_docname,
-			"status": "Completed",
-		},
-		pluck="output",
-	)
-
-	mpesa_receipts, completed_payments = [], []
-
-	for out in output_of_other_completed_requests:
-		out = frappe._dict(loads(out))
-		item_response = out["CallbackMetadata"]["Item"]
-		completed_amount = fetch_param_value(item_response, "Amount", "Name")
-		completed_mpesa_receipt = fetch_param_value(item_response, "MpesaReceiptNumber", "Name")
-		completed_payments.append(completed_amount)
-		mpesa_receipts.append(completed_mpesa_receipt)
-
-	return mpesa_receipts, completed_payments
-
-
-def get_account_balance(request_payload):
-	"""Call account balance API to send the request to the Mpesa Servers."""
-	try:
-		mpesa_settings = frappe.get_doc("Mpesa Settings", request_payload.get("reference_docname"))
-		env = "production" if not mpesa_settings.sandbox else "sandbox"
-		connector = MpesaConnector(
-			env=env,
-			app_key=mpesa_settings.consumer_key,
-			app_secret=mpesa_settings.get_password("consumer_secret"),
-		)
-
-		callback_url = (
-			get_request_site_address(True)
-			+ "/api/method/erpnext.erpnext_integrations.doctype.mpesa_settings.mpesa_settings.process_balance_info"
-		)
-
-		response = connector.get_balance(
-			mpesa_settings.initiator_name,
-			mpesa_settings.security_credential,
-			mpesa_settings.till_number,
-			4,
-			mpesa_settings.name,
-			callback_url,
-			callback_url,
-		)
-		return response
-	except Exception:
-		frappe.log_error("Mpesa: Failed to get account balance")
-		frappe.throw(_("Please check your configuration and try again"), title=_("Error"))
-
-
-@frappe.whitelist(allow_guest=True)
-def process_balance_info(**kwargs):
-	"""Process and store account balance information received via callback from the account balance API call."""
-	account_balance_response = frappe._dict(kwargs["Result"])
-
-	conversation_id = getattr(account_balance_response, "ConversationID", "")
-	if not isinstance(conversation_id, str):
-		frappe.throw(_("Invalid Conversation ID"))
-
-	request = frappe.get_doc("Integration Request", conversation_id)
-
-	if request.status == "Completed":
-		return
-
-	transaction_data = frappe._dict(loads(request.data))
-
-	if account_balance_response["ResultCode"] == 0:
-		try:
-			result_params = account_balance_response["ResultParameters"]["ResultParameter"]
-
-			balance_info = fetch_param_value(result_params, "AccountBalance", "Key")
-			balance_info = format_string_to_json(balance_info)
-
-			ref_doc = frappe.get_doc(transaction_data.reference_doctype, transaction_data.reference_docname)
-			ref_doc.db_set("account_balance", balance_info)
-
-			request.handle_success(account_balance_response)
-			frappe.publish_realtime(
-				"refresh_mpesa_dashboard",
-				doctype="Mpesa Settings",
-				docname=transaction_data.reference_docname,
-				user=transaction_data.owner,
-			)
-		except Exception:
-			request.handle_failure(account_balance_response)
-			frappe.log_error(
-				title="Mpesa Account Balance Processing Error", message=account_balance_response
-			)
-	else:
-		request.handle_failure(account_balance_response)
-
-
-def format_string_to_json(balance_info):
-	"""
-	Format string to json.
-
-	e.g: '''Working Account|KES|481000.00|481000.00|0.00|0.00'''
-	=> {'Working Account': {'current_balance': '481000.00',
-	        'available_balance': '481000.00',
-	        'reserved_balance': '0.00',
-	        'uncleared_balance': '0.00'}}
-	"""
-	balance_dict = frappe._dict()
-	for account_info in balance_info.split("&"):
-		account_info = account_info.split("|")
-		balance_dict[account_info[0]] = dict(
-			current_balance=fmt_money(account_info[2], currency="KES"),
-			available_balance=fmt_money(account_info[3], currency="KES"),
-			reserved_balance=fmt_money(account_info[4], currency="KES"),
-			uncleared_balance=fmt_money(account_info[5], currency="KES"),
-		)
-	return dumps(balance_dict)
-
-
-def fetch_param_value(response, key, key_field):
-	"""Fetch the specified key from list of dictionary. Key is identified via the key field."""
-	for param in response:
-		if param[key_field] == key:
-			return param["Value"]
diff --git a/erpnext/erpnext_integrations/doctype/mpesa_settings/test_mpesa_settings.py b/erpnext/erpnext_integrations/doctype/mpesa_settings/test_mpesa_settings.py
deleted file mode 100644
index b526624..0000000
--- a/erpnext/erpnext_integrations/doctype/mpesa_settings/test_mpesa_settings.py
+++ /dev/null
@@ -1,361 +0,0 @@
-# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
-# See license.txt
-
-import unittest
-from json import dumps
-
-import frappe
-
-from erpnext.accounts.doctype.pos_invoice.test_pos_invoice import create_pos_invoice
-from erpnext.erpnext_integrations.doctype.mpesa_settings.mpesa_settings import (
-	process_balance_info,
-	verify_transaction,
-)
-from erpnext.erpnext_integrations.utils import create_mode_of_payment
-
-
-class TestMpesaSettings(unittest.TestCase):
-	def setUp(self):
-		# create payment gateway in setup
-		create_mpesa_settings(payment_gateway_name="_Test")
-		create_mpesa_settings(payment_gateway_name="_Account Balance")
-		create_mpesa_settings(payment_gateway_name="Payment")
-
-	def tearDown(self):
-		frappe.db.sql("delete from `tabMpesa Settings`")
-		frappe.db.sql("delete from `tabIntegration Request` where integration_request_service = 'Mpesa'")
-
-	def test_creation_of_payment_gateway(self):
-		mode_of_payment = create_mode_of_payment("Mpesa-_Test", payment_type="Phone")
-		self.assertTrue(frappe.db.exists("Payment Gateway Account", {"payment_gateway": "Mpesa-_Test"}))
-		self.assertTrue(mode_of_payment.name)
-		self.assertEqual(mode_of_payment.type, "Phone")
-
-	def test_processing_of_account_balance(self):
-		mpesa_doc = create_mpesa_settings(payment_gateway_name="_Account Balance")
-		mpesa_doc.get_account_balance_info()
-
-		callback_response = get_account_balance_callback_payload()
-		process_balance_info(**callback_response)
-		integration_request = frappe.get_doc("Integration Request", "AG_20200927_00007cdb1f9fb6494315")
-
-		# test integration request creation and successful update of the status on receiving callback response
-		self.assertTrue(integration_request)
-		self.assertEqual(integration_request.status, "Completed")
-
-		# test formatting of account balance received as string to json with appropriate currency symbol
-		mpesa_doc.reload()
-		self.assertEqual(
-			mpesa_doc.account_balance,
-			dumps(
-				{
-					"Working Account": {
-						"current_balance": "Sh 481,000.00",
-						"available_balance": "Sh 481,000.00",
-						"reserved_balance": "Sh 0.00",
-						"uncleared_balance": "Sh 0.00",
-					}
-				}
-			),
-		)
-
-		integration_request.delete()
-
-	def test_processing_of_callback_payload(self):
-		mpesa_account = frappe.db.get_value(
-			"Payment Gateway Account", {"payment_gateway": "Mpesa-Payment"}, "payment_account"
-		)
-		frappe.db.set_value("Account", mpesa_account, "account_currency", "KES")
-		frappe.db.set_value("Customer", "_Test Customer", "default_currency", "KES")
-
-		pos_invoice = create_pos_invoice(do_not_submit=1)
-		pos_invoice.append(
-			"payments", {"mode_of_payment": "Mpesa-Payment", "account": mpesa_account, "amount": 500}
-		)
-		pos_invoice.contact_mobile = "093456543894"
-		pos_invoice.currency = "KES"
-		pos_invoice.save()
-
-		pr = pos_invoice.create_payment_request()
-		# test payment request creation
-		self.assertEqual(pr.payment_gateway, "Mpesa-Payment")
-
-		# submitting payment request creates integration requests with random id
-		integration_req_ids = frappe.get_all(
-			"Integration Request",
-			filters={
-				"reference_doctype": pr.doctype,
-				"reference_docname": pr.name,
-			},
-			pluck="name",
-		)
-
-		callback_response = get_payment_callback_payload(
-			Amount=500, CheckoutRequestID=integration_req_ids[0]
-		)
-		verify_transaction(**callback_response)
-		# test creation of integration request
-		integration_request = frappe.get_doc("Integration Request", integration_req_ids[0])
-
-		# test integration request creation and successful update of the status on receiving callback response
-		self.assertTrue(integration_request)
-		self.assertEqual(integration_request.status, "Completed")
-
-		pos_invoice.reload()
-		integration_request.reload()
-		self.assertEqual(pos_invoice.mpesa_receipt_number, "LGR7OWQX0R")
-		self.assertEqual(integration_request.status, "Completed")
-
-		frappe.db.set_value("Customer", "_Test Customer", "default_currency", "")
-		integration_request.delete()
-		pr.reload()
-		pr.cancel()
-		pr.delete()
-		pos_invoice.delete()
-
-	def test_processing_of_multiple_callback_payload(self):
-		mpesa_account = frappe.db.get_value(
-			"Payment Gateway Account", {"payment_gateway": "Mpesa-Payment"}, "payment_account"
-		)
-		frappe.db.set_value("Account", mpesa_account, "account_currency", "KES")
-		frappe.db.set_value("Mpesa Settings", "Payment", "transaction_limit", "500")
-		frappe.db.set_value("Customer", "_Test Customer", "default_currency", "KES")
-
-		pos_invoice = create_pos_invoice(do_not_submit=1)
-		pos_invoice.append(
-			"payments", {"mode_of_payment": "Mpesa-Payment", "account": mpesa_account, "amount": 1000}
-		)
-		pos_invoice.contact_mobile = "093456543894"
-		pos_invoice.currency = "KES"
-		pos_invoice.save()
-
-		pr = pos_invoice.create_payment_request()
-		# test payment request creation
-		self.assertEqual(pr.payment_gateway, "Mpesa-Payment")
-
-		# submitting payment request creates integration requests with random id
-		integration_req_ids = frappe.get_all(
-			"Integration Request",
-			filters={
-				"reference_doctype": pr.doctype,
-				"reference_docname": pr.name,
-			},
-			pluck="name",
-		)
-
-		# create random receipt nos and send it as response to callback handler
-		mpesa_receipt_numbers = [frappe.utils.random_string(5) for d in integration_req_ids]
-
-		integration_requests = []
-		for i in range(len(integration_req_ids)):
-			callback_response = get_payment_callback_payload(
-				Amount=500,
-				CheckoutRequestID=integration_req_ids[i],
-				MpesaReceiptNumber=mpesa_receipt_numbers[i],
-			)
-			# handle response manually
-			verify_transaction(**callback_response)
-			# test completion of integration request
-			integration_request = frappe.get_doc("Integration Request", integration_req_ids[i])
-			self.assertEqual(integration_request.status, "Completed")
-			integration_requests.append(integration_request)
-
-		# check receipt number once all the integration requests are completed
-		pos_invoice.reload()
-		self.assertEqual(pos_invoice.mpesa_receipt_number, ", ".join(mpesa_receipt_numbers))
-
-		frappe.db.set_value("Customer", "_Test Customer", "default_currency", "")
-		[d.delete() for d in integration_requests]
-		pr.reload()
-		pr.cancel()
-		pr.delete()
-		pos_invoice.delete()
-
-	def test_processing_of_only_one_succes_callback_payload(self):
-		mpesa_account = frappe.db.get_value(
-			"Payment Gateway Account", {"payment_gateway": "Mpesa-Payment"}, "payment_account"
-		)
-		frappe.db.set_value("Account", mpesa_account, "account_currency", "KES")
-		frappe.db.set_value("Mpesa Settings", "Payment", "transaction_limit", "500")
-		frappe.db.set_value("Customer", "_Test Customer", "default_currency", "KES")
-
-		pos_invoice = create_pos_invoice(do_not_submit=1)
-		pos_invoice.append(
-			"payments", {"mode_of_payment": "Mpesa-Payment", "account": mpesa_account, "amount": 1000}
-		)
-		pos_invoice.contact_mobile = "093456543894"
-		pos_invoice.currency = "KES"
-		pos_invoice.save()
-
-		pr = pos_invoice.create_payment_request()
-		# test payment request creation
-		self.assertEqual(pr.payment_gateway, "Mpesa-Payment")
-
-		# submitting payment request creates integration requests with random id
-		integration_req_ids = frappe.get_all(
-			"Integration Request",
-			filters={
-				"reference_doctype": pr.doctype,
-				"reference_docname": pr.name,
-			},
-			pluck="name",
-		)
-
-		# create random receipt nos and send it as response to callback handler
-		mpesa_receipt_numbers = [frappe.utils.random_string(5) for d in integration_req_ids]
-
-		callback_response = get_payment_callback_payload(
-			Amount=500,
-			CheckoutRequestID=integration_req_ids[0],
-			MpesaReceiptNumber=mpesa_receipt_numbers[0],
-		)
-		# handle response manually
-		verify_transaction(**callback_response)
-		# test completion of integration request
-		integration_request = frappe.get_doc("Integration Request", integration_req_ids[0])
-		self.assertEqual(integration_request.status, "Completed")
-
-		# now one request is completed
-		# second integration request fails
-		# now retrying payment request should make only one integration request again
-		pr = pos_invoice.create_payment_request()
-		new_integration_req_ids = frappe.get_all(
-			"Integration Request",
-			filters={
-				"reference_doctype": pr.doctype,
-				"reference_docname": pr.name,
-				"name": ["not in", integration_req_ids],
-			},
-			pluck="name",
-		)
-
-		self.assertEqual(len(new_integration_req_ids), 1)
-
-		frappe.db.set_value("Customer", "_Test Customer", "default_currency", "")
-		frappe.db.sql("delete from `tabIntegration Request` where integration_request_service = 'Mpesa'")
-		pr.reload()
-		pr.cancel()
-		pr.delete()
-		pos_invoice.delete()
-
-
-def create_mpesa_settings(payment_gateway_name="Express"):
-	if frappe.db.exists("Mpesa Settings", payment_gateway_name):
-		return frappe.get_doc("Mpesa Settings", payment_gateway_name)
-
-	doc = frappe.get_doc(
-		dict(  # nosec
-			doctype="Mpesa Settings",
-			sandbox=1,
-			payment_gateway_name=payment_gateway_name,
-			consumer_key="5sMu9LVI1oS3oBGPJfh3JyvLHwZOdTKn",
-			consumer_secret="VI1oS3oBGPJfh3JyvLHw",
-			online_passkey="LVI1oS3oBGPJfh3JyvLHwZOd",
-			till_number="174379",
-		)
-	)
-
-	doc.insert(ignore_permissions=True)
-	return doc
-
-
-def get_test_account_balance_response():
-	"""Response received after calling the account balance API."""
-	return {
-		"ResultType": 0,
-		"ResultCode": 0,
-		"ResultDesc": "The service request has been accepted successfully.",
-		"OriginatorConversationID": "10816-694520-2",
-		"ConversationID": "AG_20200927_00007cdb1f9fb6494315",
-		"TransactionID": "LGR0000000",
-		"ResultParameters": {
-			"ResultParameter": [
-				{"Key": "ReceiptNo", "Value": "LGR919G2AV"},
-				{"Key": "Conversation ID", "Value": "AG_20170727_00004492b1b6d0078fbe"},
-				{"Key": "FinalisedTime", "Value": 20170727101415},
-				{"Key": "Amount", "Value": 10},
-				{"Key": "TransactionStatus", "Value": "Completed"},
-				{"Key": "ReasonType", "Value": "Salary Payment via API"},
-				{"Key": "TransactionReason"},
-				{"Key": "DebitPartyCharges", "Value": "Fee For B2C Payment|KES|33.00"},
-				{"Key": "DebitAccountType", "Value": "Utility Account"},
-				{"Key": "InitiatedTime", "Value": 20170727101415},
-				{"Key": "Originator Conversation ID", "Value": "19455-773836-1"},
-				{"Key": "CreditPartyName", "Value": "254708374149 - John Doe"},
-				{"Key": "DebitPartyName", "Value": "600134 - Safaricom157"},
-			]
-		},
-		"ReferenceData": {"ReferenceItem": {"Key": "Occasion", "Value": "aaaa"}},
-	}
-
-
-def get_payment_request_response_payload(Amount=500):
-	"""Response received after successfully calling the stk push process request API."""
-
-	CheckoutRequestID = frappe.utils.random_string(10)
-
-	return {
-		"MerchantRequestID": "8071-27184008-1",
-		"CheckoutRequestID": CheckoutRequestID,
-		"ResultCode": 0,
-		"ResultDesc": "The service request is processed successfully.",
-		"CallbackMetadata": {
-			"Item": [
-				{"Name": "Amount", "Value": Amount},
-				{"Name": "MpesaReceiptNumber", "Value": "LGR7OWQX0R"},
-				{"Name": "TransactionDate", "Value": 20201006113336},
-				{"Name": "PhoneNumber", "Value": 254723575670},
-			]
-		},
-	}
-
-
-def get_payment_callback_payload(
-	Amount=500, CheckoutRequestID="ws_CO_061020201133231972", MpesaReceiptNumber="LGR7OWQX0R"
-):
-	"""Response received from the server as callback after calling the stkpush process request API."""
-	return {
-		"Body": {
-			"stkCallback": {
-				"MerchantRequestID": "19465-780693-1",
-				"CheckoutRequestID": CheckoutRequestID,
-				"ResultCode": 0,
-				"ResultDesc": "The service request is processed successfully.",
-				"CallbackMetadata": {
-					"Item": [
-						{"Name": "Amount", "Value": Amount},
-						{"Name": "MpesaReceiptNumber", "Value": MpesaReceiptNumber},
-						{"Name": "Balance"},
-						{"Name": "TransactionDate", "Value": 20170727154800},
-						{"Name": "PhoneNumber", "Value": 254721566839},
-					]
-				},
-			}
-		}
-	}
-
-
-def get_account_balance_callback_payload():
-	"""Response received from the server as callback after calling the account balance API."""
-	return {
-		"Result": {
-			"ResultType": 0,
-			"ResultCode": 0,
-			"ResultDesc": "The service request is processed successfully.",
-			"OriginatorConversationID": "16470-170099139-1",
-			"ConversationID": "AG_20200927_00007cdb1f9fb6494315",
-			"TransactionID": "OIR0000000",
-			"ResultParameters": {
-				"ResultParameter": [
-					{"Key": "AccountBalance", "Value": "Working Account|KES|481000.00|481000.00|0.00|0.00"},
-					{"Key": "BOCompletedTime", "Value": 20200927234123},
-				]
-			},
-			"ReferenceData": {
-				"ReferenceItem": {
-					"Key": "QueueTimeoutURL",
-					"Value": "https://internalsandbox.safaricom.co.ke/mpesa/abresults/v1/submit",
-				}
-			},
-		}
-	}
diff --git a/erpnext/erpnext_integrations/doctype/plaid_settings/test_plaid_settings.py b/erpnext/erpnext_integrations/doctype/plaid_settings/test_plaid_settings.py
index 86e1b31..6716853 100644
--- a/erpnext/erpnext_integrations/doctype/plaid_settings/test_plaid_settings.py
+++ b/erpnext/erpnext_integrations/doctype/plaid_settings/test_plaid_settings.py
@@ -43,40 +43,6 @@
 		add_account_subtype("loan")
 		self.assertEqual(frappe.get_doc("Bank Account Subtype", "loan").name, "loan")
 
-	def test_default_bank_account(self):
-		if not frappe.db.exists("Bank", "Citi"):
-			frappe.get_doc({"doctype": "Bank", "bank_name": "Citi"}).insert()
-
-		bank_accounts = {
-			"account": {
-				"subtype": "checking",
-				"mask": "0000",
-				"type": "depository",
-				"id": "6GbM6RRQgdfy3lAqGz4JUnpmR948WZFg8DjQK",
-				"name": "Plaid Checking",
-			},
-			"account_id": "6GbM6RRQgdfy3lAqGz4JUnpmR948WZFg8DjQK",
-			"link_session_id": "db673d75-61aa-442a-864f-9b3f174f3725",
-			"accounts": [
-				{
-					"type": "depository",
-					"subtype": "checking",
-					"mask": "0000",
-					"id": "6GbM6RRQgdfy3lAqGz4JUnpmR948WZFg8DjQK",
-					"name": "Plaid Checking",
-				}
-			],
-			"institution": {"institution_id": "ins_6", "name": "Citi"},
-		}
-
-		bank = json.dumps(frappe.get_doc("Bank", "Citi").as_dict(), default=json_handler)
-		company = frappe.db.get_single_value("Global Defaults", "default_company")
-		frappe.db.set_value("Company", company, "default_bank_account", None)
-
-		self.assertRaises(
-			frappe.ValidationError, add_bank_accounts, response=bank_accounts, bank=bank, company=company
-		)
-
 	def test_new_transaction(self):
 		if not frappe.db.exists("Bank", "Citi"):
 			frappe.get_doc({"doctype": "Bank", "bank_name": "Citi"}).insert()
diff --git a/erpnext/erpnext_integrations/stripe_integration.py b/erpnext/erpnext_integrations/stripe_integration.py
deleted file mode 100644
index 634e5c2..0000000
--- a/erpnext/erpnext_integrations/stripe_integration.py
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-import frappe
-from frappe import _
-from frappe.integrations.utils import create_request_log
-
-from erpnext.utilities import payment_app_import_guard
-
-
-def create_stripe_subscription(gateway_controller, data):
-	with payment_app_import_guard():
-		import stripe
-
-	stripe_settings = frappe.get_doc("Stripe Settings", gateway_controller)
-	stripe_settings.data = frappe._dict(data)
-
-	stripe.api_key = stripe_settings.get_password(fieldname="secret_key", raise_exception=False)
-	stripe.default_http_client = stripe.http_client.RequestsClient()
-
-	try:
-		stripe_settings.integration_request = create_request_log(stripe_settings.data, "Host", "Stripe")
-		stripe_settings.payment_plans = frappe.get_doc(
-			"Payment Request", stripe_settings.data.reference_docname
-		).subscription_plans
-		return create_subscription_on_stripe(stripe_settings)
-
-	except Exception:
-		stripe_settings.log_error("Unable to create Stripe subscription")
-		return {
-			"redirect_to": frappe.redirect_to_message(
-				_("Server Error"),
-				_(
-					"It seems that there is an issue with the server's stripe configuration. In case of failure, the amount will get refunded to your account."
-				),
-			),
-			"status": 401,
-		}
-
-
-def create_subscription_on_stripe(stripe_settings):
-	with payment_app_import_guard():
-		import stripe
-
-	items = []
-	for payment_plan in stripe_settings.payment_plans:
-		plan = frappe.db.get_value("Subscription Plan", payment_plan.plan, "product_price_id")
-		items.append({"price": plan, "quantity": payment_plan.qty})
-
-	try:
-		customer = stripe.Customer.create(
-			source=stripe_settings.data.stripe_token_id,
-			description=stripe_settings.data.payer_name,
-			email=stripe_settings.data.payer_email,
-		)
-
-		subscription = stripe.Subscription.create(customer=customer, items=items)
-
-		if subscription.status == "active":
-			stripe_settings.integration_request.db_set("status", "Completed", update_modified=False)
-			stripe_settings.flags.status_changed_to = "Completed"
-
-		else:
-			stripe_settings.integration_request.db_set("status", "Failed", update_modified=False)
-			frappe.log_error(f"Stripe Subscription ID {subscription.id}: Payment failed")
-	except Exception:
-		stripe_settings.integration_request.db_set("status", "Failed", update_modified=False)
-		stripe_settings.log_error("Unable to create Stripe subscription")
-
-	return stripe_settings.finalize_request()
diff --git a/erpnext/erpnext_integrations/utils.py b/erpnext/erpnext_integrations/utils.py
index 981486e..8984f1b 100644
--- a/erpnext/erpnext_integrations/utils.py
+++ b/erpnext/erpnext_integrations/utils.py
@@ -6,8 +6,6 @@
 import frappe
 from frappe import _
 
-from erpnext import get_default_company
-
 
 def validate_webhooks_request(doctype, hmac_key, secret_key="secret"):
 	def innerfn(fn):
@@ -47,35 +45,6 @@
 	return server_url
 
 
-def create_mode_of_payment(gateway, payment_type="General"):
-	payment_gateway_account = frappe.db.get_value(
-		"Payment Gateway Account", {"payment_gateway": gateway}, ["payment_account"]
-	)
-
-	mode_of_payment = frappe.db.exists("Mode of Payment", gateway)
-	if not mode_of_payment and payment_gateway_account:
-		mode_of_payment = frappe.get_doc(
-			{
-				"doctype": "Mode of Payment",
-				"mode_of_payment": gateway,
-				"enabled": 1,
-				"type": payment_type,
-				"accounts": [
-					{
-						"doctype": "Mode of Payment Account",
-						"company": get_default_company(),
-						"default_account": payment_gateway_account,
-					}
-				],
-			}
-		)
-		mode_of_payment.insert(ignore_permissions=True)
-
-		return mode_of_payment
-	elif mode_of_payment:
-		return frappe.get_doc("Mode of Payment", mode_of_payment)
-
-
 def get_tracking_url(carrier, tracking_number):
 	# Return the formatted Tracking URL.
 	tracking_url = ""
diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan.json b/erpnext/manufacturing/doctype/production_plan/production_plan.json
index 0d0fd5e..4a00416 100644
--- a/erpnext/manufacturing/doctype/production_plan/production_plan.json
+++ b/erpnext/manufacturing/doctype/production_plan/production_plan.json
@@ -228,7 +228,7 @@
   },
   {
    "default": "0",
-   "description": "If enabled, the system won't create material requests for the available items.",
+   "description": "If enabled, the system will create material requests even if the stock exists in the 'Raw Materials Warehouse'.",
    "fieldname": "ignore_existing_ordered_qty",
    "fieldtype": "Check",
    "label": "Ignore Available Stock"
@@ -422,7 +422,7 @@
  "index_web_pages_for_search": 1,
  "is_submittable": 1,
  "links": [],
- "modified": "2023-07-28 13:37:43.926686",
+ "modified": "2023-09-29 11:41:03.246059",
  "modified_by": "Administrator",
  "module": "Manufacturing",
  "name": "Production Plan",
diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan.py b/erpnext/manufacturing/doctype/production_plan/production_plan.py
index fabdafc..ddd9375 100644
--- a/erpnext/manufacturing/doctype/production_plan/production_plan.py
+++ b/erpnext/manufacturing/doctype/production_plan/production_plan.py
@@ -1617,18 +1617,25 @@
 	table = frappe.qb.DocType("Production Plan")
 	child = frappe.qb.DocType("Material Request Plan Item")
 
+	non_completed_production_plans = get_non_completed_production_plans()
+
 	query = (
 		frappe.qb.from_(table)
 		.inner_join(child)
 		.on(table.name == child.parent)
-		.select(Sum(child.quantity * IfNull(child.conversion_factor, 1.0)))
+		.select(Sum(child.required_bom_qty))
 		.where(
 			(table.docstatus == 1)
 			& (child.item_code == item_code)
 			& (child.warehouse == warehouse)
 			& (table.status.notin(["Completed", "Closed"]))
 		)
-	).run()
+	)
+
+	if non_completed_production_plans:
+		query = query.where(table.name.isin(non_completed_production_plans))
+
+	query = query.run()
 
 	if not query:
 		return 0.0
@@ -1636,7 +1643,9 @@
 	reserved_qty_for_production_plan = flt(query[0][0])
 
 	reserved_qty_for_production = flt(
-		get_reserved_qty_for_production(item_code, warehouse, check_production_plan=True)
+		get_reserved_qty_for_production(
+			item_code, warehouse, non_completed_production_plans, check_production_plan=True
+		)
 	)
 
 	if reserved_qty_for_production > reserved_qty_for_production_plan:
@@ -1645,6 +1654,25 @@
 	return reserved_qty_for_production_plan - reserved_qty_for_production
 
 
+def get_non_completed_production_plans():
+	table = frappe.qb.DocType("Production Plan")
+	child = frappe.qb.DocType("Production Plan Item")
+
+	query = (
+		frappe.qb.from_(table)
+		.inner_join(child)
+		.on(table.name == child.parent)
+		.select(table.name)
+		.where(
+			(table.docstatus == 1)
+			& (table.status.notin(["Completed", "Closed"]))
+			& (child.planned_qty > child.ordered_qty)
+		)
+	).run(as_dict=True)
+
+	return list(set([d.name for d in query]))
+
+
 def get_raw_materials_of_sub_assembly_items(
 	item_details, company, bom_no, include_non_stock_items, sub_assembly_items, planned_qty=1
 ):
diff --git a/erpnext/manufacturing/doctype/production_plan/test_production_plan.py b/erpnext/manufacturing/doctype/production_plan/test_production_plan.py
index 5d54c41..6ab9232 100644
--- a/erpnext/manufacturing/doctype/production_plan/test_production_plan.py
+++ b/erpnext/manufacturing/doctype/production_plan/test_production_plan.py
@@ -7,6 +7,7 @@
 from erpnext.controllers.item_variant import create_variant
 from erpnext.manufacturing.doctype.production_plan.production_plan import (
 	get_items_for_material_requests,
+	get_non_completed_production_plans,
 	get_sales_orders,
 	get_warehouse_list,
 )
@@ -1103,6 +1104,49 @@
 
 			self.assertEqual(after_qty, before_qty)
 
+	def test_resered_qty_for_production_plan_for_less_rm_qty(self):
+		from erpnext.stock.utils import get_or_make_bin
+
+		bin_name = get_or_make_bin("Raw Material Item 1", "_Test Warehouse - _TC")
+		before_qty = flt(frappe.db.get_value("Bin", bin_name, "reserved_qty_for_production_plan"))
+
+		pln = create_production_plan(item_code="Test Production Item 1", planned_qty=10)
+
+		bin_name = get_or_make_bin("Raw Material Item 1", "_Test Warehouse - _TC")
+		after_qty = flt(frappe.db.get_value("Bin", bin_name, "reserved_qty_for_production_plan"))
+
+		self.assertEqual(after_qty - before_qty, 10)
+
+		pln.make_work_order()
+
+		plans = []
+		for row in frappe.get_all("Work Order", filters={"production_plan": pln.name}, fields=["name"]):
+			wo_doc = frappe.get_doc("Work Order", row.name)
+			wo_doc.source_warehouse = "_Test Warehouse - _TC"
+			wo_doc.wip_warehouse = "_Test Warehouse 1 - _TC"
+			wo_doc.fg_warehouse = "_Test Warehouse - _TC"
+			for d in wo_doc.required_items:
+				d.source_warehouse = "_Test Warehouse - _TC"
+				d.required_qty -= 5
+				make_stock_entry(
+					item_code=d.item_code,
+					qty=d.required_qty,
+					rate=100,
+					target="_Test Warehouse - _TC",
+				)
+
+			wo_doc.submit()
+			plans.append(pln.name)
+
+		bin_name = get_or_make_bin("Raw Material Item 1", "_Test Warehouse - _TC")
+		after_qty = flt(frappe.db.get_value("Bin", bin_name, "reserved_qty_for_production_plan"))
+
+		self.assertEqual(after_qty, before_qty)
+
+		completed_plans = get_non_completed_production_plans()
+		for plan in plans:
+			self.assertFalse(plan in completed_plans)
+
 	def test_resered_qty_for_production_plan_for_material_requests_with_multi_UOM(self):
 		from erpnext.stock.utils import get_or_make_bin
 
diff --git a/erpnext/manufacturing/doctype/work_order/work_order.py b/erpnext/manufacturing/doctype/work_order/work_order.py
index d8fc220..f9fddcb 100644
--- a/erpnext/manufacturing/doctype/work_order/work_order.py
+++ b/erpnext/manufacturing/doctype/work_order/work_order.py
@@ -358,10 +358,10 @@
 		else:
 			self.update_work_order_qty_in_so()
 
+		self.update_ordered_qty()
 		self.update_reserved_qty_for_production()
 		self.update_completed_qty_in_material_request()
 		self.update_planned_qty()
-		self.update_ordered_qty()
 		self.create_job_card()
 
 	def on_cancel(self):
@@ -1513,7 +1513,10 @@
 
 
 def get_reserved_qty_for_production(
-	item_code: str, warehouse: str, check_production_plan: bool = False
+	item_code: str,
+	warehouse: str,
+	non_completed_production_plans: list = None,
+	check_production_plan: bool = False,
 ) -> float:
 	"""Get total reserved quantity for any item in specified warehouse"""
 	wo = frappe.qb.DocType("Work Order")
@@ -1535,16 +1538,22 @@
 			& (wo_item.parent == wo.name)
 			& (wo.docstatus == 1)
 			& (wo_item.source_warehouse == warehouse)
-			& (wo.status.notin(["Stopped", "Completed", "Closed"]))
-			& (
-				(wo_item.required_qty > wo_item.transferred_qty)
-				| (wo_item.required_qty > wo_item.consumed_qty)
-			)
 		)
 	)
 
 	if check_production_plan:
 		query = query.where(wo.production_plan.isnotnull())
+	else:
+		query = query.where(
+			(wo.status.notin(["Stopped", "Completed", "Closed"]))
+			& (
+				(wo_item.required_qty > wo_item.transferred_qty)
+				| (wo_item.required_qty > wo_item.consumed_qty)
+			)
+		)
+
+	if non_completed_production_plans:
+		query = query.where(wo.production_plan.isin(non_completed_production_plans))
 
 	return query.run()[0][0] or 0.0
 
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index e9c056e..8f2d076 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -344,5 +344,6 @@
 erpnext.patches.v14_0.migrate_deferred_accounts_to_item_defaults
 erpnext.patches.v14_0.update_invoicing_period_in_subscription
 execute:frappe.delete_doc("Page", "welcome-to-erpnext")
+erpnext.patches.v15_0.delete_payment_gateway_doctypes
 # below migration patch should always run last
 erpnext.patches.v14_0.migrate_gl_to_payment_ledger
diff --git a/erpnext/patches/v15_0/delete_payment_gateway_doctypes.py b/erpnext/patches/v15_0/delete_payment_gateway_doctypes.py
new file mode 100644
index 0000000..959b065
--- /dev/null
+++ b/erpnext/patches/v15_0/delete_payment_gateway_doctypes.py
@@ -0,0 +1,6 @@
+import frappe
+
+
+def execute():
+	for dt in ("GoCardless Settings", "GoCardless Mandate", "Mpesa Settings"):
+		frappe.delete_doc("DocType", dt, ignore_missing=True)
diff --git a/erpnext/projects/doctype/task_depends_on/task_depends_on.json b/erpnext/projects/doctype/task_depends_on/task_depends_on.json
index dbbe9d3..5102986 100644
--- a/erpnext/projects/doctype/task_depends_on/task_depends_on.json
+++ b/erpnext/projects/doctype/task_depends_on/task_depends_on.json
@@ -1,156 +1,52 @@
 {
- "allow_copy": 0, 
- "allow_import": 0, 
- "allow_rename": 0, 
- "beta": 0, 
- "creation": "2015-04-29 04:52:48.868079", 
- "custom": 0, 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "", 
- "editable_grid": 1, 
+ "actions": [],
+ "creation": "2015-04-29 04:52:48.868079",
+ "doctype": "DocType",
+ "editable_grid": 1,
+ "engine": "InnoDB",
+ "field_order": [
+  "task",
+  "column_break_2",
+  "subject",
+  "project"
+ ],
  "fields": [
   {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "task", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 1, 
-   "in_standard_filter": 0, 
-   "label": "Task", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Task", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
+   "fieldname": "task",
+   "fieldtype": "Link",
+   "in_list_view": 1,
+   "label": "Task",
+   "options": "Task"
+  },
   {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "column_break_2", 
-   "fieldtype": "Column Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
+   "fieldname": "column_break_2",
+   "fieldtype": "Column Break"
+  },
   {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "subject", 
-   "fieldtype": "Text", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 1, 
-   "in_standard_filter": 0, 
-   "label": "Subject", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
+   "fetch_from": "task.subject",
+   "fieldname": "subject",
+   "fieldtype": "Text",
+   "in_list_view": 1,
+   "label": "Subject",
+   "read_only": 1
+  },
   {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "project", 
-   "fieldtype": "Text", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Project", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
+   "fetch_from": "task.project",
+   "fieldname": "project",
+   "fieldtype": "Text",
+   "label": "Project",
+   "read_only": 1
   }
- ], 
- "hide_heading": 0, 
- "hide_toolbar": 0, 
- "idx": 0, 
- "image_view": 0, 
- "in_create": 0, 
-
- "is_submittable": 0, 
- "issingle": 0, 
- "istable": 1, 
- "max_attachments": 0, 
- "modified": "2017-02-24 04:56:04.862502", 
- "modified_by": "Administrator", 
- "module": "Projects", 
- "name": "Task Depends On", 
- "name_case": "", 
- "owner": "Administrator", 
- "permissions": [], 
- "quick_entry": 0, 
- "read_only": 0, 
- "read_only_onload": 0, 
- "show_name_in_global_search": 0, 
- "sort_field": "modified", 
- "sort_order": "DESC", 
- "track_changes": 0, 
- "track_seen": 0
+ ],
+ "istable": 1,
+ "links": [],
+ "modified": "2023-10-09 11:34:14.335853",
+ "modified_by": "Administrator",
+ "module": "Projects",
+ "name": "Task Depends On",
+ "owner": "Administrator",
+ "permissions": [],
+ "sort_field": "modified",
+ "sort_order": "DESC",
+ "states": []
 }
\ No newline at end of file
diff --git a/erpnext/public/js/controllers/accounts.js b/erpnext/public/js/controllers/accounts.js
index a2e4bda..3545521 100644
--- a/erpnext/public/js/controllers/accounts.js
+++ b/erpnext/public/js/controllers/accounts.js
@@ -116,7 +116,7 @@
 			account_head: function(frm, cdt, cdn) {
 				let d = locals[cdt][cdn];
 
-				if (doc.docstatus == 1) {
+				if (d.docstatus == 1) {
 					// Should not trigger any changes on change post submit
 					return;
 				}
diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js
index eeb09cb..6b613ce 100644
--- a/erpnext/public/js/controllers/taxes_and_totals.js
+++ b/erpnext/public/js/controllers/taxes_and_totals.js
@@ -135,7 +135,15 @@
 				}
 				else {
 					// allow for '0' qty on Credit/Debit notes
-					let qty = item.qty || (me.frm.doc.is_debit_note ? 1 : -1);
+					let qty = flt(item.qty);
+					if (!qty) {
+						qty = (me.frm.doc.is_debit_note ? 1 : -1);
+						if (me.frm.doc.doctype !== "Purchase Receipt" && me.frm.doc.is_return === 1) {
+							// In case of Purchase Receipt, qty can be 0 if all items are rejected
+							qty = flt(item.qty);
+						}
+					}
+
 					item.net_amount = item.amount = flt(item.rate * qty, precision("amount", item));
 				}
 
@@ -185,7 +193,7 @@
 		frappe.flags.round_off_applicable_accounts = [];
 
 		if (me.frm.doc.company) {
-			return frappe.call({
+			frappe.call({
 				"method": "erpnext.controllers.taxes_and_totals.get_round_off_applicable_accounts",
 				"args": {
 					"company": me.frm.doc.company,
@@ -198,6 +206,11 @@
 				}
 			});
 		}
+
+		frappe.db.get_single_value("Accounts Settings", "round_row_wise_tax")
+			.then((round_row_wise_tax) => {
+				frappe.flags.round_row_wise_tax = round_row_wise_tax;
+			})
 	}
 
 	determine_exclusive_rate() {
@@ -338,6 +351,9 @@
 			$.each(me.frm.doc["taxes"] || [], function(i, tax) {
 				// tax_amount represents the amount of tax for the current step
 				var current_tax_amount = me.get_current_tax_amount(item, tax, item_tax_map);
+				if (frappe.flags.round_row_wise_tax) {
+					current_tax_amount = flt(current_tax_amount, precision("tax_amount", tax));
+				}
 
 				// Adjust divisional loss to the last item
 				if (tax.charge_type == "Actual") {
@@ -472,8 +488,15 @@
 		}
 
 		let item_wise_tax_amount = current_tax_amount * this.frm.doc.conversion_rate;
-		if (tax_detail && tax_detail[key])
-			item_wise_tax_amount += tax_detail[key][1];
+		if (frappe.flags.round_row_wise_tax) {
+			item_wise_tax_amount = flt(item_wise_tax_amount, precision("tax_amount", tax));
+			if (tax_detail && tax_detail[key]) {
+				item_wise_tax_amount += flt(tax_detail[key][1], precision("tax_amount", tax));
+			}
+		} else {
+			if (tax_detail && tax_detail[key])
+				item_wise_tax_amount += tax_detail[key][1];
+		}
 
 		tax_detail[key] = [tax_rate, flt(item_wise_tax_amount, precision("base_tax_amount", tax))];
 	}
diff --git a/erpnext/public/js/erpnext.bundle.js b/erpnext/public/js/erpnext.bundle.js
index 0e1b23b..dee9a06 100644
--- a/erpnext/public/js/erpnext.bundle.js
+++ b/erpnext/public/js/erpnext.bundle.js
@@ -30,5 +30,6 @@
 import "./utils/sales_common.js";
 import "./controllers/buying.js";
 import "./utils/demo.js";
+import "./financial_statements.js";
 
 // import { sum } from 'frappe/public/utils/util.js'
diff --git a/erpnext/regional/__init__.py b/erpnext/regional/__init__.py
index ec2db81..bd5d540 100644
--- a/erpnext/regional/__init__.py
+++ b/erpnext/regional/__init__.py
@@ -10,7 +10,7 @@
 
 def check_deletion_permission(doc, method):
 	region = get_region(doc.company)
-	if region in ["Nepal", "France"] and doc.docstatus != 0:
+	if region in ["Nepal"] and doc.docstatus != 0:
 		frappe.throw(_("Deletion is not permitted for country {0}").format(region))
 
 
@@ -20,7 +20,7 @@
 	Called on submit of Sales Invoice and Payment Entry.
 	"""
 	region = get_region()
-	if region not in ["France", "Germany"]:
+	if region not in ["Germany"]:
 		return
 
 	data = str(doc.as_dict())
diff --git a/erpnext/regional/address_template/templates/france.html b/erpnext/regional/address_template/templates/france.html
deleted file mode 100644
index 752331e..0000000
--- a/erpnext/regional/address_template/templates/france.html
+++ /dev/null
@@ -1,5 +0,0 @@
-{% if address_line1 %}{{ address_line1 }}{% endif -%}
-{% if address_line2 %}<br>{{ address_line2 }}{% endif -%}
-{% if pincode %}<br>{{ pincode }}{% endif -%}
-{% if city %} {{ city }}{% endif -%}
-{% if country %}<br>{{ country }}{% endif -%}
diff --git a/erpnext/regional/france/__init__.py b/erpnext/regional/france/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/regional/france/__init__.py
+++ /dev/null
diff --git a/erpnext/regional/france/setup.py b/erpnext/regional/france/setup.py
deleted file mode 100644
index da772d6..0000000
--- a/erpnext/regional/france/setup.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-
-
-def setup(company=None, patch=True):
-	make_custom_fields()
-	add_custom_roles_for_reports()
-
-
-def make_custom_fields():
-	custom_fields = {
-		"Company": [
-			dict(fieldname="siren_number", label="SIREN Number", fieldtype="Data", insert_after="website")
-		]
-	}
-
-	create_custom_fields(custom_fields)
-
-
-def add_custom_roles_for_reports():
-	report_name = "Fichier des Ecritures Comptables [FEC]"
-
-	if not frappe.db.get_value("Custom Role", dict(report=report_name)):
-		frappe.get_doc(
-			dict(doctype="Custom Role", report=report_name, roles=[dict(role="Accounts Manager")])
-		).insert()
diff --git a/erpnext/regional/france/utils.py b/erpnext/regional/france/utils.py
deleted file mode 100644
index 65dfd2d..0000000
--- a/erpnext/regional/france/utils.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright (c) 2018, Frappe Technologies and contributors
-# For license information, please see license.txt
-
-
-# don't remove this function it is used in tests
-def test_method():
-	"""test function"""
-	return "overridden"
diff --git "a/erpnext/regional/report/fichier_des_ecritures_comptables_\133fec\135/__init__.py" "b/erpnext/regional/report/fichier_des_ecritures_comptables_\133fec\135/__init__.py"
deleted file mode 100644
index e69de29..0000000
--- "a/erpnext/regional/report/fichier_des_ecritures_comptables_\133fec\135/__init__.py"
+++ /dev/null
diff --git "a/erpnext/regional/report/fichier_des_ecritures_comptables_\133fec\135/fichier_des_ecritures_comptables_\133fec\135.js" "b/erpnext/regional/report/fichier_des_ecritures_comptables_\133fec\135/fichier_des_ecritures_comptables_\133fec\135.js"
deleted file mode 100644
index b85b58f..0000000
--- "a/erpnext/regional/report/fichier_des_ecritures_comptables_\133fec\135/fichier_des_ecritures_comptables_\133fec\135.js"
+++ /dev/null
@@ -1,97 +0,0 @@
-// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
-// For license information, please see license.txt
-
-frappe.query_reports["Fichier des Ecritures Comptables [FEC]"] = {
-	"filters": [
-		{
-			"fieldname": "company",
-			"label": __("Company"),
-			"fieldtype": "Link",
-			"options": "Company",
-			"default": frappe.defaults.get_user_default("Company"),
-			"reqd": 1
-		},
-		{
-			"fieldname": "fiscal_year",
-			"label": __("Fiscal Year"),
-			"fieldtype": "Link",
-			"options": "Fiscal Year",
-			"default": erpnext.utils.get_fiscal_year(frappe.datetime.get_today()),
-			"reqd": 1
-		}
-	],
-	onload: function(query_report) {
-		query_report.page.add_inner_button(__("Export"), function() {
-			fec_export(query_report);
-		});
-
-		query_report.add_make_chart_button = function() {
-			//
-		};
-
-		query_report.export_report = function() {
-			fec_export(query_report);
-		};
-	}
-};
-
-let fec_export = function(query_report) {
-	const fiscal_year = query_report.get_values().fiscal_year;
-	const company = query_report.get_values().company;
-
-	frappe.db.get_value("Company", company, "siren_number", (value) => {
-		const company_data = value.siren_number;
-		if (company_data === null || company_data === undefined) {
-			frappe.msgprint(__("Please register the SIREN number in the company information file"));
-		} else {
-			frappe.db.get_value("Fiscal Year", fiscal_year, "year_end_date", (r) => {
-				const fy = r.year_end_date;
-				const title = company_data + "FEC" + moment(fy).format('YYYYMMDD');
-				const column_row = query_report.columns.map(col => col.label);
-				const column_data = query_report.get_data_for_csv(false);
-				const result = [column_row].concat(column_data);
-				downloadify(result, null, title);
-			});
-
-		}
-	});
-};
-
-let downloadify = function(data, roles, title) {
-	if (roles && roles.length && !has_common(roles, roles)) {
-		frappe.msgprint(__("Export not allowed. You need {0} role to export.", [frappe.utils.comma_or(roles)]));
-		return;
-	}
-
-	const filename = title + ".txt";
-	let csv_data = to_tab_csv(data);
-	const a = document.createElement('a');
-
-	if ("download" in a) {
-		// Used Blob object, because it can handle large files
-		let blob_object = new Blob([csv_data], {
-			type: 'text/csv;charset=UTF-8'
-		});
-		a.href = URL.createObjectURL(blob_object);
-		a.download = filename;
-
-	} else {
-		// use old method
-		a.href = 'data:attachment/csv,' + encodeURIComponent(csv_data);
-		a.download = filename;
-		a.target = "_blank";
-	}
-
-	document.body.appendChild(a);
-	a.click();
-
-	document.body.removeChild(a);
-};
-
-let to_tab_csv = function(data) {
-	let res = [];
-	$.each(data, function(i, row) {
-		res.push(row.join("\t"));
-	});
-	return res.join("\n");
-};
diff --git "a/erpnext/regional/report/fichier_des_ecritures_comptables_\133fec\135/fichier_des_ecritures_comptables_\133fec\135.json" "b/erpnext/regional/report/fichier_des_ecritures_comptables_\133fec\135/fichier_des_ecritures_comptables_\133fec\135.json"
deleted file mode 100644
index 9b48e11..0000000
--- "a/erpnext/regional/report/fichier_des_ecritures_comptables_\133fec\135/fichier_des_ecritures_comptables_\133fec\135.json"
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "add_total_row": 0, 
- "apply_user_permissions": 0, 
- "creation": "2018-01-10 15:10:16.650129", 
- "disabled": 0, 
- "docstatus": 0, 
- "doctype": "Report", 
- "idx": 0, 
- "is_standard": "Yes", 
- "modified": "2018-01-11 10:27:25.595485", 
- "modified_by": "Administrator", 
- "module": "Regional", 
- "name": "Fichier des Ecritures Comptables [FEC]", 
- "owner": "Administrator", 
- "ref_doctype": "GL Entry", 
- "report_name": "Fichier des Ecritures Comptables [FEC]", 
- "report_type": "Script Report", 
- "roles": []
-}
\ No newline at end of file
diff --git "a/erpnext/regional/report/fichier_des_ecritures_comptables_\133fec\135/fichier_des_ecritures_comptables_\133fec\135.py" "b/erpnext/regional/report/fichier_des_ecritures_comptables_\133fec\135/fichier_des_ecritures_comptables_\133fec\135.py"
deleted file mode 100644
index 6717989..0000000
--- "a/erpnext/regional/report/fichier_des_ecritures_comptables_\133fec\135/fichier_des_ecritures_comptables_\133fec\135.py"
+++ /dev/null
@@ -1,339 +0,0 @@
-# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-import re
-
-import frappe
-from frappe import _
-from frappe.utils import format_datetime
-
-COLUMNS = [
-	{
-		"label": "JournalCode",
-		"fieldname": "JournalCode",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "JournalLib",
-		"fieldname": "JournalLib",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "EcritureNum",
-		"fieldname": "EcritureNum",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "EcritureDate",
-		"fieldname": "EcritureDate",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "CompteNum",
-		"fieldname": "CompteNum",
-		"fieldtype": "Link",
-		"options": "Account",
-		"width": 100,
-	},
-	{
-		"label": "CompteLib",
-		"fieldname": "CompteLib",
-		"fieldtype": "Link",
-		"options": "Account",
-		"width": 200,
-	},
-	{
-		"label": "CompAuxNum",
-		"fieldname": "CompAuxNum",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "CompAuxLib",
-		"fieldname": "CompAuxLib",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "PieceRef",
-		"fieldname": "PieceRef",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "PieceDate",
-		"fieldname": "PieceDate",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "EcritureLib",
-		"fieldname": "EcritureLib",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "Debit",
-		"fieldname": "Debit",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "Credit",
-		"fieldname": "Credit",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "EcritureLet",
-		"fieldname": "EcritureLet",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "DateLet",
-		"fieldname": "DateLet",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "ValidDate",
-		"fieldname": "ValidDate",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "Montantdevise",
-		"fieldname": "Montantdevise",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-	{
-		"label": "Idevise",
-		"fieldname": "Idevise",
-		"fieldtype": "Data",
-		"width": 90,
-	},
-]
-
-
-def execute(filters=None):
-	validate_filters(filters)
-	return COLUMNS, get_result(
-		company=filters["company"],
-		fiscal_year=filters["fiscal_year"],
-	)
-
-
-def validate_filters(filters):
-	if not filters.get("company"):
-		frappe.throw(_("{0} is mandatory").format(_("Company")))
-
-	if not filters.get("fiscal_year"):
-		frappe.throw(_("{0} is mandatory").format(_("Fiscal Year")))
-
-
-def get_gl_entries(company, fiscal_year):
-	gle = frappe.qb.DocType("GL Entry")
-	sales_invoice = frappe.qb.DocType("Sales Invoice")
-	purchase_invoice = frappe.qb.DocType("Purchase Invoice")
-	journal_entry = frappe.qb.DocType("Journal Entry")
-	payment_entry = frappe.qb.DocType("Payment Entry")
-	customer = frappe.qb.DocType("Customer")
-	supplier = frappe.qb.DocType("Supplier")
-	employee = frappe.qb.DocType("Employee")
-
-	debit = frappe.query_builder.functions.Sum(gle.debit).as_("debit")
-	credit = frappe.query_builder.functions.Sum(gle.credit).as_("credit")
-	debit_currency = frappe.query_builder.functions.Sum(gle.debit_in_account_currency).as_(
-		"debitCurr"
-	)
-	credit_currency = frappe.query_builder.functions.Sum(gle.credit_in_account_currency).as_(
-		"creditCurr"
-	)
-
-	query = (
-		frappe.qb.from_(gle)
-		.left_join(sales_invoice)
-		.on(gle.voucher_no == sales_invoice.name)
-		.left_join(purchase_invoice)
-		.on(gle.voucher_no == purchase_invoice.name)
-		.left_join(journal_entry)
-		.on(gle.voucher_no == journal_entry.name)
-		.left_join(payment_entry)
-		.on(gle.voucher_no == payment_entry.name)
-		.left_join(customer)
-		.on(gle.party == customer.name)
-		.left_join(supplier)
-		.on(gle.party == supplier.name)
-		.left_join(employee)
-		.on(gle.party == employee.name)
-		.select(
-			gle.posting_date.as_("GlPostDate"),
-			gle.name.as_("GlName"),
-			gle.account,
-			gle.transaction_date,
-			debit,
-			credit,
-			debit_currency,
-			credit_currency,
-			gle.voucher_type,
-			gle.voucher_no,
-			gle.against_voucher_type,
-			gle.against_voucher,
-			gle.account_currency,
-			gle.against,
-			gle.party_type,
-			gle.party,
-			sales_invoice.name.as_("InvName"),
-			sales_invoice.title.as_("InvTitle"),
-			sales_invoice.posting_date.as_("InvPostDate"),
-			purchase_invoice.name.as_("PurName"),
-			purchase_invoice.title.as_("PurTitle"),
-			purchase_invoice.posting_date.as_("PurPostDate"),
-			journal_entry.cheque_no.as_("JnlRef"),
-			journal_entry.posting_date.as_("JnlPostDate"),
-			journal_entry.title.as_("JnlTitle"),
-			payment_entry.name.as_("PayName"),
-			payment_entry.posting_date.as_("PayPostDate"),
-			payment_entry.title.as_("PayTitle"),
-			customer.customer_name,
-			customer.name.as_("cusName"),
-			supplier.supplier_name,
-			supplier.name.as_("supName"),
-			employee.employee_name,
-			employee.name.as_("empName"),
-		)
-		.where((gle.company == company) & (gle.fiscal_year == fiscal_year))
-		.groupby(gle.voucher_type, gle.voucher_no, gle.account)
-		.orderby(gle.posting_date, gle.voucher_no)
-	)
-
-	return query.run(as_dict=True)
-
-
-def get_result(company, fiscal_year):
-	data = get_gl_entries(company, fiscal_year)
-
-	result = []
-
-	company_currency = frappe.get_cached_value("Company", company, "default_currency")
-	accounts = frappe.get_all(
-		"Account", filters={"Company": company}, fields=["name", "account_number"]
-	)
-
-	for d in data:
-		JournalCode = re.split("-|/|[0-9]", d.get("voucher_no"))[0]
-
-		if d.get("voucher_no").startswith("{0}-".format(JournalCode)) or d.get("voucher_no").startswith(
-			"{0}/".format(JournalCode)
-		):
-			EcritureNum = re.split("-|/", d.get("voucher_no"))[1]
-		else:
-			EcritureNum = re.search(r"{0}(\d+)".format(JournalCode), d.get("voucher_no"), re.IGNORECASE)[1]
-
-		EcritureDate = format_datetime(d.get("GlPostDate"), "yyyyMMdd")
-
-		account_number = [
-			account.account_number for account in accounts if account.name == d.get("account")
-		]
-		if account_number[0] is not None:
-			CompteNum = account_number[0]
-		else:
-			frappe.throw(
-				_(
-					"Account number for account {0} is not available.<br> Please setup your Chart of Accounts correctly."
-				).format(d.get("account"))
-			)
-
-		if d.get("party_type") == "Customer":
-			CompAuxNum = d.get("cusName")
-			CompAuxLib = d.get("customer_name")
-
-		elif d.get("party_type") == "Supplier":
-			CompAuxNum = d.get("supName")
-			CompAuxLib = d.get("supplier_name")
-
-		elif d.get("party_type") == "Employee":
-			CompAuxNum = d.get("empName")
-			CompAuxLib = d.get("employee_name")
-
-		elif d.get("party_type") == "Student":
-			CompAuxNum = d.get("stuName")
-			CompAuxLib = d.get("student_name")
-
-		elif d.get("party_type") == "Member":
-			CompAuxNum = d.get("memName")
-			CompAuxLib = d.get("member_name")
-
-		else:
-			CompAuxNum = ""
-			CompAuxLib = ""
-
-		ValidDate = format_datetime(d.get("GlPostDate"), "yyyyMMdd")
-
-		PieceRef = d.get("voucher_no") or "Sans Reference"
-
-		# EcritureLib is the reference title unless it is an opening entry
-		if d.get("is_opening") == "Yes":
-			EcritureLib = _("Opening Entry Journal")
-		if d.get("voucher_type") == "Sales Invoice":
-			EcritureLib = d.get("InvTitle")
-		elif d.get("voucher_type") == "Purchase Invoice":
-			EcritureLib = d.get("PurTitle")
-		elif d.get("voucher_type") == "Journal Entry":
-			EcritureLib = d.get("JnlTitle")
-		elif d.get("voucher_type") == "Payment Entry":
-			EcritureLib = d.get("PayTitle")
-		else:
-			EcritureLib = d.get("voucher_type")
-
-		PieceDate = format_datetime(d.get("GlPostDate"), "yyyyMMdd")
-
-		debit = "{:.2f}".format(d.get("debit")).replace(".", ",")
-
-		credit = "{:.2f}".format(d.get("credit")).replace(".", ",")
-
-		Idevise = d.get("account_currency")
-
-		if Idevise != company_currency:
-			Montantdevise = (
-				"{:.2f}".format(d.get("debitCurr")).replace(".", ",")
-				if d.get("debitCurr") != 0
-				else "{:.2f}".format(d.get("creditCurr")).replace(".", ",")
-			)
-		else:
-			Montantdevise = (
-				"{:.2f}".format(d.get("debit")).replace(".", ",")
-				if d.get("debit") != 0
-				else "{:.2f}".format(d.get("credit")).replace(".", ",")
-			)
-
-		row = [
-			JournalCode,
-			d.get("voucher_type"),
-			EcritureNum,
-			EcritureDate,
-			CompteNum,
-			d.get("account"),
-			CompAuxNum,
-			CompAuxLib,
-			PieceRef,
-			PieceDate,
-			EcritureLib,
-			debit,
-			credit,
-			"",
-			"",
-			ValidDate,
-			Montantdevise,
-			Idevise,
-		]
-
-		result.append(row)
-
-	return result
diff --git a/erpnext/regional/united_arab_emirates/utils.py b/erpnext/regional/united_arab_emirates/utils.py
index a910af6..efeaeed 100644
--- a/erpnext/regional/united_arab_emirates/utils.py
+++ b/erpnext/regional/united_arab_emirates/utils.py
@@ -7,32 +7,32 @@
 
 
 def update_itemised_tax_data(doc):
+	# maybe this should be a standard function rather than a regional one
 	if not doc.taxes:
 		return
 
+	if not doc.items:
+		return
+
+	meta = frappe.get_meta(doc.items[0].doctype)
+	if not meta.has_field("tax_rate"):
+		return
+
 	itemised_tax = get_itemised_tax(doc.taxes)
 
 	for row in doc.items:
-		tax_rate = 0.0
-		item_tax_rate = 0.0
+		tax_rate, tax_amount = 0.0, 0.0
+		# dont even bother checking in item tax template as it contains both input and output accounts - double the tax rate
+		item_code = row.item_code or row.item_name
+		if itemised_tax.get(item_code):
+			for tax in itemised_tax.get(row.item_code).values():
+				_tax_rate = flt(tax.get("tax_rate", 0), row.precision("tax_rate"))
+				tax_amount += flt((row.net_amount * _tax_rate) / 100, row.precision("tax_amount"))
+				tax_rate += _tax_rate
 
-		if row.item_tax_rate:
-			item_tax_rate = frappe.parse_json(row.item_tax_rate)
-
-		# First check if tax rate is present
-		# If not then look up in item_wise_tax_detail
-		if item_tax_rate:
-			for account, rate in item_tax_rate.items():
-				tax_rate += rate
-		elif row.item_code and itemised_tax.get(row.item_code):
-			tax_rate = sum([tax.get("tax_rate", 0) for d, tax in itemised_tax.get(row.item_code).items()])
-
-		meta = frappe.get_meta(row.doctype)
-
-		if meta.has_field("tax_rate"):
-			row.tax_rate = flt(tax_rate, row.precision("tax_rate"))
-			row.tax_amount = flt((row.net_amount * tax_rate) / 100, row.precision("net_amount"))
-			row.total_amount = flt((row.net_amount + row.tax_amount), row.precision("total_amount"))
+		row.tax_rate = flt(tax_rate, row.precision("tax_rate"))
+		row.tax_amount = flt(tax_amount, row.precision("tax_amount"))
+		row.total_amount = flt((row.net_amount + row.tax_amount), row.precision("total_amount"))
 
 
 def get_account_currency(account):
diff --git a/erpnext/selling/doctype/customer/customer.json b/erpnext/selling/doctype/customer/customer.json
index 0f42def..40cab9f 100644
--- a/erpnext/selling/doctype/customer/customer.json
+++ b/erpnext/selling/doctype/customer/customer.json
@@ -181,7 +181,6 @@
    "oldfieldname": "customer_group",
    "oldfieldtype": "Link",
    "options": "Customer Group",
-   "reqd": 1,
    "search_index": 1
   },
   {
@@ -193,8 +192,7 @@
    "oldfieldname": "territory",
    "oldfieldtype": "Link",
    "options": "Territory",
-   "print_hide": 1,
-   "reqd": 1
+   "print_hide": 1
   },
   {
    "fieldname": "tax_id",
diff --git a/erpnext/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py
index d351c3c..a7a1aa2 100644
--- a/erpnext/selling/doctype/customer/customer.py
+++ b/erpnext/selling/doctype/customer/customer.py
@@ -15,14 +15,9 @@
 from frappe.model.naming import set_name_by_naming_series, set_name_from_naming_options
 from frappe.model.utils.rename_doc import update_linked_doctypes
 from frappe.utils import cint, cstr, flt, get_formatted_email, today
-from frappe.utils.nestedset import get_root_of
 from frappe.utils.user import get_users_with_role
 
-from erpnext.accounts.party import (  # noqa
-	get_dashboard_info,
-	get_timeline_data,
-	validate_party_accounts,
-)
+from erpnext.accounts.party import get_dashboard_info, validate_party_accounts  # noqa
 from erpnext.controllers.website_list_for_contact import add_role_for_portal_user
 from erpnext.utilities.transaction_base import TransactionBase
 
@@ -81,7 +76,6 @@
 		validate_party_accounts(self)
 		self.validate_credit_limit_on_change()
 		self.set_loyalty_program()
-		self.set_territory_and_group()
 		self.check_customer_group_change()
 		self.validate_default_bank_account()
 		self.validate_internal_customer()
@@ -140,12 +134,6 @@
 					_("{0} is not a company bank account").format(frappe.bold(self.default_bank_account))
 				)
 
-	def set_territory_and_group(self):
-		if not self.territory:
-			self.territory = get_root_of("Territory")
-		if not self.customer_group:
-			self.customer_group = get_root_of("Customer Group")
-
 	def validate_internal_customer(self):
 		if not self.is_internal_customer:
 			self.represents_company = ""
diff --git a/erpnext/selling/doctype/quotation_item/quotation_item.json b/erpnext/selling/doctype/quotation_item/quotation_item.json
index dde2f9b..5016f1f 100644
--- a/erpnext/selling/doctype/quotation_item/quotation_item.json
+++ b/erpnext/selling/doctype/quotation_item/quotation_item.json
@@ -132,7 +132,6 @@
    "oldfieldname": "description",
    "oldfieldtype": "Small Text",
    "print_width": "300px",
-   "reqd": 1,
    "width": "300px"
   },
   {
@@ -677,4 +676,4 @@
  "sort_order": "DESC",
  "states": [],
  "track_changes": 1
-}
\ No newline at end of file
+}
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index aae0fee..b91002e 100755
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -606,29 +606,37 @@
 
 
 def get_requested_item_qty(sales_order):
-	return frappe._dict(
-		frappe.db.sql(
-			"""
-		select sales_order_item, sum(qty)
-		from `tabMaterial Request Item`
-		where docstatus = 1
-			and sales_order = %s
-		group by sales_order_item
-	""",
-			sales_order,
-		)
-	)
+	result = {}
+	for d in frappe.db.get_all(
+		"Material Request Item",
+		filters={"docstatus": 1, "sales_order": sales_order},
+		fields=["sales_order_item", "sum(qty) as qty", "sum(received_qty) as received_qty"],
+		group_by="sales_order_item",
+	):
+		result[d.sales_order_item] = frappe._dict({"qty": d.qty, "received_qty": d.received_qty})
+
+	return result
 
 
 @frappe.whitelist()
 def make_material_request(source_name, target_doc=None):
 	requested_item_qty = get_requested_item_qty(source_name)
 
+	def get_remaining_qty(so_item):
+		return flt(
+			flt(so_item.qty)
+			- flt(requested_item_qty.get(so_item.name, {}).get("qty"))
+			- max(
+				flt(so_item.get("delivered_qty"))
+				- flt(requested_item_qty.get(so_item.name, {}).get("received_qty")),
+				0,
+			)
+		)
+
 	def update_item(source, target, source_parent):
 		# qty is for packed items, because packed items don't have stock_qty field
-		qty = source.get("qty")
 		target.project = source_parent.project
-		target.qty = qty - requested_item_qty.get(source.name, 0) - flt(source.get("delivered_qty"))
+		target.qty = get_remaining_qty(source)
 		target.stock_qty = flt(target.qty) * flt(target.conversion_factor)
 
 		args = target.as_dict().copy()
@@ -661,8 +669,8 @@
 			"Sales Order Item": {
 				"doctype": "Material Request Item",
 				"field_map": {"name": "sales_order_item", "parent": "sales_order"},
-				"condition": lambda doc: not frappe.db.exists("Product Bundle", doc.item_code)
-				and (doc.stock_qty - flt(doc.get("delivered_qty"))) > requested_item_qty.get(doc.name, 0),
+				"condition": lambda item: not frappe.db.exists("Product Bundle", item.item_code)
+				and get_remaining_qty(item) > 0,
 				"postprocess": update_item,
 			},
 		},
diff --git a/erpnext/selling/doctype/sales_order_item/sales_order_item.json b/erpnext/selling/doctype/sales_order_item/sales_order_item.json
index 07565c3..e6f7456 100644
--- a/erpnext/selling/doctype/sales_order_item/sales_order_item.json
+++ b/erpnext/selling/doctype/sales_order_item/sales_order_item.json
@@ -162,7 +162,6 @@
    "oldfieldname": "description",
    "oldfieldtype": "Small Text",
    "print_width": "300px",
-   "reqd": 1,
    "width": "300px"
   },
   {
@@ -906,4 +905,4 @@
  "sort_order": "DESC",
  "states": [],
  "track_changes": 1
-}
\ No newline at end of file
+}
diff --git a/erpnext/setup/doctype/currency_exchange/test_currency_exchange.py b/erpnext/setup/doctype/currency_exchange/test_currency_exchange.py
index 3b48c2b..8477984 100644
--- a/erpnext/setup/doctype/currency_exchange/test_currency_exchange.py
+++ b/erpnext/setup/doctype/currency_exchange/test_currency_exchange.py
@@ -121,6 +121,7 @@
 		# Update Currency Exchange Rate
 		settings = frappe.get_single("Currency Exchange Settings")
 		settings.service_provider = "exchangerate.host"
+		settings.access_key = "12345667890"
 		settings.save()
 
 		# Update exchange
diff --git a/erpnext/setup/doctype/employee/employee.json b/erpnext/setup/doctype/employee/employee.json
index 6cb4292..1143ccb 100644
--- a/erpnext/setup/doctype/employee/employee.json
+++ b/erpnext/setup/doctype/employee/employee.json
@@ -616,6 +616,7 @@
    "fieldname": "relieving_date",
    "fieldtype": "Date",
    "label": "Relieving Date",
+   "no_copy": 1,
    "mandatory_depends_on": "eval:doc.status == \"Left\"",
    "oldfieldname": "relieving_date",
    "oldfieldtype": "Date"
@@ -822,7 +823,7 @@
  "idx": 24,
  "image_field": "image",
  "links": [],
- "modified": "2023-03-30 15:57:05.174592",
+ "modified": "2023-10-04 10:57:05.174592",
  "modified_by": "Administrator",
  "module": "Setup",
  "name": "Employee",
@@ -870,4 +871,4 @@
  "sort_order": "DESC",
  "states": [],
  "title_field": "employee_name"
-}
\ No newline at end of file
+}
diff --git a/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json b/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json
index d3236ba..612d674 100644
--- a/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json
+++ b/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json
@@ -165,7 +165,6 @@
    "oldfieldname": "description",
    "oldfieldtype": "Small Text",
    "print_width": "300px",
-   "reqd": 1,
    "width": "300px"
   },
   {
@@ -903,4 +902,4 @@
  "sort_field": "modified",
  "sort_order": "DESC",
  "states": []
-}
\ No newline at end of file
+}
diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js
index bf3301f..9673a70 100644
--- a/erpnext/stock/doctype/material_request/material_request.js
+++ b/erpnext/stock/doctype/material_request/material_request.js
@@ -102,6 +102,12 @@
 
 		if (frm.doc.docstatus == 1 && frm.doc.status != 'Stopped') {
 			let precision = frappe.defaults.get_default("float_precision");
+
+			if (flt(frm.doc.per_received, precision) < 100) {
+				frm.add_custom_button(__('Stop'),
+					() => frm.events.update_status(frm, 'Stopped'));
+			}
+
 			if (flt(frm.doc.per_ordered, precision) < 100) {
 				let add_create_pick_list_button = () => {
 					frm.add_custom_button(__('Pick List'),
@@ -148,11 +154,6 @@
 				}
 
 				frm.page.set_inner_btn_group_as_primary(__('Create'));
-
-				// stop
-				frm.add_custom_button(__('Stop'),
-					() => frm.events.update_status(frm, 'Stopped'));
-
 			}
 		}
 
diff --git a/erpnext/stock/doctype/material_request_item/material_request_item.json b/erpnext/stock/doctype/material_request_item/material_request_item.json
index 770dacd..c585d6c 100644
--- a/erpnext/stock/doctype/material_request_item/material_request_item.json
+++ b/erpnext/stock/doctype/material_request_item/material_request_item.json
@@ -104,7 +104,6 @@
    "oldfieldname": "description",
    "oldfieldtype": "Text",
    "print_width": "250px",
-   "reqd": 1,
    "width": "250px"
   },
   {
@@ -472,4 +471,4 @@
  "sort_order": "DESC",
  "states": [],
  "track_changes": 1
-}
\ No newline at end of file
+}
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
index 2bb479b..6552cd7 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -37,6 +37,12 @@
 			}
 		});
 
+		frm.set_query("wip_composite_asset", "items", function() {
+			return {
+				filters: {'is_composite_asset': 1, 'docstatus': 0 }
+			}
+		});
+
 		frm.set_query("taxes_and_charges", function() {
 			return {
 				filters: {'company': frm.doc.company }
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json
index 912b908..c8a9e3e 100755
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json
@@ -464,6 +464,7 @@
    "depends_on": "eval:doc.is_subcontracted",
    "fieldname": "supplier_warehouse",
    "fieldtype": "Link",
+   "ignore_user_permissions": 1,
    "label": "Supplier Warehouse",
    "no_copy": 1,
    "oldfieldname": "supplier_warehouse",
@@ -1241,7 +1242,7 @@
  "idx": 261,
  "is_submittable": 1,
  "links": [],
- "modified": "2023-07-04 17:23:17.025390",
+ "modified": "2023-10-01 21:00:44.556816",
  "modified_by": "Administrator",
  "module": "Stock",
  "name": "Purchase Receipt",
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
index 04eff54..6afa86e 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -956,6 +956,10 @@
 
 		total_amount += total_billable_amount
 		total_billed_amount += flt(item.billed_amt)
+
+		if pr_doc.get("is_return") and not total_amount and total_billed_amount:
+			total_amount = total_billed_amount
+
 		if adjust_incoming_rate:
 			adjusted_amt = 0.0
 			if item.billed_amt and item.amount:
diff --git a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
index b7712ee..a8ef5e8 100644
--- a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
@@ -2060,6 +2060,32 @@
 		company.enable_provisional_accounting_for_non_stock_items = 0
 		company.save()
 
+	def test_purchase_return_status_with_debit_note(self):
+		pr = make_purchase_receipt(rejected_qty=10, received_qty=10, rate=100, do_not_save=1)
+		pr.items[0].qty = 0
+		pr.items[0].stock_qty = 0
+		pr.submit()
+
+		return_pr = make_purchase_receipt(
+			is_return=1,
+			return_against=pr.name,
+			qty=0,
+			rejected_qty=10 * -1,
+			received_qty=10 * -1,
+			do_not_save=1,
+		)
+		return_pr.items[0].qty = 0.0
+		return_pr.items[0].stock_qty = 0.0
+		return_pr.submit()
+
+		self.assertEqual(return_pr.status, "To Bill")
+
+		pi = make_purchase_invoice(return_pr.name)
+		pi.submit()
+
+		return_pr.reload()
+		self.assertEqual(return_pr.status, "Completed")
+
 
 def prepare_data_for_internal_transfer():
 	from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_internal_supplier
diff --git a/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json b/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json
index 5eb3656..d93d21c 100644
--- a/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json
+++ b/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json
@@ -117,6 +117,7 @@
   "accounting_details_section",
   "expense_account",
   "item_tax_rate",
+  "wip_composite_asset",
   "column_break_102",
   "provisional_expense_account",
   "accounting_dimensions_section",
@@ -186,7 +187,6 @@
    "oldfieldname": "description",
    "oldfieldtype": "Text",
    "print_width": "300px",
-   "reqd": 1,
    "width": "300px"
   },
   {
@@ -1056,12 +1056,18 @@
    "fieldname": "add_serial_batch_bundle",
    "fieldtype": "Button",
    "label": "Add Serial / Batch No"
+  },
+  {
+   "fieldname": "wip_composite_asset",
+   "fieldtype": "Link",
+   "label": "WIP Composite Asset",
+   "options": "Asset"
   }
  ],
  "idx": 1,
  "istable": 1,
  "links": [],
- "modified": "2023-08-11 16:16:16.504549",
+ "modified": "2023-10-03 21:11:50.547261",
  "modified_by": "Administrator",
  "module": "Stock",
  "name": "Purchase Receipt Item",
@@ -1072,4 +1078,4 @@
  "sort_field": "modified",
  "sort_order": "DESC",
  "states": []
-}
\ No newline at end of file
+}
diff --git a/erpnext/stock/doctype/stock_settings/stock_settings.json b/erpnext/stock/doctype/stock_settings/stock_settings.json
index 4fbc0eb..2052daa 100644
--- a/erpnext/stock/doctype/stock_settings/stock_settings.json
+++ b/erpnext/stock/doctype/stock_settings/stock_settings.json
@@ -428,7 +428,7 @@
  "index_web_pages_for_search": 1,
  "issingle": 1,
  "links": [],
- "modified": "2023-09-01 16:16:34.018947",
+ "modified": "2023-10-01 14:22:36.136111",
  "modified_by": "Administrator",
  "module": "Stock",
  "name": "Stock Settings",
@@ -442,6 +442,10 @@
    "role": "Stock Manager",
    "share": 1,
    "write": 1
+  },
+  {
+   "read": 1,
+   "role": "Sales User"
   }
  ],
  "quick_entry": 1,
@@ -449,4 +453,4 @@
  "sort_order": "ASC",
  "states": [],
  "track_changes": 1
-}
\ No newline at end of file
+}
diff --git a/erpnext/templates/includes/integrations/gocardless_checkout.js b/erpnext/templates/includes/integrations/gocardless_checkout.js
deleted file mode 100644
index b18d550..0000000
--- a/erpnext/templates/includes/integrations/gocardless_checkout.js
+++ /dev/null
@@ -1,24 +0,0 @@
-$(document).ready(function() {
-	var data = {{ frappe.form_dict | json }};
-	var doctype = "{{ reference_doctype }}"
-	var docname = "{{ reference_docname }}"
-
-	frappe.call({
-		method: "erpnext.templates.pages.integrations.gocardless_checkout.check_mandate",
-		freeze: true,
-		headers: {
-			"X-Requested-With": "XMLHttpRequest"
-		},
-		args: {
-			"data": JSON.stringify(data),
-			"reference_doctype": doctype,
-			"reference_docname": docname
-		},
-		callback: function(r) {
-			if (r.message) {
-				window.location.href = r.message.redirect_to
-			}
-		}
-	})
-
-})
diff --git a/erpnext/templates/includes/integrations/gocardless_confirmation.js b/erpnext/templates/includes/integrations/gocardless_confirmation.js
deleted file mode 100644
index fee1d2b..0000000
--- a/erpnext/templates/includes/integrations/gocardless_confirmation.js
+++ /dev/null
@@ -1,24 +0,0 @@
-$(document).ready(function() {
-	var redirect_flow_id = "{{ redirect_flow_id }}";
-	var doctype = "{{ reference_doctype }}";
-	var docname = "{{ reference_docname }}";
-
-	frappe.call({
-		method: "erpnext.templates.pages.integrations.gocardless_confirmation.confirm_payment",
-		freeze: true,
-		headers: {
-			"X-Requested-With": "XMLHttpRequest"
-		},
-		args: {
-			"redirect_flow_id": redirect_flow_id,
-			"reference_doctype": doctype,
-			"reference_docname": docname
-		},
-		callback: function(r) {
-			if (r.message) {
-				window.location.href = r.message.redirect_to;
-			}
-		}
-	});
-
-});
diff --git a/erpnext/templates/includes/transaction_row.html b/erpnext/templates/includes/transaction_row.html
index 72d498c..a498ba0 100644
--- a/erpnext/templates/includes/transaction_row.html
+++ b/erpnext/templates/includes/transaction_row.html
@@ -15,10 +15,14 @@
 				{{ doc.items_preview }}
 			</div>
 		</div>
-		{% if doc.get('grand_total') %}
+		{% if doc.is_rounded_total_disabled() and doc.get('grand_total') %}
 			<div class="col-sm-3 text-right font-weight-bold item-total">
 				{{ doc.get_formatted("grand_total") }}
 			</div>
+		{% elif doc.get('rounded_total') %}
+			<div class="col-sm-3 text-right font-weight-bold item-total">
+				{{ doc.get_formatted("rounded_total") }}
+			</div>
 		{% endif %}
 	</div>
 	<a class="transaction-item-link" href="/{{ pathname }}/{{ doc.name }}">Link</a>
diff --git a/erpnext/templates/pages/integrations/__init__.py b/erpnext/templates/pages/integrations/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/templates/pages/integrations/__init__.py
+++ /dev/null
diff --git a/erpnext/templates/pages/integrations/gocardless_checkout.html b/erpnext/templates/pages/integrations/gocardless_checkout.html
deleted file mode 100644
index 6072db4..0000000
--- a/erpnext/templates/pages/integrations/gocardless_checkout.html
+++ /dev/null
@@ -1,16 +0,0 @@
-{% extends "templates/web.html" %}
-
-{% block title %} Payment {% endblock %}
-
-{%- block header -%}{% endblock %}
-
-{% block script %}
-<script>{% include "templates/includes/integrations/gocardless_checkout.js" %}</script>
-{% endblock %}
-
-{%- block page_content -%}
-<p class='lead text-center'>
-	<span class='gocardless-loading'>{{ _("Loading Payment System") }}</span>
-</p>
-
-{% endblock %}
diff --git a/erpnext/templates/pages/integrations/gocardless_checkout.py b/erpnext/templates/pages/integrations/gocardless_checkout.py
deleted file mode 100644
index 655be52..0000000
--- a/erpnext/templates/pages/integrations/gocardless_checkout.py
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-import json
-
-import frappe
-from frappe import _
-from frappe.utils import flt, get_url
-
-from erpnext.erpnext_integrations.doctype.gocardless_settings.gocardless_settings import (
-	get_gateway_controller,
-	gocardless_initialization,
-)
-
-no_cache = 1
-
-expected_keys = (
-	"amount",
-	"title",
-	"description",
-	"reference_doctype",
-	"reference_docname",
-	"payer_name",
-	"payer_email",
-	"order_id",
-	"currency",
-)
-
-
-def get_context(context):
-	context.no_cache = 1
-
-	# all these keys exist in form_dict
-	if not (set(expected_keys) - set(frappe.form_dict.keys())):
-		for key in expected_keys:
-			context[key] = frappe.form_dict[key]
-
-		context["amount"] = flt(context["amount"])
-
-		gateway_controller = get_gateway_controller(context.reference_docname)
-		context["header_img"] = frappe.db.get_value(
-			"GoCardless Settings", gateway_controller, "header_img"
-		)
-
-	else:
-		frappe.redirect_to_message(
-			_("Some information is missing"),
-			_("Looks like someone sent you to an incomplete URL. Please ask them to look into it."),
-		)
-		frappe.local.flags.redirect_location = frappe.local.response.location
-		raise frappe.Redirect
-
-
-@frappe.whitelist(allow_guest=True)
-def check_mandate(data, reference_doctype, reference_docname):
-	data = json.loads(data)
-
-	client = gocardless_initialization(reference_docname)
-
-	payer = frappe.get_doc("Customer", data["payer_name"])
-
-	if payer.customer_type == "Individual" and payer.customer_primary_contact is not None:
-		primary_contact = frappe.get_doc("Contact", payer.customer_primary_contact)
-		prefilled_customer = {
-			"company_name": payer.name,
-			"given_name": primary_contact.first_name,
-		}
-		if primary_contact.last_name is not None:
-			prefilled_customer.update({"family_name": primary_contact.last_name})
-
-		if primary_contact.email_id is not None:
-			prefilled_customer.update({"email": primary_contact.email_id})
-		else:
-			prefilled_customer.update({"email": frappe.session.user})
-
-	else:
-		prefilled_customer = {"company_name": payer.name, "email": frappe.session.user}
-
-	success_url = get_url(
-		"./integrations/gocardless_confirmation?reference_doctype="
-		+ reference_doctype
-		+ "&reference_docname="
-		+ reference_docname
-	)
-
-	try:
-		redirect_flow = client.redirect_flows.create(
-			params={
-				"description": _("Pay {0} {1}").format(data["amount"], data["currency"]),
-				"session_token": frappe.session.user,
-				"success_redirect_url": success_url,
-				"prefilled_customer": prefilled_customer,
-			}
-		)
-
-		return {"redirect_to": redirect_flow.redirect_url}
-
-	except Exception as e:
-		frappe.log_error("GoCardless Payment Error")
-		return {"redirect_to": "/integrations/payment-failed"}
diff --git a/erpnext/templates/pages/integrations/gocardless_confirmation.html b/erpnext/templates/pages/integrations/gocardless_confirmation.html
deleted file mode 100644
index d961c63..0000000
--- a/erpnext/templates/pages/integrations/gocardless_confirmation.html
+++ /dev/null
@@ -1,16 +0,0 @@
-{% extends "templates/web.html" %}
-
-{% block title %} Payment {% endblock %}
-
-{%- block header -%}{% endblock %}
-
-{% block script %}
-<script>{% include "templates/includes/integrations/gocardless_confirmation.js" %}</script>
-{% endblock %}
-
-{%- block page_content -%}
-<p class='lead text-center'>
-	<span class='gocardless-loading'>{{ _("Payment Confirmation") }}</span>
-</p>
-
-{% endblock %}
diff --git a/erpnext/templates/pages/integrations/gocardless_confirmation.py b/erpnext/templates/pages/integrations/gocardless_confirmation.py
deleted file mode 100644
index 559aa48..0000000
--- a/erpnext/templates/pages/integrations/gocardless_confirmation.py
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-import frappe
-from frappe import _
-
-from erpnext.erpnext_integrations.doctype.gocardless_settings.gocardless_settings import (
-	get_gateway_controller,
-	gocardless_initialization,
-)
-
-no_cache = 1
-
-expected_keys = ("redirect_flow_id", "reference_doctype", "reference_docname")
-
-
-def get_context(context):
-	context.no_cache = 1
-
-	# all these keys exist in form_dict
-	if not (set(expected_keys) - set(frappe.form_dict.keys())):
-		for key in expected_keys:
-			context[key] = frappe.form_dict[key]
-
-	else:
-		frappe.redirect_to_message(
-			_("Some information is missing"),
-			_("Looks like someone sent you to an incomplete URL. Please ask them to look into it."),
-		)
-		frappe.local.flags.redirect_location = frappe.local.response.location
-		raise frappe.Redirect
-
-
-@frappe.whitelist(allow_guest=True)
-def confirm_payment(redirect_flow_id, reference_doctype, reference_docname):
-
-	client = gocardless_initialization(reference_docname)
-
-	try:
-		redirect_flow = client.redirect_flows.complete(
-			redirect_flow_id, params={"session_token": frappe.session.user}
-		)
-
-		confirmation_url = redirect_flow.confirmation_url
-		gocardless_success_page = frappe.get_hooks("gocardless_success_page")
-		if gocardless_success_page:
-			confirmation_url = frappe.get_attr(gocardless_success_page[-1])(
-				reference_doctype, reference_docname
-			)
-
-		data = {
-			"mandate": redirect_flow.links.mandate,
-			"customer": redirect_flow.links.customer,
-			"redirect_to": confirmation_url,
-			"redirect_message": "Mandate successfully created",
-			"reference_doctype": reference_doctype,
-			"reference_docname": reference_docname,
-		}
-
-		try:
-			create_mandate(data)
-		except Exception as e:
-			frappe.log_error("GoCardless Mandate Registration Error")
-
-		gateway_controller = get_gateway_controller(reference_docname)
-		frappe.get_doc("GoCardless Settings", gateway_controller).create_payment_request(data)
-
-		return {"redirect_to": confirmation_url}
-
-	except Exception as e:
-		frappe.log_error("GoCardless Payment Error")
-		return {"redirect_to": "/integrations/payment-failed"}
-
-
-def create_mandate(data):
-	data = frappe._dict(data)
-	frappe.logger().debug(data)
-
-	mandate = data.get("mandate")
-
-	if frappe.db.exists("GoCardless Mandate", mandate):
-		return
-
-	else:
-		reference_doc = frappe.db.get_value(
-			data.get("reference_doctype"),
-			data.get("reference_docname"),
-			["reference_doctype", "reference_name"],
-			as_dict=1,
-		)
-		erpnext_customer = frappe.db.get_value(
-			reference_doc.reference_doctype, reference_doc.reference_name, ["customer_name"], as_dict=1
-		)
-
-		try:
-			frappe.get_doc(
-				{
-					"doctype": "GoCardless Mandate",
-					"mandate": mandate,
-					"customer": erpnext_customer.customer_name,
-					"gocardless_customer": data.get("customer"),
-				}
-			).insert(ignore_permissions=True)
-
-		except Exception:
-			frappe.log_error("Gocardless: Unable to create mandate")
diff --git a/erpnext/tests/test_regional.py b/erpnext/tests/test_regional.py
index 2c16def..55c8bb7 100644
--- a/erpnext/tests/test_regional.py
+++ b/erpnext/tests/test_regional.py
@@ -14,6 +14,3 @@
 	def test_regional_overrides(self):
 		frappe.flags.country = "Maldives"
 		self.assertEqual(test_method(), "original")
-
-		frappe.flags.country = "France"
-		self.assertEqual(test_method(), "overridden")
diff --git a/erpnext/translations/af.csv b/erpnext/translations/af.csv
index 218bd69..d4b823d 100644
--- a/erpnext/translations/af.csv
+++ b/erpnext/translations/af.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Outo-herhaal dokument opgedateer,
 Automotive,Automotive,
 Available,beskikbaar,
-Available Leaves,Beskikbare blare,
 Available Qty,Beskikbare hoeveelheid,
 Available Selling,Beskikbaar verkoop,
 Available for use date is required,Beskikbaar vir gebruik datum is nodig,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub-sinkronisasie-ID,
 Human Resource,Menslike hulpbronne,
 Human Resources,Menslike hulpbronne,
-IFSC Code,IFSC-kode,
 IGST Amount,IGST Bedrag,
 IP Address,IP adres,
 ITC Available (whether in full op part),ITC beskikbaar (of dit volledig is),
@@ -1666,7 +1664,6 @@
 Other,ander,
 Other Reports,Ander verslae,
 "Other outward supplies(Nil rated,Exempted)","Ander voorrade (nul beoordeel, vrygestel)",
-Others,ander,
 Out Qty,Uit Aantal,
 Out Value,Uitwaarde,
 Out of Order,Buite werking,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Totaal (Sonder Belasting),
 Total Achieved,Totaal behaal,
 Total Actual,Totaal Werklik,
-Total Allocated Leaves,Totale toegekende blare,
 Total Amount,Totale bedrag,
 Total Amount Credited,Totale bedrag gekrediteer,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Totale Toepaslike Koste in Aankoopontvangste-items moet dieselfde wees as Totale Belasting en Heffings,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Laai jou briefhoof en logo op. (jy kan dit later wysig).,
 Upper Income,Boonste Inkomste,
 Use Sandbox,Gebruik Sandbox,
-Used Leaves,Gebruikte Blare,
 User,gebruiker,
 User ID,Gebruikers-ID,
 User ID not set for Employee {0},Gebruiker ID nie ingestel vir Werknemer {0},
@@ -7949,12 +7944,10 @@
 Approvers,Betogers,
 The first Approver in the list will be set as the default Approver.,Die eerste goedkeuring in die lys sal as die standaard goedkeuring gestel word.,
 Shift Request Approver,Goedkeuring vir skofversoek,
-PAN Number,PAN-nommer,
 Provident Fund Account,Voorsorgfondsrekening,
 MICR Code,MICR-kode,
 Repay unclaimed amount from salary,Betaal onopgeëiste bedrag terug van die salaris,
 Deduction from salary,Aftrekking van salaris,
-Expired Leaves,Verlore blare,
 If this is not checked the loan by default will be considered as a Demand Loan,"As dit nie gekontroleer word nie, sal die lening by verstek as &#39;n vraaglening beskou word",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Hierdie rekening word gebruik om lenings van die lener terug te betaal en ook om lenings aan die lener uit te betaal,
 This account is capital account which is used to allocate capital for loan disbursal account ,Hierdie rekening is &#39;n kapitaalrekening wat gebruik word om kapitaal toe te ken vir die uitbetaling van lenings,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Is verpligtend,
 WhatsApp,WhatsApp,
 Make a call,Maak &#39;n oproep,
+Approve,goed te keur,
+Reject,verwerp,
diff --git a/erpnext/translations/am.csv b/erpnext/translations/am.csv
index 3ea1c78..764868d 100644
--- a/erpnext/translations/am.csv
+++ b/erpnext/translations/am.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,በቀጥታ ተዘምኗል,
 Automotive,አውቶሞቲቭ,
 Available,ይገኛል,
-Available Leaves,የሚገኝ ቅጠሎች,
 Available Qty,ይገኛል ብዛት,
 Available Selling,ሊሸጥ የሚቻል,
 Available for use date is required,ለመጠቀም ቀን ሊገኝ ይችላል,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,የሃብ ማመሳሰል መታወቂያ,
 Human Resource,የሰው ኃይል,
 Human Resources,የሰው ሀይል አስተዳደር,
-IFSC Code,የ IFSC ኮድ,
 IGST Amount,IGST ሂሳብ,
 IP Address,የአይፒ አድራሻ,
 ITC Available (whether in full op part),ITC አለ (በሙሉ ኦፕሬም ክፍል ውስጥም ቢሆን),
@@ -1666,7 +1664,6 @@
 Other,ሌላ,
 Other Reports,ሌሎች ሪፖርቶች,
 "Other outward supplies(Nil rated,Exempted)",ሌሎች የውጪ አቅርቦቶች (ኒል ደረጃ የተሰጠው ፣ ነፃ ...),
-Others,ሌሎች,
 Out Qty,ብዛት ውጪ,
 Out Value,ውጪ ዋጋ,
 Out of Order,ከትዕዛዝ ውጪ,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),ጠቅላላ (ያለ ግብር),
 Total Achieved,ጠቅላላ አሳክቷል,
 Total Actual,ትክክለኛ ጠቅላላ,
-Total Allocated Leaves,ጠቅላላ ድጐማዎችን,
 Total Amount,አጠቃላይ ድምሩ,
 Total Amount Credited,ጠቅላላ መጠን ተቀጠረ,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,የግዢ ደረሰኝ ንጥሎች ሰንጠረዥ ውስጥ ጠቅላላ የሚመለከታቸው ክፍያዎች ጠቅላላ ግብሮች እና ክፍያዎች እንደ አንድ አይነት መሆን አለበት,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,የእርስዎን ደብዳቤ ራስ እና አርማ ይስቀሉ. (ቆይተው አርትዕ ማድረግ ይችላሉ).,
 Upper Income,የላይኛው ገቢ,
 Use Sandbox,ይጠቀሙ ማጠሪያ,
-Used Leaves,ጥቅም ላይ የዋሉ ቅጠሎች,
 User,ተጠቃሚው,
 User ID,የተጠቃሚው መለያ,
 User ID not set for Employee {0},የተጠቃሚ መታወቂያ ሰራተኛ ለ ካልተዋቀረ {0},
@@ -7949,12 +7944,10 @@
 Approvers,አወዛጋቢ,
 The first Approver in the list will be set as the default Approver.,በዝርዝሩ ውስጥ የመጀመሪያው አጽዳቂ እንደ ነባሪው ማጽደቂያ ይቀመጣል።,
 Shift Request Approver,የሺፍት ጥያቄ ማጽደቅ,
-PAN Number,የፓን ቁጥር,
 Provident Fund Account,የፕሮቪደንት ፈንድ ሂሳብ,
 MICR Code,MICR ኮድ,
 Repay unclaimed amount from salary,ከደመወዝ ያልተጠየቀውን መጠን ይክፈሉ,
 Deduction from salary,ከደመወዝ መቀነስ,
-Expired Leaves,ጊዜው ያለፈባቸው ቅጠሎች,
 If this is not checked the loan by default will be considered as a Demand Loan,ይህ ካልተረጋገጠ ብድሩ በነባሪነት እንደ ብድር ይቆጠራል,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,ይህ ሂሳብ ከተበዳሪው የብድር ክፍያዎችን ለማስያዝ እና እንዲሁም ለተበዳሪው ብድሮችን ለማሰራጨት ያገለግላል,
 This account is capital account which is used to allocate capital for loan disbursal account ,ይህ አካውንት ለብድር ማስከፈያ ሂሳብ ካፒታል ለመመደብ የሚያገለግል የካፒታል ሂሳብ ነው,
@@ -8748,3 +8741,5 @@
 Is Mandatory,አስገዳጅ ነው,
 WhatsApp,ዋትስአፕ,
 Make a call,ደውል,
+Approve,ማጽደቅ,
+Reject,አይቀበሉ,
diff --git a/erpnext/translations/ar.csv b/erpnext/translations/ar.csv
index 5858a25..4e03a18 100644
--- a/erpnext/translations/ar.csv
+++ b/erpnext/translations/ar.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,تكرار تلقائي للمستندات المحدثة,
 Automotive,سيارات,
 Available,متاح,
-Available Leaves,المغادارت والاجازات المتاحة,
 Available Qty,الكمية المتاحة,
 Available Selling,المبيعات المتاحة,
 Available for use date is required,مطلوب تاريخ متاح للاستخدام,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,معرف مزامنة المحور,
 Human Resource,Human Resource,
 Human Resources,الموارد البشرية,
-IFSC Code,رمز IFSC,
 IGST Amount,كمية IGST,
 IP Address,عنوان IP,
 ITC Available (whether in full op part),مركز التجارة الدولية متاح (سواء في جزء المرجع الكامل),
@@ -1666,7 +1664,6 @@
 Other,آخر,
 Other Reports,تقارير أخرى,
 "Other outward supplies(Nil rated,Exempted)",اللوازم الخارجية الأخرى (بدون تقييم ، معفاة),
-Others,بدلات أخرى,
 Out Qty,كمية خارجة,
 Out Value,القيمة الخارجه,
 Out of Order,خارج عن السيطرة,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),الإجمالي (بدون ضريبة),
 Total Achieved,الإجمالي المحقق,
 Total Actual,الإجمالي الفعلي,
-Total Allocated Leaves,مجموع الأوراق المخصصة,
 Total Amount,الاعتماد الأساسي,
 Total Amount Credited,مجموع المبلغ المعتمد,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,مجموع الرسوم المطبقة في شراء طاولة إيصال عناصر يجب أن يكون نفس مجموع الضرائب والرسوم,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,تحميل رئيس رسالتكم والشعار. (يمكنك تحريرها لاحقا).,
 Upper Income,أعلى دخل,
 Use Sandbox,استخدام ساندبوكس,
-Used Leaves,مغادرات مستخدمة,
 User,المستعمل,
 User ID,تعريف المستخدم,
 User ID not set for Employee {0},هوية المستخدم لم يتم تعيين موظف ل {0},
@@ -7949,12 +7944,10 @@
 Approvers,الموافقون,
 The first Approver in the list will be set as the default Approver.,سيتم تعيين الموافق الأول في القائمة باعتباره الموافق الافتراضي.,
 Shift Request Approver,الموافق على طلب التحول,
-PAN Number,رقم PAN,
 Provident Fund Account,حساب صندوق الادخار,
 MICR Code,كود MICR,
 Repay unclaimed amount from salary,سداد المبلغ غير المطالب به من الراتب,
 Deduction from salary,خصم من الراتب,
-Expired Leaves,أوراق منتهية الصلاحية,
 If this is not checked the loan by default will be considered as a Demand Loan,إذا لم يتم التحقق من ذلك ، فسيتم اعتبار القرض بشكل افتراضي كقرض تحت الطلب,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,يستخدم هذا الحساب لحجز أقساط سداد القرض من المقترض وأيضًا صرف القروض للمقترض,
 This account is capital account which is used to allocate capital for loan disbursal account ,هذا الحساب هو حساب رأس المال الذي يستخدم لتخصيص رأس المال لحساب صرف القرض,
@@ -8748,3 +8741,5 @@
 Is Mandatory,إلزامي,
 WhatsApp,ال WhatsApp,
 Make a call,إجراء مكالمة,
+Approve,وافق,
+Reject,رفض,
diff --git a/erpnext/translations/bg.csv b/erpnext/translations/bg.csv
index 8c94c5c..8dff755 100644
--- a/erpnext/translations/bg.csv
+++ b/erpnext/translations/bg.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Автоматичното повторение на документа е актуализиран,
 Automotive,автомобилен,
 Available,Наличен,
-Available Leaves,Налични листа,
 Available Qty,В наличност Количество,
 Available Selling,Налични продажби,
 Available for use date is required,Необходима е дата за употреба,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Идент,
 Human Resource,Човешки ресурси,
 Human Resources,Човешки ресурси,
-IFSC Code,Кодекс на IFSC,
 IGST Amount,IGST Сума,
 IP Address,IP адрес,
 ITC Available (whether in full op part),Наличен ITC (независимо дали в пълната част),
@@ -1666,7 +1664,6 @@
 Other,Друг,
 Other Reports,Други справки,
 "Other outward supplies(Nil rated,Exempted)","Други външни доставки (с нулева оценка, освободени)",
-Others,Други,
 Out Qty,Изх. Количество,
 Out Value,Изх. стойност,
 Out of Order,Извънредно,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Общо (без данъци),
 Total Achieved,Общо постигнати,
 Total Actual,Общо Край,
-Total Allocated Leaves,Общо разпределени листа,
 Total Amount,Обща сума,
 Total Amount Credited,Общата сума е кредитирана,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,"Общо приложими такси в Покупка получаване артикули маса трябва да са същите, както Общо данъци и такси",
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Качете ваш дизайн за заглавно писмо и лого. (Можете да ги редактирате по-късно).,
 Upper Income,Upper подоходно,
 Use Sandbox,Използвайте Sandbox,
-Used Leaves,Използвани листа,
 User,потребител,
 User ID,User ID,
 User ID not set for Employee {0},User ID не е конфигуриран за служител {0},
@@ -7949,12 +7944,10 @@
 Approvers,Одобряващи,
 The first Approver in the list will be set as the default Approver.,Първият одобряващ в списъка ще бъде зададен като одобряващ по подразбиране.,
 Shift Request Approver,Одобряващ заявка за смяна,
-PAN Number,Номер на PAN,
 Provident Fund Account,Провиден фонд,
 MICR Code,MICR код,
 Repay unclaimed amount from salary,Изплатете непотърсена сума от заплата,
 Deduction from salary,Приспадане от заплата,
-Expired Leaves,Листа с изтекъл срок на годност,
 If this is not checked the loan by default will be considered as a Demand Loan,"Ако това не е отметнато, заемът по подразбиране ще се счита за кредит за търсене",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,"Тази сметка се използва за резервиране на изплащане на заеми от кредитополучателя, както и за изплащане на заеми на кредитополучателя",
 This account is capital account which is used to allocate capital for loan disbursal account ,"Тази сметка е капиталова сметка, която се използва за разпределяне на капитал за сметка за оттегляне на заеми",
@@ -8748,3 +8741,5 @@
 Is Mandatory,Задължително,
 WhatsApp,WhatsApp,
 Make a call,Обадете се,
+Approve,одобрявам,
+Reject,Отхвърляне,
diff --git a/erpnext/translations/bn.csv b/erpnext/translations/bn.csv
index 49617da..8a698df 100644
--- a/erpnext/translations/bn.csv
+++ b/erpnext/translations/bn.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,স্বতঃ পুনরাবৃত্ত নথি আপডেট করা হয়েছে,
 Automotive,স্বয়ংচালিত,
 Available,উপলভ্য,
-Available Leaves,উপলব্ধ পাতা,
 Available Qty,প্রাপ্তিসাধ্য Qty,
 Available Selling,উপলভ্য বিক্রি,
 Available for use date is required,ব্যবহারের তারিখের জন্য উপলভ্য প্রয়োজন,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,হাব সিঙ্ক আইডি,
 Human Resource,মানব সম্পদ,
 Human Resources,মানব সম্পদ,
-IFSC Code,আইএফসিসি কোড,
 IGST Amount,IGST পরিমাণ,
 IP Address,আইপি ঠিকানা,
 ITC Available (whether in full op part),আইটিসি উপলব্ধ (সম্পূর্ণ বিকল্প অংশে থাকুক না কেন),
@@ -1666,7 +1664,6 @@
 Other,অন্যান্য,
 Other Reports,অন্যান্য রিপোর্ট,
 "Other outward supplies(Nil rated,Exempted)","অন্যান্য বাহ্যিক সরবরাহ (নিল রেটড, অব্যাহতিপ্রাপ্ত)",
-Others,অন্যরা,
 Out Qty,Qty আউট,
 Out Value,আউট মূল্য,
 Out of Order,অর্ডার আউট,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),মোট (কর ছাড়),
 Total Achieved,মোট অর্জন,
 Total Actual,প্রকৃত মোট,
-Total Allocated Leaves,মোট বরাদ্দ পাতা,
 Total Amount,মোট পরিমাণ,
 Total Amount Credited,মোট পরিমাণ কৃতিত্ব,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,ক্রয় রশিদ সামগ্রী টেবিলের মোট প্রযোজ্য চার্জ মোট কর ও চার্জ হিসাবে একই হতে হবে,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,আপনার চিঠি মাথা এবং লোগো আপলোড করুন. (আপনি তাদের পরে সম্পাদনা করতে পারেন).,
 Upper Income,আপার আয়,
 Use Sandbox,ব্যবহারের স্যান্ডবক্স,
-Used Leaves,ব্যবহৃত পাখি,
 User,ব্যবহারকারী,
 User ID,ব্যবহারকারী আইডি,
 User ID not set for Employee {0},ইউজার আইডি কর্মচারী জন্য নির্ধারণ করে না {0},
@@ -7949,12 +7944,10 @@
 Approvers,বিতর্ক,
 The first Approver in the list will be set as the default Approver.,তালিকার প্রথম অনুমোদিতটি ডিফল্ট অনুমোদনকারী হিসাবে সেট করা হবে।,
 Shift Request Approver,শিফট অনুরোধ অনুমোদনকারী,
-PAN Number,প্যান নম্বর,
 Provident Fund Account,প্রভিডেন্ট ফান্ড অ্যাকাউন্ট,
 MICR Code,এমআইসিআর কোড,
 Repay unclaimed amount from salary,বেতন থেকে দায়হীন পরিমাণ পরিশোধ করুন ay,
 Deduction from salary,বেতন থেকে ছাড়,
-Expired Leaves,মেয়াদ শেষ হয়ে গেছে,
 If this is not checked the loan by default will be considered as a Demand Loan,এটি যদি চেক না করা হয় তবে ডিফল্ট হিসাবে loanণকে ডিমান্ড anণ হিসাবে বিবেচনা করা হবে,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,এই অ্যাকাউন্টটি orণগ্রহীতা থেকে repণ পরিশোধের বুকিং এবং orণগ্রহীতাকে loansণ বিতরণের জন্য ব্যবহৃত হয়,
 This account is capital account which is used to allocate capital for loan disbursal account ,এই অ্যাকাউন্টটি মূলধন অ্যাকাউন্ট যা disণ বিতরণ অ্যাকাউন্টের জন্য মূলধন বরাদ্দ করতে ব্যবহৃত হয়,
@@ -8748,3 +8741,5 @@
 Is Mandatory,আবশ্যক,
 WhatsApp,হোয়াটসঅ্যাপ,
 Make a call,ফোন করুন,
+Approve,অনুমোদন করা,
+Reject,প্রত্যাখ্যান,
diff --git a/erpnext/translations/bs.csv b/erpnext/translations/bs.csv
index 0805228..7ba4a88 100644
--- a/erpnext/translations/bs.csv
+++ b/erpnext/translations/bs.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Automatsko ponavljanje dokumenta je ažurirano,
 Automotive,Automobilska industrija,
 Available,Dostupno,
-Available Leaves,Raspoložive liste,
 Available Qty,Dostupno Količina,
 Available Selling,Dostupna prodaja,
 Available for use date is required,Potreban je datum upotrebe,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,Human Resource,
 Human Resources,Ljudski resursi,
-IFSC Code,IFSC kod,
 IGST Amount,IGST Iznos,
 IP Address,IP adresa,
 ITC Available (whether in full op part),Dostupan ITC (bilo u cjelini op. Dio),
@@ -1666,7 +1664,6 @@
 Other,Drugi,
 Other Reports,Ostali izveštaji,
 "Other outward supplies(Nil rated,Exempted)","Ostale vanjske zalihe (Nil ocijenjeno, Izuzeti)",
-Others,Drugi,
 Out Qty,Od kol,
 Out Value,out vrijednost,
 Out of Order,Ne radi,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Ukupno (bez poreza),
 Total Achieved,Ukupno Ostvareni,
 Total Actual,Ukupno Actual,
-Total Allocated Leaves,Ukupno izdvojene liste,
 Total Amount,Ukupan iznos,
 Total Amount Credited,Ukupan iznos kredita,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Ukupno Primjenjivo Optužbe na račun za prodaju Predmeti sto mora biti isti kao Ukupni porezi i naknada,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Unos glavu pismo i logo. (Možete ih kasnije uređivanje).,
 Upper Income,Viši Prihodi,
 Use Sandbox,Koristite Sandbox,
-Used Leaves,Korišćeni listovi,
 User,User,
 User ID,Korisnički ID,
 User ID not set for Employee {0},Korisnik ID nije postavljen za zaposlenika {0},
@@ -7949,12 +7944,10 @@
 Approvers,Odobrivači,
 The first Approver in the list will be set as the default Approver.,Prvi odobravatelj na listi postavit će se kao zadani odobravatelj.,
 Shift Request Approver,Odobrivač zahtjeva za smjenom,
-PAN Number,PAN broj,
 Provident Fund Account,Račun osiguravajućeg fonda,
 MICR Code,MICR kod,
 Repay unclaimed amount from salary,Otplatite neiskorišteni iznos iz plate,
 Deduction from salary,Odbitak od plate,
-Expired Leaves,Isteklo lišće,
 If this is not checked the loan by default will be considered as a Demand Loan,"Ako ovo nije potvrđeno, zajam će se prema zadanim postavkama smatrati zajmom na zahtjev",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Ovaj račun koristi se za rezerviranje otplate zajma od zajmoprimca i za isplatu zajmova zajmoprimcu,
 This account is capital account which is used to allocate capital for loan disbursal account ,Ovaj račun je račun kapitala koji se koristi za alokaciju kapitala za račun izdvajanja kredita,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Je obavezna,
 WhatsApp,WhatsApp,
 Make a call,Pozovite,
+Approve,odobriti,
+Reject,odbiti,
diff --git a/erpnext/translations/ca.csv b/erpnext/translations/ca.csv
index ba108e2..cce1f3a 100644
--- a/erpnext/translations/ca.csv
+++ b/erpnext/translations/ca.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,S&#39;ha actualitzat el document de repetició automàtica,
 Automotive,Automòbil,
 Available,Disponible,
-Available Leaves,Fulles disponibles,
 Available Qty,Disponible Quantitat,
 Available Selling,Venda disponible,
 Available for use date is required,Disponible per a la data d&#39;ús,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Identificador de sincronització del concentrador,
 Human Resource,Recursos humans,
 Human Resources,Recursos humans,
-IFSC Code,Codi IFSC,
 IGST Amount,Import de l&#39;IGST,
 IP Address,Adreça IP,
 ITC Available (whether in full op part),TIC disponible (en qualsevol part opcional),
@@ -1666,7 +1664,6 @@
 Other,Un altre,
 Other Reports,Altres informes,
 "Other outward supplies(Nil rated,Exempted)","Altres subministraments externs (Nil, eximitat)",
-Others,Altres,
 Out Qty,Quantitat de sortida,
 Out Value,Valor fora,
 Out of Order,No funciona,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Total (sense impostos),
 Total Achieved,Total aconseguit,
 Total Actual,Actual total,
-Total Allocated Leaves,Total Allocated Leaves,
 Total Amount,Quantitat total,
 Total Amount Credited,Import total acreditat,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Total d&#39;comissions aplicables en la compra Taula de rebuts Els articles han de ser iguals que les taxes totals i càrrecs,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Puja el teu cap lletra i logotip. (Pots editar més tard).,
 Upper Income,Ingrés Alt,
 Use Sandbox,ús Sandbox,
-Used Leaves,Fulles utilitzades,
 User,Usuari,
 User ID,ID d'usuari,
 User ID not set for Employee {0},ID d'usuari no entrat per l'Empleat {0},
@@ -7949,12 +7944,10 @@
 Approvers,Aprovadors,
 The first Approver in the list will be set as the default Approver.,El primer aprovador de la llista s&#39;establirà com a aprovador predeterminat.,
 Shift Request Approver,Aprovador de sol·licituds de torn,
-PAN Number,Número PAN,
 Provident Fund Account,Compte de fons de previsió,
 MICR Code,Codi MICR,
 Repay unclaimed amount from salary,Reemborsar l’import no reclamat del salari,
 Deduction from salary,Deducció del salari,
-Expired Leaves,Fulles caducades,
 If this is not checked the loan by default will be considered as a Demand Loan,"Si no es comprova això, el préstec per defecte es considerarà un préstec a la demanda",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Aquest compte s’utilitza per reservar els pagaments de préstecs del prestatari i també per desemborsar préstecs al prestatari,
 This account is capital account which is used to allocate capital for loan disbursal account ,Aquest compte és un compte de capital que s’utilitza per assignar capital per al compte de desemborsament del préstec,
@@ -8748,3 +8741,5 @@
 Is Mandatory,És obligatori,
 WhatsApp,Què tal,
 Make a call,Fer una trucada,
+Approve,aprovar,
+Reject,Rebutjar,
diff --git a/erpnext/translations/cs.csv b/erpnext/translations/cs.csv
index 4cd3ac5..1072ed3 100644
--- a/erpnext/translations/cs.csv
+++ b/erpnext/translations/cs.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Dokument byl aktualizován automaticky,
 Automotive,Automobilový,
 Available,K dispozici,
-Available Leaves,Dostupné listy,
 Available Qty,Množství k dispozici,
 Available Selling,Dostupné prodeje,
 Available for use date is required,K dispozici je datum k dispozici pro použití,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,ID synchronizace Hubu,
 Human Resource,Lidské zdroje,
 Human Resources,Lidské zdroje,
-IFSC Code,Kód IFSC,
 IGST Amount,IGST částka,
 IP Address,IP adresa,
 ITC Available (whether in full op part),ITC k dispozici (ať už v plné op části),
@@ -1666,7 +1664,6 @@
 Other,Ostatní,
 Other Reports,Ostatní zprávy,
 "Other outward supplies(Nil rated,Exempted)","Ostatní pasivní dodávky (bez hodnocení, osvobozeno)",
-Others,Ostatní,
 Out Qty,Out Množství,
 Out Value,limitu,
 Out of Order,Mimo provoz,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Celkem (bez daně),
 Total Achieved,Celkem Dosažená,
 Total Actual,Celkem Aktuální,
-Total Allocated Leaves,Celkové přidělené listy,
 Total Amount,Celková částka,
 Total Amount Credited,Celková částka připsána,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,"Celkový počet použitelných poplatcích v dokladu o koupi zboží, které tabulky musí být stejná jako celkem daní a poplatků",
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Nahrajte svůj dopis hlavu a logo. (Můžete je upravit později).,
 Upper Income,Horní příjmů,
 Use Sandbox,použití Sandbox,
-Used Leaves,Použité listy,
 User,Uživatel,
 User ID,User ID,
 User ID not set for Employee {0},User ID není nastavena pro zaměstnance {0},
@@ -7949,12 +7944,10 @@
 Approvers,Schvalovatelé,
 The first Approver in the list will be set as the default Approver.,První schvalovatel v seznamu bude nastaven jako výchozí schvalovatel.,
 Shift Request Approver,Schvalovatel žádosti o změnu,
-PAN Number,PAN číslo,
 Provident Fund Account,Účet fondu Provident,
 MICR Code,Kód MICR,
 Repay unclaimed amount from salary,Vrátit nevyzvednutou částku z platu,
 Deduction from salary,Srážka z platu,
-Expired Leaves,Vypršela platnost listů,
 If this is not checked the loan by default will be considered as a Demand Loan,"Pokud to není zaškrtnuto, bude se úvěr ve výchozím nastavení považovat za půjčku na vyžádání",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Tento účet slouží k rezervaci splátek půjčky od dlužníka a také k vyplácení půjček dlužníkovi,
 This account is capital account which is used to allocate capital for loan disbursal account ,"Tento účet je kapitálovým účtem, který se používá k přidělení kapitálu pro účet vyplácení půjček",
@@ -8748,3 +8741,5 @@
 Is Mandatory,Je povinná,
 WhatsApp,WhatsApp,
 Make a call,Zavolat,
+Approve,Schvalovat,
+Reject,Odmítnout,
diff --git a/erpnext/translations/da.csv b/erpnext/translations/da.csv
index b89f39c..138da5d 100644
--- a/erpnext/translations/da.csv
+++ b/erpnext/translations/da.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Automatisk gentag dokument opdateret,
 Automotive,Bil,
 Available,Tilgængelig,
-Available Leaves,Tilgængelige blade,
 Available Qty,Tilgængelig antal,
 Available Selling,Tilgængelig salg,
 Available for use date is required,Tilgængelig til brug dato er påkrævet,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,Menneskelige ressourcer,
 Human Resources,Medarbejdere,
-IFSC Code,IFSC-kode,
 IGST Amount,IGST Beløb,
 IP Address,IP-adresse,
 ITC Available (whether in full op part),ITC tilgængelig (uanset om det er i fuld op-del),
@@ -1666,7 +1664,6 @@
 Other,Andre,
 Other Reports,Andre rapporter,
 "Other outward supplies(Nil rated,Exempted)","Andre udgående leverancer (Nul bedømt, undtaget)",
-Others,Andre,
 Out Qty,Out Antal,
 Out Value,Out Value,
 Out of Order,Virker ikke,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),I alt (uden skat),
 Total Achieved,Total Opnået,
 Total Actual,Samlede faktiske,
-Total Allocated Leaves,Samlede tildelte blade,
 Total Amount,Samlet beløb,
 Total Amount Credited,Samlede beløb krediteret,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Total gældende takster i købskvitteringsvaretabel skal være det samme som de samlede skatter og afgifter,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Upload dit brevhoved og logo. (du kan redigere dem senere).,
 Upper Income,Upper Indkomst,
 Use Sandbox,Brug Sandbox,
-Used Leaves,Brugte blade,
 User,Bruger,
 User ID,Bruger-id,
 User ID not set for Employee {0},Bruger-id ikke indstillet til Medarbejder {0},
@@ -7949,12 +7944,10 @@
 Approvers,Approverser,
 The first Approver in the list will be set as the default Approver.,Den første godkender på listen indstilles som standardgodkenderen.,
 Shift Request Approver,Godkendelse af skiftanmodning,
-PAN Number,PAN-nummer,
 Provident Fund Account,Provident Fund-konto,
 MICR Code,MICR-kode,
 Repay unclaimed amount from salary,Tilbagebetal ikke-krævet beløb fra løn,
 Deduction from salary,Fradrag fra løn,
-Expired Leaves,Udløbne blade,
 If this is not checked the loan by default will be considered as a Demand Loan,"Hvis dette ikke er markeret, vil lånet som standard blive betragtet som et behovslån",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Denne konto bruges til at booke tilbagebetaling af lån fra låntager og også udbetale lån til låntager,
 This account is capital account which is used to allocate capital for loan disbursal account ,"Denne konto er en kapitalkonto, der bruges til at allokere kapital til udbetaling af lånekonto",
@@ -8748,3 +8741,5 @@
 Is Mandatory,Er obligatorisk,
 WhatsApp,WhatsApp,
 Make a call,Ringe,
+Approve,Godkende,
+Reject,Afvise,
diff --git a/erpnext/translations/de.csv b/erpnext/translations/de.csv
index 03e9de4..79b9574 100644
--- a/erpnext/translations/de.csv
+++ b/erpnext/translations/de.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Automatisches Wiederholungsdokument aktualisiert,
 Automotive,Fahrzeugbau,
 Available,Verfügbar,
-Available Leaves,Verfügbare Blätter,
 Available Qty,Verfügbare Menge,
 Available Selling,Verfügbarer Verkauf,
 Available for use date is required,Verfügbar für das Nutzungsdatum ist erforderlich,
@@ -1129,7 +1128,6 @@
 Hub Sync ID,Hub-Synchronisierungs-ID,
 Human Resource,Personal,
 Human Resources,Personalwesen,
-IFSC Code,IFSC-Code,
 IGST Amount,IGST Betrag,
 IP Address,IP Adresse,
 ITC Available (whether in full op part),ITC verfügbar (ob vollständig oder teilweise),
@@ -1675,7 +1673,6 @@
 Other,Andere,
 Other Reports,Weitere Berichte,
 "Other outward supplies(Nil rated,Exempted)","Sonstige Auslandslieferungen (ohne Rating, ausgenommen)",
-Others,Andere,
 Out Qty,Ausgabe-Menge,
 Out Value,Out Wert,
 Out of Order,Außer Betrieb,
@@ -2825,7 +2822,6 @@
 Total (Without Tax),Summe (ohne Steuern),
 Total Achieved,Gesamtsumme erreicht,
 Total Actual,Summe Tatsächlich,
-Total Allocated Leaves,Insgesamt zugeteilte Blätter,
 Total Amount,Gesamtsumme,
 Total Amount Credited,Gesamtbetrag der Gutschrift,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Gesamt Die Gebühren in Kauf Eingangspositionen Tabelle muss als Gesamt Steuern und Abgaben gleich sein,
@@ -2935,7 +2931,6 @@
 Upload your letter head and logo. (you can edit them later).,Briefkopf und Logo hochladen. (Beides kann später noch bearbeitet werden.),
 Upper Income,Gehobenes Einkommen,
 Use Sandbox,Sandkastenmodus verwenden,
-Used Leaves,Genutzter Urlaub,
 User,Nutzer,
 User ID,Benutzer-ID,
 User ID not set for Employee {0},Benutzer-ID ist für Mitarbeiter {0} nicht eingegeben,
@@ -4591,7 +4586,7 @@
 Tax Withholding Category,Steuereinbehalt Kategorie,
 Edit Posting Date and Time,Buchungsdatum und -uhrzeit bearbeiten,
 Is Paid,Ist bezahlt,
-Is Return (Debit Note),ist Rücklieferung (Lastschrift),
+Is Return (Debit Note),Ist Rechnungskorrektur (Retoure),
 Apply Tax Withholding Amount,Steuereinbehaltungsbetrag anwenden,
 Accounting Dimensions ,Buchhaltung Dimensionen,
 Supplier Invoice Details,Lieferant Rechnungsdetails,
@@ -4715,7 +4710,7 @@
 ACC-SINV-.YYYY.-,ACC-SINV-.JJJJ.-,
 Include Payment (POS),(POS) Zahlung einschließen,
 Offline POS Name,Offline-Verkaufsstellen-Name,
-Is Return (Credit Note),ist Rücklieferung (Gutschrift),
+Is Return (Credit Note),Ist Rechnungskorrektur (Retoure),
 Update Billed Amount in Sales Order,Aktualisierung des Rechnungsbetrags im Auftrag,
 Customer PO Details,Auftragsdetails,
 Customer's Purchase Order,Bestellung des Kunden,
@@ -7003,7 +6998,7 @@
 Tariff Number,Tarifnummer,
 Delivery To,Lieferung an,
 MAT-DN-.YYYY.-,MAT-DN-.YYYY.-,
-Is Return,Ist Rückgabe,
+Is Return,Ist Retoure,
 Issue Credit Note,Gutschrift ausgeben,
 Return Against Delivery Note,Zurück zum Lieferschein,
 Customer's Purchase Order No,Bestellnummer des Kunden,
@@ -7966,12 +7961,10 @@
 Approvers,Genehmiger,
 The first Approver in the list will be set as the default Approver.,Der erste Genehmiger in der Liste wird als Standardgenehmiger festgelegt.,
 Shift Request Approver,Schichtanforderungsgenehmiger,
-PAN Number,PAN-Nummer,
 Provident Fund Account,Vorsorgefonds-Konto,
 MICR Code,MICR-Code,
 Repay unclaimed amount from salary,Nicht zurückgeforderten Betrag vom Gehalt zurückzahlen,
 Deduction from salary,Abzug vom Gehalt,
-Expired Leaves,Abgelaufene Blätter,
 If this is not checked the loan by default will be considered as a Demand Loan,"Wenn dies nicht aktiviert ist, wird das Darlehen standardmäßig als Nachfragedarlehen betrachtet",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Dieses Konto wird zur Buchung von Kreditrückzahlungen vom Kreditnehmer und zur Auszahlung von Krediten an den Kreditnehmer verwendet,
 This account is capital account which is used to allocate capital for loan disbursal account ,"Dieses Konto ist ein Kapitalkonto, das zur Zuweisung von Kapital für das Darlehensauszahlungskonto verwendet wird",
@@ -8670,7 +8663,7 @@
 Please set default Cash or Bank account in Mode of Payments {},Bitte setzen Sie das Standard-Bargeld- oder Bankkonto im Zahlungsmodus {},
 Please ensure {} account is a Balance Sheet account. You can change the parent account to a Balance Sheet account or select a different account.,"Bitte stellen Sie sicher, dass das Konto {} ein Bilanzkonto ist. Sie können das übergeordnete Konto in ein Bilanzkonto ändern oder ein anderes Konto auswählen.",
 Please ensure {} account is a Payable account. Change the account type to Payable or select a different account.,"Bitte stellen Sie sicher, dass das Konto {} ein zahlbares Konto ist. Ändern Sie den Kontotyp in &quot;Verbindlichkeiten&quot; oder wählen Sie ein anderes Konto aus.",
-"Row {0}: Expense Head changed to {1} because account {2} is not linked to warehouse {3} or it is not the default inventory account","Zeile {0}: Aufwandskonto geändert zu {1}, weil das Konto {2} nicht mit dem Lager {3} verknüpft ist oder es nicht das Standard-Inventarkonto ist",
+Row {0}: Expense Head changed to {1} because account {2} is not linked to warehouse {3} or it is not the default inventory account,"Zeile {0}: Aufwandskonto geändert zu {1}, weil das Konto {2} nicht mit dem Lager {3} verknüpft ist oder es nicht das Standard-Inventarkonto ist",
 Row {0}: Expense Head changed to {1} because expense is booked against this account in Purchase Receipt {2},"Zeile {0}: Aufwandskonto geändert zu {1}, da dieses bereits in Eingangsbeleg {2} verwendet wurde",
 Row {0}: Expense Head changed to {1} as no Purchase Receipt is created against Item {2}.,"Zeile {0}: Aufwandskonto geändert zu {1}, da kein Eingangsbeleg für Artikel {2} erstellt wird.",
 This is done to handle accounting for cases when Purchase Receipt is created after Purchase Invoice,"Dies erfolgt zur Abrechnung von Fällen, in denen der Eingangsbeleg nach der Eingangsrechnung erstellt wird",
@@ -8833,3 +8826,5 @@
 Is Mandatory,Ist obligatorisch,
 WhatsApp,WhatsApp,
 Make a call,Einen Anruf tätigen,
+Approve,Genehmigen,
+Reject,Ablehnen,
diff --git a/erpnext/translations/el.csv b/erpnext/translations/el.csv
index 8d48c3a..7a83cc5 100644
--- a/erpnext/translations/el.csv
+++ b/erpnext/translations/el.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Το έγγραφο αυτόματης επανάληψης ενημερώθηκε,
 Automotive,Αυτοκίνητο,
 Available,Διαθέσιμος,
-Available Leaves,Διαθέσιμα φύλλα,
 Available Qty,Διαθέσιμη ποσότητα,
 Available Selling,Διαθέσιμη πώληση,
 Available for use date is required,Απαιτείται ημερομηνία διαθέσιμη για χρήση,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Αναγνωριστικό συγχρονισμού Hub,
 Human Resource,Ανθρώπινο δυναμικό,
 Human Resources,Ανθρώπινοι πόροι,
-IFSC Code,Κωδικός IFSC,
 IGST Amount,Ποσό IGST,
 IP Address,Διεύθυνση IP,
 ITC Available (whether in full op part),ITC Διαθέσιμο (είτε σε πλήρη op μέρος),
@@ -1666,7 +1664,6 @@
 Other,Άλλος,
 Other Reports,άλλες εκθέσεις,
 "Other outward supplies(Nil rated,Exempted)","Άλλες παροχές προς το εξωτερικό (μη διαβαθμισμένες, απαλλαγμένες)",
-Others,Άλλα,
 Out Qty,Ποσότητα εκτός,
 Out Value,από Αξία,
 Out of Order,Εκτός λειτουργίας,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Σύνολο (χωρίς Φόρο),
 Total Achieved,Σύνολο που επιτεύχθηκε,
 Total Actual,Πραγματικό σύνολο,
-Total Allocated Leaves,Συνολικά κατανεμημένα φύλλα,
 Total Amount,Συνολικό ποσό,
 Total Amount Credited,Συνολικό ποσό που πιστώνεται,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Σύνολο χρεώσεων που επιβάλλονται στην Αγορά Παραλαβή Είδη πίνακα πρέπει να είναι ίδιο με το συνολικό φόροι και επιβαρύνσεις,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Ανεβάστε την κεφαλίδα επιστολόχαρτου και το λογότυπό σας. (Μπορείτε να τα επεξεργαστείτε αργότερα).,
 Upper Income,Άνω εισοδήματος,
 Use Sandbox,χρήση Sandbox,
-Used Leaves,Χρησιμοποιημένα φύλλα,
 User,Χρήστης,
 User ID,ID χρήστη,
 User ID not set for Employee {0},Το ID χρήστη δεν έχει οριστεί για τον υπάλληλο {0},
@@ -7949,12 +7944,10 @@
 Approvers,Εγκρίνει,
 The first Approver in the list will be set as the default Approver.,Η πρώτη έγκριση στη λίστα θα οριστεί ως η προεπιλεγμένη έγκριση.,
 Shift Request Approver,Έγκριση αιτήματος Shift,
-PAN Number,Αριθμός PAN,
 Provident Fund Account,Λογαριασμός Ταμείου Προνοίας,
 MICR Code,Κωδικός MICR,
 Repay unclaimed amount from salary,Επιστρέψτε το ποσό που δεν ζητήθηκε από το μισθό,
 Deduction from salary,Έκπτωση από το μισθό,
-Expired Leaves,Έληξε φύλλα,
 If this is not checked the loan by default will be considered as a Demand Loan,"Εάν αυτό δεν ελεγχθεί, το δάνειο από προεπιλογή θα θεωρείται ως Δάνειο Ζήτησης",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Αυτός ο λογαριασμός χρησιμοποιείται για την κράτηση αποπληρωμών δανείου από τον δανειολήπτη και επίσης για την εκταμίευση δανείων προς τον οφειλέτη,
 This account is capital account which is used to allocate capital for loan disbursal account ,Αυτός ο λογαριασμός είναι λογαριασμός κεφαλαίου που χρησιμοποιείται για την κατανομή κεφαλαίου για λογαριασμό εκταμίευσης δανείου,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Ειναι υποχρεωτικό,
 WhatsApp,WhatsApp,
 Make a call,Τηλεφώνησε,
+Approve,Εγκρίνω,
+Reject,Απορρίπτω,
diff --git a/erpnext/translations/es.csv b/erpnext/translations/es.csv
index 50af180..fadf7a7 100644
--- a/erpnext/translations/es.csv
+++ b/erpnext/translations/es.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Documento automático editado,
 Automotive,Automotores,
 Available,Disponible,
-Available Leaves,Licencias Disponibles,
 Available Qty,Cantidad disponible,
 Available Selling,Venta disponible,
 Available for use date is required,Disponible para la fecha de uso es obligatorio,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,ID de Sincronización del Hub,
 Human Resource,Recursos humanos,
 Human Resources,Recursos humanos,
-IFSC Code,Código IFSC,
 IGST Amount,Monto IGST,
 IP Address,Dirección IP,
 ITC Available (whether in full op part),ITC disponible (ya sea en la parte op completa),
@@ -1666,7 +1664,6 @@
 Other,Otro,
 Other Reports,Otros Reportes,
 "Other outward supplies(Nil rated,Exempted)","Otros suministros externos (sin calificación, exentos)",
-Others,Otros,
 Out Qty,Cant. enviada,
 Out Value,Fuera de Valor,
 Out of Order,Fuera de servicio,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Total (Sin Impuestos),
 Total Achieved,Total Conseguido,
 Total Actual,Total Actual,
-Total Allocated Leaves,Total de Licencias Asignadas,
 Total Amount,Importe total,
 Total Amount Credited,Monto Total Acreditado,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Total de comisiones aplicables en la compra Tabla de recibos Los artículos deben ser iguales que las tasas totales y cargos,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Cargue su membrete y el logotipo. (Estos pueden editarse más tarde).,
 Upper Income,Ingresos superior,
 Use Sandbox,Utilizar Sandbox,
-Used Leaves,Licencias Usadas,
 User,Usuario,
 User ID,ID de usuario,
 User ID not set for Employee {0},ID de usuario no establecido para el empleado {0},
@@ -7949,12 +7944,10 @@
 Approvers,Aprobadores,
 The first Approver in the list will be set as the default Approver.,El primer Aprobador de la lista se establecerá como Aprobador predeterminado.,
 Shift Request Approver,Aprobador de solicitud de turno,
-PAN Number,Número PAN,
 Provident Fund Account,Cuenta del fondo de previsión,
 MICR Code,Código MICR,
 Repay unclaimed amount from salary,Reembolsar la cantidad no reclamada del salario,
 Deduction from salary,Deducción del salario,
-Expired Leaves,Hojas caducadas,
 If this is not checked the loan by default will be considered as a Demand Loan,"Si no se marca, el préstamo por defecto se considerará Préstamo a la vista.",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Esta cuenta se utiliza para registrar los reembolsos de préstamos del prestatario y también para desembolsar préstamos al prestatario.,
 This account is capital account which is used to allocate capital for loan disbursal account ,Esta cuenta es una cuenta de capital que se utiliza para asignar capital para la cuenta de desembolso de préstamos.,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Es obligatorio,
 WhatsApp,WhatsApp,
 Make a call,Haz una llamada,
+Approve,Aprobar,
+Reject,Rechazar,
diff --git a/erpnext/translations/et.csv b/erpnext/translations/et.csv
index e5da343..4e26a82 100644
--- a/erpnext/translations/et.csv
+++ b/erpnext/translations/et.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Auto kordusdokument uuendatud,
 Automotive,Autod,
 Available,Saadaval,
-Available Leaves,Saadaolevad lehed,
 Available Qty,Saadaval Kogus,
 Available Selling,Saadaval müügil,
 Available for use date is required,Kasutatav kasutuskuupäev on vajalik,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,Inimressurss,
 Human Resources,Inimressursid,
-IFSC Code,IFSC kood,
 IGST Amount,IGST summa,
 IP Address,IP-aadress,
 ITC Available (whether in full op part),ITC saadaval (kas täielikult op),
@@ -1666,7 +1664,6 @@
 Other,Muud,
 Other Reports,Teised aruanded,
 "Other outward supplies(Nil rated,Exempted)","Muud välistarbed (null, erand)",
-Others,Teised,
 Out Qty,Out Kogus,
 Out Value,välja väärtus,
 Out of Order,Korrast ära,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Kokku (maksudeta),
 Total Achieved,Kokku saavutatud,
 Total Actual,Kokku Tegelik,
-Total Allocated Leaves,Kokku eraldatud lehed,
 Total Amount,Kogu summa,
 Total Amount Credited,Kogu summa krediteeritakse,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Kokku kohaldatavate tasude kohta ostutšekk Esemed tabel peab olema sama Kokku maksud ja tasud,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Laadi üles oma kirjas pea ja logo. (seda saab muuta hiljem).,
 Upper Income,Ülemine tulu,
 Use Sandbox,Kasuta liivakasti,
-Used Leaves,Kasutatud lehed,
 User,Kasutaja,
 User ID,kasutaja ID,
 User ID not set for Employee {0},Kasutaja ID ei seatud Töötaja {0},
@@ -7949,12 +7944,10 @@
 Approvers,Heakskiitjad,
 The first Approver in the list will be set as the default Approver.,Loendi esimene heakskiitja määratakse vaikimisi kinnitajaks.,
 Shift Request Approver,Vahetustaotluse kinnitaja,
-PAN Number,PAN-number,
 Provident Fund Account,Providence Fundi konto,
 MICR Code,MICR-kood,
 Repay unclaimed amount from salary,Tagasimakstud summa palgast tagasi maksta,
 Deduction from salary,Palgast mahaarvamine,
-Expired Leaves,Aegunud lehed,
 If this is not checked the loan by default will be considered as a Demand Loan,"Kui seda ei kontrollita, käsitatakse laenu vaikimisi nõudmislaenuna",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Seda kontot kasutatakse laenusaaja tagasimaksete broneerimiseks ja ka laenuvõtjale laenude väljamaksmiseks,
 This account is capital account which is used to allocate capital for loan disbursal account ,"See konto on kapitalikonto, mida kasutatakse kapitali eraldamiseks laenu väljamaksekontole",
@@ -8748,3 +8741,5 @@
 Is Mandatory,On kohustuslik,
 WhatsApp,WhatsApp,
 Make a call,Helistage,
+Approve,kinnitama,
+Reject,tagasi lükkama,
diff --git a/erpnext/translations/fa.csv b/erpnext/translations/fa.csv
index e59023d..530965d 100644
--- a/erpnext/translations/fa.csv
+++ b/erpnext/translations/fa.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,تکرار خودکار سند به روز شد,
 Automotive,خودرو,
 Available,در دسترس,
-Available Leaves,برگهای موجود,
 Available Qty,در دسترس تعداد,
 Available Selling,فروش موجود,
 Available for use date is required,برای تاریخ استفاده لازم است,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,شناسه همگام سازی هاب,
 Human Resource,منابع انسانی,
 Human Resources,منابع انسانی,
-IFSC Code,کد IFSC,
 IGST Amount,مقدار IGST,
 IP Address,نشانی آیپی,
 ITC Available (whether in full op part),ITC موجود (چه در بخش کامل عمل),
@@ -1666,7 +1664,6 @@
 Other,دیگر,
 Other Reports,سایر گزارش,
 "Other outward supplies(Nil rated,Exempted)",سایر لوازم خارجی (امتیاز صفر ، معافیت),
-Others,دیگران,
 Out Qty,از تعداد,
 Out Value,ارزش از,
 Out of Order,خارج از سفارش,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),مجموع (بدون مالیات),
 Total Achieved,مجموع بهدستآمده,
 Total Actual,مجموع واقعی,
-Total Allocated Leaves,مجموع برگه های برگزیده,
 Total Amount,مقدار کل,
 Total Amount Credited,مبلغ کل اعتبار,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,مجموع اتهامات قابل اجرا در خرید اقلام دریافت جدول باید همان مجموع مالیات و هزینه شود,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,آپلود سر نامه و آرم خود را. (شما می توانید آنها را بعد از ویرایش).,
 Upper Income,درآمد بالاتر,
 Use Sandbox,استفاده از گودال ماسهبازی,
-Used Leaves,برگهای مورد استفاده,
 User,کاربر,
 User ID,ID کاربر,
 User ID not set for Employee {0},ID کاربر برای کارمند تنظیم نشده {0},
@@ -7949,12 +7944,10 @@
 Approvers,متقن,
 The first Approver in the list will be set as the default Approver.,اولین تأیید کننده در لیست به عنوان تأیید کننده پیش فرض تنظیم می شود.,
 Shift Request Approver,تأیید کننده درخواست شیفت,
-PAN Number,شماره PAN,
 Provident Fund Account,حساب صندوق تأمین مالی,
 MICR Code,کد MICR,
 Repay unclaimed amount from salary,مبلغ مطالبه نشده از حقوق را بازپرداخت کنید,
 Deduction from salary,کسر از حقوق,
-Expired Leaves,برگهای منقضی شده,
 If this is not checked the loan by default will be considered as a Demand Loan,اگر این مورد بررسی نشود ، وام به طور پیش فرض به عنوان وام تقاضا در نظر گرفته می شود,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,این حساب برای رزرو بازپرداخت وام از وام گیرنده و همچنین پرداخت وام به وام گیرنده استفاده می شود,
 This account is capital account which is used to allocate capital for loan disbursal account ,این حساب حساب سرمایه ای است که برای تخصیص سرمایه برای حساب پرداخت وام استفاده می شود,
@@ -8748,3 +8741,5 @@
 Is Mandatory,اجباری است,
 WhatsApp,واتس اپ,
 Make a call,تماس بگیر,
+Approve,تایید,
+Reject,رد کردن,
diff --git a/erpnext/translations/fi.csv b/erpnext/translations/fi.csv
index 6a58343..6e9380c 100644
--- a/erpnext/translations/fi.csv
+++ b/erpnext/translations/fi.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Automaattinen toistuva asiakirja päivitetty,
 Automotive,Automotive,
 Available,saatavissa,
-Available Leaves,Saatavilla olevat lehdet,
 Available Qty,saatava yksikkömäärä,
 Available Selling,Saatavana myyntiin,
 Available for use date is required,Käytettävä päivämäärä on pakollinen,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub-synkronointitunnus,
 Human Resource,henkilöstöresurssi,
 Human Resources,Henkilöstöresurssit,
-IFSC Code,IFSC-koodi,
 IGST Amount,IGST Määrä,
 IP Address,IP-osoite,
 ITC Available (whether in full op part),ITC käytettävissä (onko täysin op-osa),
@@ -1666,7 +1664,6 @@
 Other,muut,
 Other Reports,Muut raportit,
 "Other outward supplies(Nil rated,Exempted)","Muut ulkoiset tarvikkeet (nolla, vapautettu)",
-Others,Muut,
 Out Qty,ulkona yksikkömäärä,
 Out Value,out Arvo,
 Out of Order,Epäkunnossa,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Yhteensä (ilman veroa),
 Total Achieved,"Yhteensä, saavutettu",
 Total Actual,Kiinteä summa yhteensä,
-Total Allocated Leaves,Kokonaisrajaiset lehdet,
 Total Amount,Yhteensä,
 Total Amount Credited,Laskettu kokonaismäärä,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Saapumistositteen riveillä olevat maksut pitää olla sama kuin verot ja maksut osiossa,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Tuo kirjeen ylätunniste ja logo. (voit muokata niitä myöhemmin),
 Upper Income,Ylemmät tulot,
 Use Sandbox,Käytä Sandbox,
-Used Leaves,Käytetyt lehdet,
 User,käyttäjä,
 User ID,käyttäjätunnus,
 User ID not set for Employee {0},Käyttäjätunnusta ei asetettu työntekijälle {0},
@@ -7949,12 +7944,10 @@
 Approvers,Hyväksyjät,
 The first Approver in the list will be set as the default Approver.,Luettelon ensimmäinen hyväksyntä asetetaan oletuksen hyväksyjäksi.,
 Shift Request Approver,Vaihtopyynnön hyväksyntä,
-PAN Number,PAN-numero,
 Provident Fund Account,Provident Fund -tili,
 MICR Code,MICR-koodi,
 Repay unclaimed amount from salary,Palauta takaisin perimät palkat,
 Deduction from salary,Vähennys palkasta,
-Expired Leaves,Vanhentuneet lehdet,
 If this is not checked the loan by default will be considered as a Demand Loan,"Jos tätä ei ole valittu, laina katsotaan oletuksena kysyntälainaksi",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Tätä tiliä käytetään lainan takaisinmaksun varaamiseen luotonsaajalta ja lainojen maksamiseen myös luotonottajalle,
 This account is capital account which is used to allocate capital for loan disbursal account ,"Tämä tili on pääomatili, jota käytetään pääoman kohdistamiseen lainan maksamiseen",
@@ -8748,3 +8741,5 @@
 Is Mandatory,On pakollinen,
 WhatsApp,WhatsApp,
 Make a call,Soita,
+Approve,Hyväksyä,
+Reject,Hylätä,
diff --git a/erpnext/translations/fr.csv b/erpnext/translations/fr.csv
index 4f4a61f..32fe9ff 100644
--- a/erpnext/translations/fr.csv
+++ b/erpnext/translations/fr.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Document de répétition automatique mis à jour,
 Automotive,Automobile,
 Available,Disponible,
-Available Leaves,Congés disponibles,
 Available Qty,Qté disponible,
 Available Selling,Vente disponible,
 Available for use date is required,La date de mise en service est nécessaire,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,Ressource humaine,
 Human Resources,Ressources humaines,
-IFSC Code,Code IFSC,
 IGST Amount,IGST Montant,
 IP Address,Adresse IP,
 ITC Available (whether in full op part),CIT Disponible (que ce soit en partie op),
@@ -1665,7 +1663,6 @@
 Other,Autre,
 Other Reports,Autres rapports,
 "Other outward supplies(Nil rated,Exempted)","Autres livraisons sortantes (cotations nulles, exemptées)",
-Others,Autres,
 Out Qty,Qté Sortante,
 Out Value,Valeur Sortante,
 Out of Order,Hors service,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Total (hors taxes),
 Total Achieved,Total Obtenu,
 Total Actual,Total réel,
-Total Allocated Leaves,Total des congés alloués,
 Total Amount,Montant total,
 Total Amount Credited,Montant total crédité,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Total des Frais Applicables dans la Table des Articles de Reçus d’Achat doit être égal au Total des Taxes et Frais,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Charger votre en-tête et logo. (vous pouvez les modifier ultérieurement).,
 Upper Income,Revenu Élevé,
 Use Sandbox,Utiliser Sandbox,
-Used Leaves,Congés utilisés,
 User,Utilisateur,
 User ID,Identifiant d'utilisateur,
 User ID not set for Employee {0},ID de l'Utilisateur non défini pour l'Employé {0},
@@ -7945,12 +7940,10 @@
 Approvers,Approbateurs,
 The first Approver in the list will be set as the default Approver.,Le premier approbateur de la liste sera défini comme approbateur par défaut.,
 Shift Request Approver,Approbateur de demande de quart,
-PAN Number,Numéro PAN,
 Provident Fund Account,Compte de prévoyance,
 MICR Code,Code MICR,
 Repay unclaimed amount from salary,Rembourser le montant non réclamé sur le salaire,
 Deduction from salary,Déduction du salaire,
-Expired Leaves,Feuilles expirées,
 If this is not checked the loan by default will be considered as a Demand Loan,"Si cette case n'est pas cochée, le prêt par défaut sera considéré comme un prêt à vue",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Ce compte est utilisé pour enregistrer les remboursements de prêts de l'emprunteur et également pour décaisser les prêts à l'emprunteur,
 This account is capital account which is used to allocate capital for loan disbursal account ,Ce compte est un compte de capital qui est utilisé pour allouer du capital au compte de décaissement du prêt,
@@ -8858,3 +8851,5 @@
 Probability,Probabilité
 Closing,Clôture
 Allow Sales,Autoriser à la vente
+Approve,Approuver,
+Reject,Rejeter,
diff --git a/erpnext/translations/gu.csv b/erpnext/translations/gu.csv
index 3e22bd9..e2de8ce 100644
--- a/erpnext/translations/gu.csv
+++ b/erpnext/translations/gu.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,સ્વતઃ પુનરાવર્તિત દસ્તાવેજ અપડેટ થયો,
 Automotive,ઓટોમોટિવ,
 Available,ઉપલબ્ધ,
-Available Leaves,ઉપલબ્ધ પાંદડા,
 Available Qty,ઉપલબ્ધ Qty,
 Available Selling,ઉપલબ્ધ વેચાણ,
 Available for use date is required,ઉપયોગ તારીખ માટે ઉપલબ્ધ જરૂરી છે,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,હબ સમન્વયન ID,
 Human Resource,માનવ સંસાધન,
 Human Resources,માનવ સંસાધન,
-IFSC Code,આઈએફએસસી કોડ,
 IGST Amount,IGST રકમ,
 IP Address,IP સરનામું,
 ITC Available (whether in full op part),આઇટીસી ઉપલબ્ધ છે (સંપૂર્ણ ઓપ ભાગમાં છે કે નહીં),
@@ -1666,7 +1664,6 @@
 Other,અન્ય,
 Other Reports,અન્ય અહેવાલો,
 "Other outward supplies(Nil rated,Exempted)","અન્ય બાહ્ય પુરવઠો (નીલ રેટેડ, મુકત)",
-Others,અન્ય,
 Out Qty,Qty આઉટ,
 Out Value,મૂલ્ય,
 Out of Order,હુકમ બહાર,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),કુલ (કર વગર),
 Total Achieved,કુલ પ્રાપ્ત,
 Total Actual,વાસ્તવિક કુલ,
-Total Allocated Leaves,કુલ ફાળવેલ પાંદડા,
 Total Amount,કુલ રકમ,
 Total Amount Credited,કુલ રકમનો શ્રેય,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,ખરીદી રસીદ વસ્તુઓ ટેબલ કુલ લાગુ ખર્ચ કુલ કર અને ખર્ચ તરીકે જ હોવી જોઈએ,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,તમારો પત્ર વડા અને લોગો અપલોડ કરો. (જો તમે પછીથી તેમને ફેરફાર કરી શકો છો).,
 Upper Income,ઉચ્ચ આવક,
 Use Sandbox,ઉપયોગ સેન્ડબોક્સ,
-Used Leaves,વપરાયેલ પાંદડા,
 User,વપરાશકર્તા,
 User ID,વપરાશકર્તા ID,
 User ID not set for Employee {0},વપરાશકર્તા ID કર્મચારી માટે સેટ નથી {0},
@@ -7949,12 +7944,10 @@
 Approvers,વિવાદ,
 The first Approver in the list will be set as the default Approver.,સૂચિમાં પ્રથમ મંજૂરી આપનારને ડિફ defaultલ્ટ મંજૂરી તરીકે સેટ કરવામાં આવશે.,
 Shift Request Approver,શિફ્ટ વિનંતી મંજૂરી,
-PAN Number,પાન નંબર,
 Provident Fund Account,પ્રોવિડન્ટ ફંડ એકાઉન્ટ,
 MICR Code,એમઆઈસીઆર કોડ,
 Repay unclaimed amount from salary,પગારમાંથી દાવેદારી રકમ પરત કરો,
 Deduction from salary,પગારમાંથી કપાત,
-Expired Leaves,સમાપ્ત પાંદડા,
 If this is not checked the loan by default will be considered as a Demand Loan,જો આને તપાસવામાં નહીં આવે તો ડિફોલ્ટ રૂપે લોનને ડિમાન્ડ લોન માનવામાં આવશે,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,આ એકાઉન્ટનો ઉપયોગ orણ લેનારા પાસેથી લોન ચુકવણી બુક કરવા અને લેનારાને લોન વહેંચવા માટે થાય છે.,
 This account is capital account which is used to allocate capital for loan disbursal account ,આ એકાઉન્ટ કેપિટલ એકાઉન્ટ છે જેનો ઉપયોગ લોન વિતરણ ખાતા માટે મૂડી ફાળવવા માટે થાય છે,
@@ -8748,3 +8741,5 @@
 Is Mandatory,ફરજિયાત છે,
 WhatsApp,વોટ્સેપ,
 Make a call,કોલ કરો,
+Approve,મંજૂર,
+Reject,નકારો,
diff --git a/erpnext/translations/he.csv b/erpnext/translations/he.csv
index b0e6306..6cd900a 100644
--- a/erpnext/translations/he.csv
+++ b/erpnext/translations/he.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,מסמך חזרה אוטומטית עודכן,
 Automotive,רכב,
 Available,זמין,
-Available Leaves,עלים זמינים,
 Available Qty,כמות זמינה,
 Available Selling,מכירה זמינה,
 Available for use date is required,נדרש לתאריך השימוש,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,מזהה סנכרון רכזת,
 Human Resource,משאבי אנוש,
 Human Resources,משאבי אנוש,
-IFSC Code,קוד IFSC,
 IGST Amount,סכום IGST,
 IP Address,כתובת ה - IP,
 ITC Available (whether in full op part),ITC זמין (אם בחלק אופ מלא),
@@ -1666,7 +1664,6 @@
 Other,אחר,
 Other Reports,דוחות נוספים,
 "Other outward supplies(Nil rated,Exempted)","אספקה חיצונית אחרת (מדורג אפס, פטור)",
-Others,אחרים,
 Out Qty,מתוך כמות,
 Out Value,ערך מתוך,
 Out of Order,מקולקל,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),סה&quot;כ (ללא מס),
 Total Achieved,"סה""כ הושג",
 Total Actual,"סה""כ בפועל",
-Total Allocated Leaves,סה&quot;כ עלים שהוקצו,
 Total Amount,"סה""כ לתשלום",
 Total Amount Credited,סכום כולל אשראי,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,סה&quot;כ החיובים החלים בטבלת פריטי קבלה לרכישה חייבים להיות זהים לסכומי המסים והחיובים,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,העלה ראש המכתב ואת הלוגו שלך. (אתה יכול לערוך אותם מאוחר יותר).,
 Upper Income,עליון הכנסה,
 Use Sandbox,השתמש בארגז חול,
-Used Leaves,עלים משומשים,
 User,מִשׁתַמֵשׁ,
 User ID,זיהוי משתמש,
 User ID not set for Employee {0},זיהוי משתמש לא נקבע לעובדים {0},
@@ -7949,12 +7944,10 @@
 Approvers,מחלוקת,
 The first Approver in the list will be set as the default Approver.,המאשר הראשון ברשימה יוגדר כמאשר ברירת המחדל.,
 Shift Request Approver,אישור בקשת משמרת,
-PAN Number,מספר PAN,
 Provident Fund Account,חשבון קופת גמל,
 MICR Code,קוד MICR,
 Repay unclaimed amount from salary,החזר סכום שלא נתבע מהמשכורת,
 Deduction from salary,ניכוי משכר,
-Expired Leaves,עלים שפג תוקפם,
 If this is not checked the loan by default will be considered as a Demand Loan,אם זה לא מסומן ההלוואה כברירת מחדל תיחשב כהלוואת דרישה,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,חשבון זה משמש להזמנת החזרי הלוואות מהלווה וגם להוצאת הלוואות ללווה,
 This account is capital account which is used to allocate capital for loan disbursal account ,חשבון זה הוא חשבון הון המשמש להקצאת הון לחשבון פרסום הלוואות,
@@ -8748,3 +8741,5 @@
 Is Mandatory,זה חובה,
 WhatsApp,ווטסאפ,
 Make a call,להתקשר,
+Approve,לְאַשֵׁר,
+Reject,לִדחוֹת,
diff --git a/erpnext/translations/hi.csv b/erpnext/translations/hi.csv
index 35c4b81..388b502 100644
--- a/erpnext/translations/hi.csv
+++ b/erpnext/translations/hi.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,ऑटो दोहराना दस्तावेज़ अद्यतन,
 Automotive,मोटर वाहन,
 Available,उपलब्ध,
-Available Leaves,उपलब्ध पत्तियां,
 Available Qty,उपलब्ध मात्रा,
 Available Selling,उपलब्ध बेचना,
 Available for use date is required,उपयोग की तारीख के लिए उपलब्ध है,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,हब सिंक आईडी,
 Human Resource,मानव संसाधन,
 Human Resources,मानवीय संसाधन,
-IFSC Code,आईएफएससी कोड,
 IGST Amount,आईजीएसटी राशि,
 IP Address,आईपी पता,
 ITC Available (whether in full op part),ITC उपलब्ध (पूर्ण ऑप भाग में),
@@ -1666,7 +1664,6 @@
 Other,अन्य,
 Other Reports,अन्य रिपोर्टें,
 "Other outward supplies(Nil rated,Exempted)","अन्य बाहरी आपूर्ति (निल रेटेड, छूट)",
-Others,दूसरों,
 Out Qty,मात्रा बाहर,
 Out Value,आउट मान,
 Out of Order,खराब,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),कुल (कर के बिना),
 Total Achieved,कुल प्राप्त,
 Total Actual,वास्तविक कुल,
-Total Allocated Leaves,कुल आवंटित पत्तियां,
 Total Amount,कुल राशि,
 Total Amount Credited,कुल राशि क्रेडिट,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,खरीद रसीद आइटम तालिका में कुल लागू शुल्कों के कुल करों और शुल्कों के रूप में ही होना चाहिए,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,अपने पत्र सिर और लोगो अपलोड करें। (आप उन्हें बाद में संपादित कर सकते हैं)।,
 Upper Income,ऊपरी आय,
 Use Sandbox,उपयोग सैंडबॉक्स,
-Used Leaves,प्रयुक्त पत्तियां,
 User,उपयोगकर्ता,
 User ID,प्रयोक्ता आईडी,
 User ID not set for Employee {0},यूजर आईडी कर्मचारी के लिए सेट नहीं {0},
@@ -7949,12 +7944,10 @@
 Approvers,approvers,
 The first Approver in the list will be set as the default Approver.,सूची में पहले अनुमोदन डिफ़ॉल्ट डिफ़ॉल्ट के रूप में सेट किया जाएगा।,
 Shift Request Approver,शिफ्ट रिक्वेस्ट अप्रूवर,
-PAN Number,पैन नंबर,
 Provident Fund Account,भविष्य निधि खाता,
 MICR Code,MICR कोड,
 Repay unclaimed amount from salary,वेतन से लावारिस राशि को चुकाएं,
 Deduction from salary,वेतन से कटौती,
-Expired Leaves,समय सीमा समाप्त,
 If this is not checked the loan by default will be considered as a Demand Loan,"यदि यह डिफ़ॉल्ट रूप से ऋण की जाँच नहीं है, तो इसे डिमांड लोन माना जाएगा",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,इस खाते का उपयोग उधारकर्ता से ऋण चुकौती की बुकिंग के लिए किया जाता है और उधारकर्ता को ऋण का वितरण भी किया जाता है,
 This account is capital account which is used to allocate capital for loan disbursal account ,यह खाता पूंजी खाता है जिसका उपयोग ऋण वितरण खाते के लिए पूंजी आवंटित करने के लिए किया जाता है,
@@ -8748,3 +8741,5 @@
 Is Mandatory,अनिवार्य है,
 WhatsApp,WhatsApp,
 Make a call,कॉल करें,
+Approve,मंजूर,
+Reject,अस्वीकार,
diff --git a/erpnext/translations/hr.csv b/erpnext/translations/hr.csv
index c44d421..b44babc 100644
--- a/erpnext/translations/hr.csv
+++ b/erpnext/translations/hr.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Ažurira se automatski ponavljanje dokumenta,
 Automotive,Automobilska industrija,
 Available,Dostupno,
-Available Leaves,Dostupni lišće,
 Available Qty,Dostupno Količina,
 Available Selling,Dostupna prodaja,
 Available for use date is required,Dostupan je za datum upotrebe,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,ID sinkronizacije huba,
 Human Resource,Ljudski resursi,
 Human Resources,Ljudski resursi,
-IFSC Code,IFSC kod,
 IGST Amount,Iznos IGST,
 IP Address,IP adresa,
 ITC Available (whether in full op part),Dostupan ITC (bilo u cijelom op. Dijelu),
@@ -1666,7 +1664,6 @@
 Other,Drugi,
 Other Reports,Ostala izvješća,
 "Other outward supplies(Nil rated,Exempted)","Ostale vanjske zalihe (ocjenjivano bez vrijednosti, izuzeće)",
-Others,Ostali,
 Out Qty,Od kol,
 Out Value,Iz vrijednost,
 Out of Order,Izvanredno,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Ukupno (bez poreza),
 Total Achieved,Ukupno Ostvareno,
 Total Actual,Ukupno Stvarni,
-Total Allocated Leaves,Ukupno dopuštena lišća,
 Total Amount,Ukupan iznos,
 Total Amount Credited,Ukupan iznos je odobren,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Ukupno odgovarajuće naknade u potvrdi o kupnji stavke stolu mora biti ista kao i Total poreza i naknada,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Upload Vaše pismo glavu i logotip. (Možete ih uređivati kasnije).,
 Upper Income,Gornja Prihodi,
 Use Sandbox,Sandbox,
-Used Leaves,Koristi lišće,
 User,Korisnik,
 User ID,Korisnički ID,
 User ID not set for Employee {0},Korisnik ID nije postavljen za zaposlenika {0},
@@ -7949,12 +7944,10 @@
 Approvers,Odobrivači,
 The first Approver in the list will be set as the default Approver.,Prvi odobravatelj s popisa postavit će se kao zadani odobravatelj.,
 Shift Request Approver,Odobritelj zahtjeva za smjenom,
-PAN Number,PAN broj,
 Provident Fund Account,Račun osiguravajućeg fonda,
 MICR Code,MICR kod,
 Repay unclaimed amount from salary,Otplatite neiskorišteni iznos iz plaće,
 Deduction from salary,Odbitak od plaće,
-Expired Leaves,Isteklo lišće,
 If this is not checked the loan by default will be considered as a Demand Loan,"Ako se ovo ne potvrdi, zajam će se prema zadanim postavkama smatrati zajmom na zahtjev",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Ovaj se račun koristi za rezerviranje otplate zajma od zajmoprimca i za isplatu zajmova zajmoprimcu,
 This account is capital account which is used to allocate capital for loan disbursal account ,Ovaj račun je račun kapitala koji se koristi za raspodjelu kapitala za račun izdvajanja zajma,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Je obavezno,
 WhatsApp,Što ima,
 Make a call,Uputi poziv,
+Approve,Odobriti,
+Reject,Odbiti,
diff --git a/erpnext/translations/hu.csv b/erpnext/translations/hu.csv
index c707a1e..4ea5b9a 100644
--- a/erpnext/translations/hu.csv
+++ b/erpnext/translations/hu.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Az automatikus ismétlődő dokumentum frissítve,
 Automotive,Autóipar,
 Available,Elérhető,
-Available Leaves,Lehetséges távollétek,
 Available Qty,Elérhető Menny.,
 Available Selling,Elérhető értékesítés,
 Available for use date is required,Rendelkezésre állási dátum szükséges,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub szinkronizálási azonosító ID,
 Human Resource,Emberi Erőforrás HR,
 Human Resources,Emberi erőforrások HR,
-IFSC Code,IFSC kód,
 IGST Amount,IGST összeg,
 IP Address,IP-cím,
 ITC Available (whether in full op part),ITC elérhető (teljes opcióban),
@@ -1666,7 +1664,6 @@
 Other,Egyéb,
 Other Reports,Más jelentések,
 "Other outward supplies(Nil rated,Exempted)","Egyéb külső készletek (nulla, mentes)",
-Others,Egyéb,
 Out Qty,Mennyiségen kívül,
 Out Value,Értéken kívül,
 Out of Order,Üzemen kívül,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Összesen (adó nélkül/nettó),
 Total Achieved,Összes Elért,
 Total Actual,Összes Aktuális,
-Total Allocated Leaves,Teljes elosztott távollétek száma,
 Total Amount,Összesen,
 Total Amount Credited,Összesen jóváírt összeg,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Összesen alkalmazandó díjak a vásárlási nyugta tételek táblázatban egyeznie kell az Összes adókkal és illetékekkel,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Kérjük töltse fel levele fejlécét és logo-ját. (Ezeket később szerkesztheti).,
 Upper Income,Magasabb jövedelem,
 Use Sandbox,Sandbox felhasználása,
-Used Leaves,Felhasznált távollétek,
 User,használó,
 User ID,Felhasználó ID,
 User ID not set for Employee {0},Felhasználói azonosítót nem állított be az Alkalmazotthoz: {0},
@@ -7949,12 +7944,10 @@
 Approvers,Jóváhagyó,
 The first Approver in the list will be set as the default Approver.,A lista első jóváhagyója lesz az alapértelmezett jóváhagyó.,
 Shift Request Approver,Shift Request Approver,
-PAN Number,PAN szám,
 Provident Fund Account,Provident Fund számla,
 MICR Code,MICR kód,
 Repay unclaimed amount from salary,Visszafizetni az igényelt összeget a fizetésből,
 Deduction from salary,A fizetés levonása,
-Expired Leaves,Lejárt levelek,
 If this is not checked the loan by default will be considered as a Demand Loan,"Ha ez nincs bejelölve, akkor a hitelt alapértelmezés szerint Igény szerinti kölcsönnek kell tekinteni",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,"Ezt a számlát arra használják, hogy foglalják le a hiteltől származó hiteltörlesztéseket, és kölcsönöket is folyósítanak a hitelfelvevőnek",
 This account is capital account which is used to allocate capital for loan disbursal account ,"Ez a számla tőkeszámla, amelyet a hitel folyósítási számlájához szükséges tőke allokálására használnak",
@@ -8748,3 +8741,5 @@
 Is Mandatory,Kötelező,
 WhatsApp,WhatsApp,
 Make a call,Hívást kezdeményezni,
+Approve,Jóváhagy,
+Reject,Elutasít,
diff --git a/erpnext/translations/id.csv b/erpnext/translations/id.csv
index 2ec17e6..d84c3fd 100644
--- a/erpnext/translations/id.csv
+++ b/erpnext/translations/id.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Pembaruan dokumen otomatis diperbarui,
 Automotive,Otomotif,
 Available,Tersedia,
-Available Leaves,Cuti Yang Tersedia,
 Available Qty,Qty Tersedia,
 Available Selling,Jual Beli,
 Available for use date is required,Tersedia untuk tanggal penggunaan diperlukan,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,Sumber daya manusia,
 Human Resources,Sumber daya manusia,
-IFSC Code,Kode IFSC,
 IGST Amount,Jumlah IGST,
 IP Address,Alamat IP,
 ITC Available (whether in full op part),ITC Tersedia (baik dalam bagian op penuh),
@@ -1666,7 +1664,6 @@
 Other,Lain-lain,
 Other Reports,Laporan Lainnya,
 "Other outward supplies(Nil rated,Exempted)","Persediaan luar lainnya (nilai nol, Dibebaskan)",
-Others,Lainnya,
 Out Qty,Out Qty,
 Out Value,out Nilai,
 Out of Order,Habis,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Total (Tanpa Pajak),
 Total Achieved,Total Dicapai,
 Total Actual,Total Aktual,
-Total Allocated Leaves,Total Cuti Yang Dialokasikan,
 Total Amount,Nilai Total,
 Total Amount Credited,Jumlah Total Dikreditkan,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Total Biaya Berlaku di Purchase meja Jenis Penerimaan harus sama dengan jumlah Pajak dan Biaya,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Unggah kop surat dan logo. (Anda dapat mengubahnya nanti).,
 Upper Income,Penghasilan Atas,
 Use Sandbox,Gunakan Sandbox,
-Used Leaves,Cuti Yang Telah Digunakan,
 User,Pengguna,
 User ID,ID Pengguna,
 User ID not set for Employee {0},User ID tidak ditetapkan untuk Karyawan {0},
@@ -7949,12 +7944,10 @@
 Approvers,Pemberi persetujuan,
 The first Approver in the list will be set as the default Approver.,Pemberi Persetujuan pertama dalam daftar akan ditetapkan sebagai Pemberi Persetujuan default.,
 Shift Request Approver,Penyetuju Permintaan Shift,
-PAN Number,Nomor PAN,
 Provident Fund Account,Rekening Dana Provident,
 MICR Code,Kode MICR,
 Repay unclaimed amount from salary,Membayar kembali jumlah gaji yang belum diklaim,
 Deduction from salary,Pemotongan gaji,
-Expired Leaves,Daun kadaluarsa,
 If this is not checked the loan by default will be considered as a Demand Loan,"Jika tidak dicentang, pinjaman secara default akan dianggap sebagai Pinjaman Permintaan",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Rekening ini digunakan untuk membukukan pembayaran pinjaman dari peminjam dan juga menyalurkan pinjaman kepada peminjam,
 This account is capital account which is used to allocate capital for loan disbursal account ,Akun ini adalah akun modal yang digunakan untuk mengalokasikan modal ke akun pencairan pinjaman,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Apakah Wajib,
 WhatsApp,Ada apa,
 Make a call,Menelpon,
+Approve,Menyetujui,
+Reject,Menolak,
diff --git a/erpnext/translations/is.csv b/erpnext/translations/is.csv
index 93df452..7687e4a 100644
--- a/erpnext/translations/is.csv
+++ b/erpnext/translations/is.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Sjálfvirk endurtaka skjal uppfært,
 Automotive,Automotive,
 Available,Laus,
-Available Leaves,Lausar blöð,
 Available Qty,Laus magn,
 Available Selling,Laus selja,
 Available for use date is required,Til staðar er hægt að nota dagsetninguna,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,Mannauðs,
 Human Resources,Mannauður,
-IFSC Code,IFSC-kóði,
 IGST Amount,IGST upphæð,
 IP Address,IP-tölu,
 ITC Available (whether in full op part),ITC í boði (hvort sem það er í heild hluta),
@@ -1666,7 +1664,6 @@
 Other,Annað,
 Other Reports,Aðrar skýrslur,
 "Other outward supplies(Nil rated,Exempted)","Aðrar birgðir út á við (ekki metnar, undanþegnar)",
-Others,Aðrir,
 Out Qty,Út magn,
 Out Value,út Value,
 Out of Order,Bilað,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Samtals (án skatta),
 Total Achieved,alls Náð,
 Total Actual,alls Raunveruleg,
-Total Allocated Leaves,Samtals úthlutað blöð,
 Total Amount,Heildarupphæð,
 Total Amount Credited,Heildarfjárhæð innheimt,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Samtals greiðsla í kvittun atriðum borðið verður að vera það sama og Samtals skatta og gjöld,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Hlaða bréf höfuðið og merki. (Þú getur breytt þeim síðar).,
 Upper Income,Efri tekjur,
 Use Sandbox,Nota Sandbox,
-Used Leaves,Notaðar blöð,
 User,Notandi,
 User ID,notandanafn,
 User ID not set for Employee {0},User ID ekki sett fyrir Starfsmaður {0},
@@ -7949,12 +7944,10 @@
 Approvers,Ágreiningsmenn,
 The first Approver in the list will be set as the default Approver.,Fyrsti samþykkur listans verður stilltur sem sjálfgefinn samþykkur.,
 Shift Request Approver,Samþykki vaktabeiðni,
-PAN Number,PAN númer,
 Provident Fund Account,Reikningur sjóðsins,
 MICR Code,MICR kóði,
 Repay unclaimed amount from salary,Endurgreiða óheimta upphæð af launum,
 Deduction from salary,Frádráttur frá launum,
-Expired Leaves,Útrunnið lauf,
 If this is not checked the loan by default will be considered as a Demand Loan,Ef ekki er hakað við þetta verður lánið sjálfgefið litið á sem eftirspurnarlán,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Þessi reikningur er notaður til að bóka endurgreiðslur lána frá lántakanda og einnig til að greiða út lán til lántakanda,
 This account is capital account which is used to allocate capital for loan disbursal account ,Þessi reikningur er fjármagnsreikningur sem er notaður til að úthluta fjármagni til útborgunarreiknings lána,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Er skylda,
 WhatsApp,WhatsApp,
 Make a call,Hringja,
+Approve,Samþykkja,
+Reject,Hafna,
diff --git a/erpnext/translations/it.csv b/erpnext/translations/it.csv
index 558b091..b88cada 100644
--- a/erpnext/translations/it.csv
+++ b/erpnext/translations/it.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Ripetizione automatica aggiornata,
 Automotive,Automotive,
 Available,Disponibile,
-Available Leaves,Ferie disponibili,
 Available Qty,Disponibile Quantità,
 Available Selling,Vendita disponibile,
 Available for use date is required,Disponibile per la data di utilizzo è richiesto,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,ID di sincronizzazione Hub,
 Human Resource,Risorsa Umana,
 Human Resources,Risorse umane,
-IFSC Code,Codice IFSC,
 IGST Amount,Quantità IGST,
 IP Address,Indirizzo IP,
 ITC Available (whether in full op part),ITC disponibile (sia nella parte operativa completa),
@@ -1666,7 +1664,6 @@
 Other,Altro,
 Other Reports,Altri Reports,
 "Other outward supplies(Nil rated,Exempted)","Altre forniture esterne (esenti da zero, esenti)",
-Others,Altri,
 Out Qty,out Quantità,
 Out Value,Valore out,
 Out of Order,Guasto,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Totale (senza tasse),
 Total Achieved,Totale raggiunto,
 Total Actual,Totale Actual,
-Total Allocated Leaves,Ferie totali allocate,
 Total Amount,Totale Importo,
 Total Amount Credited,Importo totale accreditato,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Totale oneri addebitati in Acquisto tabella di carico Gli articoli devono essere uguale Totale imposte e oneri,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Carica la tua testa lettera e logo. (È possibile modificare in un secondo momento).,
 Upper Income,Reddito superiore,
 Use Sandbox,Usa Sandbox,
-Used Leaves,Ferie Usate,
 User,Utente,
 User ID,ID utente,
 User ID not set for Employee {0},ID utente non impostato per Dipedente {0},
@@ -7949,12 +7944,10 @@
 Approvers,Approvatori,
 The first Approver in the list will be set as the default Approver.,Il primo approvatore nell&#39;elenco verrà impostato come approvatore predefinito.,
 Shift Request Approver,Approvatore richiesta di turno,
-PAN Number,Numero PAN,
 Provident Fund Account,Conto del fondo di previdenza,
 MICR Code,Codice MICR,
 Repay unclaimed amount from salary,Rimborsare l&#39;importo non reclamato dallo stipendio,
 Deduction from salary,Detrazione dallo stipendio,
-Expired Leaves,Foglie scadute,
 If this is not checked the loan by default will be considered as a Demand Loan,"Se questa opzione non è selezionata, il prestito di default sarà considerato come un prestito a vista",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Questo conto viene utilizzato per la prenotazione del rimborso del prestito dal mutuatario e anche per l&#39;erogazione dei prestiti al mutuatario,
 This account is capital account which is used to allocate capital for loan disbursal account ,Questo conto è un conto capitale utilizzato per allocare il capitale per il conto di erogazione del prestito,
@@ -8748,3 +8741,5 @@
 Is Mandatory,È obbligatorio,
 WhatsApp,WhatsApp,
 Make a call,Effettuare una chiamata,
+Approve,Approva,
+Reject,Rifiutare,
diff --git a/erpnext/translations/ja.csv b/erpnext/translations/ja.csv
index 9a7bebe..11455bd 100644
--- a/erpnext/translations/ja.csv
+++ b/erpnext/translations/ja.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,自動繰り返し文書が更新されました,
 Automotive,自動車,
 Available,利用可,
-Available Leaves,利用可能な葉,
 Available Qty,利用可能な数量,
 Available Selling,販売可能,
 Available for use date is required,使用可能な日付が必要です,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,ハブ同期ID,
 Human Resource,人材,
 Human Resources,人事,
-IFSC Code,IFSCコード,
 IGST Amount,IGST金額,
 IP Address,IPアドレス,
 ITC Available (whether in full op part),利用可能なITC（完全な一部かどうかにかかわらず）,
@@ -1666,7 +1664,6 @@
 Other,その他,
 Other Reports,その他のレポート,
 "Other outward supplies(Nil rated,Exempted)",その他の外部供給品（定格なし、免除）,
-Others,その他,
 Out Qty,出量,
 Out Value,タイムアウト値,
 Out of Order,故障中,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),合計（税なし）,
 Total Achieved,達成計,
 Total Actual,実費計,
-Total Allocated Leaves,割り当てられた合計葉,
 Total Amount,合計,
 Total Amount Credited,合計金額,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,購入レシートItemsテーブル内の合計有料合計税金、料金と同じでなければなりません,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,レターヘッドとロゴをアップロードします（後で編集可能です）,
 Upper Income,高収益,
 Use Sandbox,サンドボックスを使用,
-Used Leaves,中古の葉,
 User,ユーザー,
 User ID,ユーザー ID,
 User ID not set for Employee {0},従業員{0}のユーザーIDが未設定です。,
@@ -7949,12 +7944,10 @@
 Approvers,承認者,
 The first Approver in the list will be set as the default Approver.,リストの最初の承認者がデフォルトの承認者として設定されます。,
 Shift Request Approver,シフトリクエスト承認者,
-PAN Number,PAN番号,
 Provident Fund Account,プロビデントファンドアカウント,
 MICR Code,MICRコード,
 Repay unclaimed amount from salary,未請求額を給与から返済する,
 Deduction from salary,給与からの控除,
-Expired Leaves,期限切れの葉,
 If this is not checked the loan by default will be considered as a Demand Loan,これがチェックされていない場合、デフォルトでローンはデマンドローンと見なされます,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,このアカウントは、借り手からのローン返済の予約と、借り手へのローンの支払いに使用されます。,
 This account is capital account which is used to allocate capital for loan disbursal account ,この口座は、ローン実行口座に資本を割り当てるために使用される資本口座です。,
@@ -8748,3 +8741,5 @@
 Is Mandatory,必須です,
 WhatsApp,WhatsApp,
 Make a call,電話を掛ける,
+Approve,承認,
+Reject,拒否,
diff --git a/erpnext/translations/km.csv b/erpnext/translations/km.csv
index 425940c..46dcaba 100644
--- a/erpnext/translations/km.csv
+++ b/erpnext/translations/km.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,បានធ្វើបច្ចុប្បន្នភាពឯកសារដោយស្វ័យប្រវត្តិ,
 Automotive,រថយន្ដ,
 Available,ដែលអាចប្រើបាន,
-Available Leaves,មានស្លឹក,
 Available Qty,ដែលអាចប្រើបាន Qty,
 Available Selling,លក់ដែលអាចប្រើបាន,
 Available for use date is required,អាចរកបានសម្រាប់កាលបរិច្ឆេទប្រើ,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,ធនធានមនុស្ស,
 Human Resources,ធនធានមនុស្ស,
-IFSC Code,កូដ IFSC,
 IGST Amount,បរិមាណ IGST,
 IP Address,អាសយដ្ឋាន IP,
 ITC Available (whether in full op part),មានអាយ។ ស៊ី។ ធី។ (មិនថាជាផ្នែកពេញលេញ),
@@ -1666,7 +1664,6 @@
 Other,ផ្សេងទៀត,
 Other Reports,របាយការណ៍ផ្សេងទៀត,
 "Other outward supplies(Nil rated,Exempted)",ការផ្គត់ផ្គង់ខាងក្រៅផ្សេងទៀត (បានវាយតម្លៃមិនលើកលែង),
-Others,អ្នកផ្សេងទៀត,
 Out Qty,ចេញ Qty,
 Out Value,តម្លៃចេញ,
 Out of Order,ចេញពីលំដាប់,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),សរុប (ដោយគ្មានពន្ធ),
 Total Achieved,សរុបសម្រេច,
 Total Actual,សរុបជាក់ស្តែង,
-Total Allocated Leaves,ស្លឹកបម្រុងសរុប,
 Total Amount,ចំនួនសរុប,
 Total Amount Credited,ចំនួនទឹកប្រាក់សរុបដែលបានផ្ទៀងផ្ទាត់,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,ការចោទប្រកាន់អនុវត្តសរុបនៅក្នុងការទិញតារាងការទទួលធាតុត្រូវដូចគ្នាដែលជាពន្ធសរុបនិងការចោទប្រកាន់,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,ផ្ទុកឡើងក្បាលលិខិតនិងស្លាកសញ្ញារបស់អ្នក។ (អ្នកអាចកែសម្រួលពួកវានៅពេលក្រោយ) ។,
 Upper Income,ផ្នែកខាងលើប្រាក់ចំណូល,
 Use Sandbox,ប្រើសេនបក់,
-Used Leaves,ប្រើស្លឹក,
 User,អ្នកប្រើ,
 User ID,លេខសម្គាល់អ្នកប្រើ,
 User ID not set for Employee {0},លេខសម្គាល់អ្នកប្រើដែលមិនបានកំណត់សម្រាប់បុគ្គលិក {0},
@@ -7949,12 +7944,10 @@
 Approvers,គួរឱ្យសង្ស័យ,
 The first Approver in the list will be set as the default Approver.,អ្នកផ្តល់យោបល់ដំបូងគេនៅក្នុងបញ្ជីនឹងត្រូវបានកំណត់ជាអ្នកផ្តល់យោបល់លំនាំដើម,
 Shift Request Approver,ផ្លាស់ប្តូរសំណើរសុំការផ្លាស់ប្តូរ,
-PAN Number,លេខ PAN,
 Provident Fund Account,គណនីមូលនិធិអ្នកផ្តល់សេវា,
 MICR Code,MICR កូដ,
 Repay unclaimed amount from salary,សងចំនួនទឹកប្រាក់ដែលមិនបានទាមទារពីប្រាក់ខែ,
 Deduction from salary,ការកាត់បន្ថយពីប្រាក់ខែ,
-Expired Leaves,ស្លឹកផុតកំណត់,
 If this is not checked the loan by default will be considered as a Demand Loan,ប្រសិនបើនេះមិនត្រូវបានពិនិត្យប្រាក់កម្ចីតាមលំនាំដើមនឹងត្រូវបានចាត់ទុកថាជាប្រាក់កម្ចីតម្រូវការ,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,គណនីនេះត្រូវបានប្រើសម្រាប់ការកក់ការសងប្រាក់កម្ចីពីអ្នកខ្ចីហើយថែមទាំងផ្តល់ប្រាក់កម្ចីដល់អ្នកខ្ចីផងដែរ,
 This account is capital account which is used to allocate capital for loan disbursal account ,គណនីនេះគឺជាគណនីដើមទុនដែលត្រូវបានប្រើដើម្បីបែងចែកដើមទុនសម្រាប់គណនីប្រាក់កម្ចី,
@@ -8748,3 +8741,5 @@
 Is Mandatory,គឺចាំបាច់,
 WhatsApp,WhatsApp,
 Make a call,ធ្វើការហៅ,
+Approve,អនុម័ត,
+Reject,ច្រានចោល,
diff --git a/erpnext/translations/kn.csv b/erpnext/translations/kn.csv
index 5b42113..18e44a1 100644
--- a/erpnext/translations/kn.csv
+++ b/erpnext/translations/kn.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,ಸ್ವಯಂ ಪುನರಾವರ್ತಿತ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ,
 Automotive,ಆಟೋಮೋಟಿವ್,
 Available,ಲಭ್ಯ,
-Available Leaves,ಲಭ್ಯವಿರುವ ಎಲೆಗಳು,
 Available Qty,ಲಭ್ಯವಿರುವ ಪ್ರಮಾಣ,
 Available Selling,ಲಭ್ಯವಿರುವ ಮಾರಾಟ,
 Available for use date is required,ಬಳಕೆ ದಿನಾಂಕಕ್ಕೆ ಲಭ್ಯವಿದೆ,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,ಹಬ್ ಸಿಂಕ್ ID,
 Human Resource,ಮಾನವ ಸಂಪನ್ಮೂಲ,
 Human Resources,ಮಾನವ ಸಂಪನ್ಮೂಲ,
-IFSC Code,IFSC ಕೋಡ್,
 IGST Amount,IGST ಮೊತ್ತ,
 IP Address,IP ವಿಳಾಸ,
 ITC Available (whether in full op part),ಐಟಿಸಿ ಲಭ್ಯವಿದೆ (ಪೂರ್ಣ ಆಪ್ ಭಾಗದಲ್ಲಿರಲಿ),
@@ -1666,7 +1664,6 @@
 Other,ಇತರ,
 Other Reports,ಇತರ ವರದಿಗಳು,
 "Other outward supplies(Nil rated,Exempted)","ಇತರ ಬಾಹ್ಯ ಸರಬರಾಜುಗಳು (ನಿಲ್ ರೇಟ್, ವಿನಾಯಿತಿ)",
-Others,ಇತರೆ,
 Out Qty,ಪ್ರಮಾಣ ಔಟ್,
 Out Value,ಔಟ್ ಮೌಲ್ಯ,
 Out of Order,ಆದೇಶದ ಹೊರಗೆ,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),ಒಟ್ಟು (ತೆರಿಗೆ ಇಲ್ಲದೆ),
 Total Achieved,ಒಟ್ಟು ಸಾಧಿಸಿದ,
 Total Actual,ನಿಜವಾದ ಒಟ್ಟು,
-Total Allocated Leaves,ಒಟ್ಟು ಹಂಚಲ್ಪಟ್ಟ ಎಲೆಗಳು,
 Total Amount,ಒಟ್ಟು ಪ್ರಮಾಣ,
 Total Amount Credited,ಒಟ್ಟು ಮೊತ್ತವನ್ನು ಕ್ರೆಡಿಟ್ ಮಾಡಲಾಗಿದೆ,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,ಖರೀದಿ ರಸೀತಿ ವಸ್ತುಗಳು ಕೋಷ್ಟಕದಲ್ಲಿ ಒಟ್ಟು ಅನ್ವಯಿಸುವ ತೆರಿಗೆ ಒಟ್ಟು ತೆರಿಗೆಗಳು ಮತ್ತು ಶುಲ್ಕಗಳು ಅದೇ ಇರಬೇಕು,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,ನಿಮ್ಮ ಪತ್ರ ತಲೆ ಮತ್ತು ಲೋಗೋ ಅಪ್ಲೋಡ್. (ನೀವು ಅವುಗಳನ್ನು ನಂತರ ಸಂಪಾದಿಸಬಹುದು).,
 Upper Income,ಮೇಲ್ ವರಮಾನ,
 Use Sandbox,ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ ಬಳಸಿ,
-Used Leaves,ಉಪಯೋಗಿಸಿದ ಎಲೆಗಳು,
 User,ಬಳಕೆದಾರ,
 User ID,ಬಳಕೆದಾರ ID,
 User ID not set for Employee {0},ಬಳಕೆದಾರ ID ನೌಕರ ಸೆಟ್ {0},
@@ -7949,12 +7944,10 @@
 Approvers,ಅನುಮೋದಕರು,
 The first Approver in the list will be set as the default Approver.,ಪಟ್ಟಿಯಲ್ಲಿನ ಮೊದಲ ಅನುಮೋದಕವನ್ನು ಡೀಫಾಲ್ಟ್ ಅನುಮೋದಕ ಎಂದು ಹೊಂದಿಸಲಾಗುವುದು.,
 Shift Request Approver,ಶಿಫ್ಟ್ ವಿನಂತಿ ಅನುಮೋದನೆ,
-PAN Number,ಪ್ಯಾನ್ ಸಂಖ್ಯೆ,
 Provident Fund Account,ಭವಿಷ್ಯ ನಿಧಿ ಖಾತೆ,
 MICR Code,MICR ಕೋಡ್,
 Repay unclaimed amount from salary,ಹಕ್ಕು ಪಡೆಯದ ಮೊತ್ತವನ್ನು ಸಂಬಳದಿಂದ ಮರುಪಾವತಿ ಮಾಡಿ,
 Deduction from salary,ಸಂಬಳದಿಂದ ಕಡಿತ,
-Expired Leaves,ಅವಧಿ ಮುಗಿದ ಎಲೆಗಳು,
 If this is not checked the loan by default will be considered as a Demand Loan,ಇದನ್ನು ಪರಿಶೀಲಿಸದಿದ್ದರೆ ಸಾಲವನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಬೇಡಿಕೆ ಸಾಲವೆಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,ಈ ಖಾತೆಯನ್ನು ಸಾಲಗಾರರಿಂದ ಸಾಲ ಮರುಪಾವತಿಯನ್ನು ಕಾಯ್ದಿರಿಸಲು ಮತ್ತು ಸಾಲಗಾರನಿಗೆ ಸಾಲವನ್ನು ವಿತರಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ,
 This account is capital account which is used to allocate capital for loan disbursal account ,"ಈ ಖಾತೆಯು ಬಂಡವಾಳ ಖಾತೆಯಾಗಿದ್ದು, ಸಾಲ ವಿತರಣಾ ಖಾತೆಗೆ ಬಂಡವಾಳವನ್ನು ನಿಯೋಜಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ",
@@ -8748,3 +8741,5 @@
 Is Mandatory,ಕಡ್ಡಾಯವಾಗಿದೆ,
 WhatsApp,ವಾಟ್ಸಾಪ್,
 Make a call,ಕರೆ ಮಾಡಿ,
+Approve,ಅನುಮೋದಿಸಿ,
+Reject,ರಿಜೆಕ್ಟ್,
diff --git a/erpnext/translations/ko.csv b/erpnext/translations/ko.csv
index 48a3e0c..788655c 100644
--- a/erpnext/translations/ko.csv
+++ b/erpnext/translations/ko.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,자동 반복 문서 업데이트 됨,
 Automotive,자동차,
 Available,사용 가능함,
-Available Leaves,사용 가능한 잎,
 Available Qty,사용 가능한 수량,
 Available Selling,판매 가능,
 Available for use date is required,사용 가능한 날짜가 필요합니다.,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,허브 동기화 ID,
 Human Resource,인적 자원,
 Human Resources,인적 자원,
-IFSC Code,IFSC 코드,
 IGST Amount,IGST 금액,
 IP Address,IP 주소,
 ITC Available (whether in full op part),ITC 가능 (전체 운영 부분 포함),
@@ -1666,7 +1664,6 @@
 Other,기타,
 Other Reports,기타 보고서,
 "Other outward supplies(Nil rated,Exempted)","기타 외부 공급 (Nil rated, Exempted)",
-Others,기타사항,
 Out Qty,수량 아웃,
 Out Value,제한 값,
 Out of Order,고장난,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),합계 (세금 제외),
 Total Achieved,전체 달성,
 Total Actual,실제 총,
-Total Allocated Leaves,총 할당 된 잎,
 Total Amount,총액,
 Total Amount Credited,총 크레딧 금액,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,구매 영수증 항목 테이블에 전체 적용 요금은 총 세금 및 요금과 동일해야합니다,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,편지의 머리와 로고를 업로드합니다. (나중에 편집 할 수 있습니다).,
 Upper Income,위 소득,
 Use Sandbox,사용 샌드 박스,
-Used Leaves,중고 잎,
 User,사용자,
 User ID,사용자 ID,
 User ID not set for Employee {0},사용자 ID 직원에 대한 설정하지 {0},
@@ -7949,12 +7944,10 @@
 Approvers,승인자,
 The first Approver in the list will be set as the default Approver.,목록의 첫 번째 승인자가 기본 승인자로 설정됩니다.,
 Shift Request Approver,교대 요청 승인자,
-PAN Number,PAN 번호,
 Provident Fund Account,프로 비 던트 펀드 계정,
 MICR Code,MICR 코드,
 Repay unclaimed amount from salary,급여에서 미 청구 금액 상환,
 Deduction from salary,급여에서 공제,
-Expired Leaves,만료 된 잎,
 If this is not checked the loan by default will be considered as a Demand Loan,선택하지 않으면 기본적으로 대출이 수요 대출로 간주됩니다.,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,이 계정은 차용인의 대출 상환을 예약하고 차용인에게 대출금을 지급하는 데 사용됩니다.,
 This account is capital account which is used to allocate capital for loan disbursal account ,이 계정은 대출 지급 계정에 자본을 할당하는 데 사용되는 자본 계정입니다.,
@@ -8748,3 +8741,5 @@
 Is Mandatory,필수,
 WhatsApp,WhatsApp,
 Make a call,전화하다,
+Approve,승인,
+Reject,받지 않다,
diff --git a/erpnext/translations/ku.csv b/erpnext/translations/ku.csv
index f1972e8..a7fcf4e 100644
--- a/erpnext/translations/ku.csv
+++ b/erpnext/translations/ku.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Vebijêrkek belgekirinê nûve bike,
 Automotive,Automotive,
 Available,Berdeste,
-Available Leaves,Leaves Available,
 Available Qty,Available Qty,
 Available Selling,Bazirganiya Bazirganî,
 Available for use date is required,Ji bo karanîna karanîna pêdivî ye,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Nasnameya Hub Sync,
 Human Resource,çavkaniyê binirxîne mirovan,
 Human Resources,Çavkaniyên Mirovî,
-IFSC Code,Kodê IFSC,
 IGST Amount,Amûr IGST,
 IP Address,Navnîşana IP&#39;yê,
 ITC Available (whether in full op part),Danûstandinên ITC (gelo di beşa tevahiya opoyê de),
@@ -1666,7 +1664,6 @@
 Other,Yên din,
 Other Reports,din Reports,
 "Other outward supplies(Nil rated,Exempted)","Materyalên din ên derveyî (Nil nirxandin, Pezakirin)",
-Others,yên din,
 Out Qty,out Qty,
 Out Value,Nirx out,
 Out of Order,Xirab,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Tiştek Bacê,
 Total Achieved,Total nebine,
 Total Actual,Total Actual,
-Total Allocated Leaves,Niştecîhên Teva Allocated,
 Total Amount,Temamê meblaxa,
 Total Amount Credited,Jimareya Giştî ya Credited,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,"Total doz li wergirtinê li Purchase Nawy Meqbûz sifrê divê eynî wek Total Bac, û doz li be",
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Upload nameya serokê û logo xwe. (Tu ji wan paşê biguherîne).,
 Upper Income,Dahata Upper,
 Use Sandbox,bikaranîna Ceriban,
-Used Leaves,Leaves Used,
 User,Bikaranîvan,
 User ID,ID&#39;ya bikarhêner,
 User ID not set for Employee {0},ID&#39;ya bikarhêner ji bo karkirinê set ne {0},
@@ -7949,12 +7944,10 @@
 Approvers,Têgihiştin,
 The first Approver in the list will be set as the default Approver.,Di lîsteyê de Pejirandina yekem dê wekî Destûra Pêşniyar were saz kirin.,
 Shift Request Approver,Pejirandina Daxwaza Guherînê,
-PAN Number,Hejmara PAN,
 Provident Fund Account,Hesabê Fona Pêşbîn,
 MICR Code,MICR Code,
 Repay unclaimed amount from salary,Mûçeya nevekirî ji meaşê paşde bidin,
 Deduction from salary,Daxistina ji meaş,
-Expired Leaves,Pelên Dawî,
 If this is not checked the loan by default will be considered as a Demand Loan,Ger ev neyê kontrol kirin dê deyn bi default dê wekî Krediyek Daxwaz were hesibandin,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Ev hesab ji bo veqetandina vegerandinên deyn ji deyndêr û her weha dayîna deyn ji deyndêr re tê bikar anîn,
 This account is capital account which is used to allocate capital for loan disbursal account ,Ev hesab hesabê sermiyan e ku ji bo veqetandina sermaye ji bo hesabê dayîna kredî tê bikar anîn,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Erkdar e,
 WhatsApp,WhatsApp,
 Make a call,Bang bikin,
+Approve,Destûrdan,
+Reject,Refzkirin,
diff --git a/erpnext/translations/lo.csv b/erpnext/translations/lo.csv
index cdb6f66..9b74f65 100644
--- a/erpnext/translations/lo.csv
+++ b/erpnext/translations/lo.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,ການປັບປຸງເອກະສານຊ້ໍາອັດຕະໂນມັດ,
 Automotive,ຍານຍົນ,
 Available,ສາມາດໃຊ້ໄດ້,
-Available Leaves,Available Leaves,
 Available Qty,ມີຈໍານວນ,
 Available Selling,Available Selling,
 Available for use date is required,ຕ້ອງມີວັນທີ່ໃຊ້ສໍາລັບການນໍາໃຊ້,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,ຊັບພະຍາກອນມະນຸດ,
 Human Resources,ຊັບພະຍາກອນມະນຸດ,
-IFSC Code,IFSC Code,
 IGST Amount,IGST Amount,
 IP Address,ທີ່ຢູ່ IP,
 ITC Available (whether in full op part),ມີ ITC (ບໍ່ວ່າຈະຢູ່ໃນສ່ວນເຕັມ),
@@ -1666,7 +1664,6 @@
 Other,ອື່ນ ໆ,
 Other Reports,ບົດລາຍງານອື່ນ ໆ,
 "Other outward supplies(Nil rated,Exempted)","ເຄື່ອງໃຊ້ພາຍນອກອື່ນໆ (ອັນດັບ, ຍົກເວັ້ນ)",
-Others,ຄົນອື່ນ,
 Out Qty,ອອກຈໍານວນ,
 Out Value,ມູນຄ່າອອກ,
 Out of Order,ອອກຈາກຄໍາສັ່ງ,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),ລວມ (ໂດຍບໍ່ມີພາສີ),
 Total Achieved,ທັງຫມົດບັນລຸ,
 Total Actual,ທັງຫມົດທີ່ເກີດຂຶ້ນຈິງ,
-Total Allocated Leaves,ຈໍານວນໃບທີ່ຖືກມອບຫມາຍ,
 Total Amount,ຈໍານວນທັງຫມົດ,
 Total Amount Credited,ຈໍານວນເງິນທີ່ໄດ້ຮັບການຢັ້ງຢືນ,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,ຄ່າໃຊ້ຈ່າຍທັງຫມົດໃນການຊື້ຕາຕະລາງໃບລາຍການຈະຕ້ອງເຊັ່ນດຽວກັນກັບພາສີອາກອນທັງຫມົດແລະຄ່າບໍລິການ,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,ອັບຫົວຈົດຫມາຍສະບັບແລະສັນຍາລັກຂອງທ່ານ. (ທ່ານສາມາດແກ້ໄຂໃຫ້ເຂົາເຈົ້າຕໍ່ມາ).,
 Upper Income,Upper ລາຍໄດ້,
 Use Sandbox,ການນໍາໃຊ້ Sandbox,
-Used Leaves,Used Leaves,
 User,ຜູ້ໃຊ້,
 User ID,User ID,
 User ID not set for Employee {0},User ID ບໍ່ກໍານົດສໍາລັບພະນັກງານ {0},
@@ -7949,12 +7944,10 @@
 Approvers,ຄວາມເປັນຫ່ວງ,
 The first Approver in the list will be set as the default Approver.,The Approver ຄັ້ງ ທຳ ອິດໃນລາຍຊື່ຈະຖືກຕັ້ງເປັນຄ່າເລີ່ມຕົ້ນຂອງ Approver.,
 Shift Request Approver,ການຂໍວິທີການປ່ຽນ,
-PAN Number,ເລກ PAN,
 Provident Fund Account,ບັນຊີກອງທຶນຜູ້ໃຫ້ບໍລິການ,
 MICR Code,ລະຫັດ MICR,
 Repay unclaimed amount from salary,ຈ່າຍຄືນ ຈຳ ນວນທີ່ບໍ່ໄດ້ຮັບຈາກເງິນເດືອນ,
 Deduction from salary,ການຫັກລົບຈາກເງິນເດືອນ,
-Expired Leaves,ໃບ ໝົດ ອາຍຸ,
 If this is not checked the loan by default will be considered as a Demand Loan,ຖ້າສິ່ງນີ້ບໍ່ຖືກກວດກາເງິນກູ້ໂດຍຄ່າເລີ່ມຕົ້ນຈະຖືກພິຈາລະນາເປັນເງິນກູ້ຕາມຄວາມຕ້ອງການ,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,ບັນຊີນີ້ໃຊ້ເພື່ອຈອງການຈ່າຍຄືນເງິນກູ້ຈາກຜູ້ກູ້ຢືມແລະຍັງຈ່າຍເງິນກູ້ໃຫ້ຜູ້ກູ້ຢືມອີກດ້ວຍ,
 This account is capital account which is used to allocate capital for loan disbursal account ,ບັນຊີນີ້ແມ່ນບັນຊີທຶນເຊິ່ງຖືກ ນຳ ໃຊ້ເພື່ອຈັດສັນທຶນ ສຳ ລັບບັນຊີການເບີກຈ່າຍເງິນກູ້,
@@ -8748,3 +8741,5 @@
 Is Mandatory,ແມ່ນບັງຄັບ,
 WhatsApp,WhatsApp,
 Make a call,ໂທອອກ,
+Approve,ອະນຸມັດ,
+Reject,ປະຕິເສດ,
diff --git a/erpnext/translations/lt.csv b/erpnext/translations/lt.csv
index 44bd069..2c87256 100644
--- a/erpnext/translations/lt.csv
+++ b/erpnext/translations/lt.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Auto pakartotinis dokumentas atnaujintas,
 Automotive,Automobiliai,
 Available,pasiekiamas,
-Available Leaves,Galimos lapai,
 Available Qty,Turimas Kiekis,
 Available Selling,Galima parduoti,
 Available for use date is required,Reikia naudoti datą,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,Žmogiškasis išteklis,
 Human Resources,Žmogiškieji ištekliai,
-IFSC Code,IFSC kodas,
 IGST Amount,IGST suma,
 IP Address,IP adresas,
 ITC Available (whether in full op part),ITC yra prieinamas (ar visa jo dalis),
@@ -1666,7 +1664,6 @@
 Other,kitas,
 Other Reports,Kiti pranešimai,
 "Other outward supplies(Nil rated,Exempted)","Kiti išoriniai reikmenys (nulinis, neapmokestinamas)",
-Others,Kiti,
 Out Qty,iš Kiekis,
 Out Value,iš Vertė,
 Out of Order,Neveikia,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Iš viso (be mokesčio),
 Total Achieved,Iš viso Pasiektas,
 Total Actual,Iš viso Tikrasis,
-Total Allocated Leaves,Iš viso paskirstytų lapų,
 Total Amount,Visas kiekis,
 Total Amount Credited,Iš viso kredituota suma,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Iš viso taikomi mokesčiai į pirkimo kvito sumų lentelė turi būti tokios pačios kaip viso mokesčių ir rinkliavų,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Įkelti savo laiške galvą ir logotipą. (Galite redaguoti juos vėliau).,
 Upper Income,viršutinė pajamos,
 Use Sandbox,Naudokite Smėlio,
-Used Leaves,Naudotos lapai,
 User,Vartotojas,
 User ID,Vartotojo ID,
 User ID not set for Employee {0},Vartotojo ID nenustatyti Darbuotojo {0},
@@ -7949,12 +7944,10 @@
 Approvers,Patvirtina,
 The first Approver in the list will be set as the default Approver.,Pirmasis patvirtintojas sąraše bus nustatytas kaip numatytasis patvirtintojas.,
 Shift Request Approver,„Shift Request Approver“,
-PAN Number,PAN numeris,
 Provident Fund Account,„Provident Fund“ sąskaita,
 MICR Code,MICR kodas,
 Repay unclaimed amount from salary,Iš atlyginimo grąžinkite neprašytą sumą,
 Deduction from salary,Išskaičiavimas iš atlyginimo,
-Expired Leaves,Pasibaigę lapai,
 If this is not checked the loan by default will be considered as a Demand Loan,"Jei tai nėra pažymėta, paskola pagal numatytuosius nustatymus bus laikoma paklausos paskola",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Ši sąskaita naudojama paskolos grąžinimo iš skolininko rezervavimui ir paskolos paskolos gavėjui išmokėjimui,
 This account is capital account which is used to allocate capital for loan disbursal account ,"Ši sąskaita yra kapitalo sąskaita, naudojama paskirstyti kapitalą paskolos išmokėjimo sąskaitai",
@@ -8748,3 +8741,5 @@
 Is Mandatory,Yra privaloma,
 WhatsApp,„WhatsApp“,
 Make a call,Paskambinti,
+Approve,Patvirtinti,
+Reject,Atmesti,
diff --git a/erpnext/translations/lv.csv b/erpnext/translations/lv.csv
index 131f94a..2cfa130 100644
--- a/erpnext/translations/lv.csv
+++ b/erpnext/translations/lv.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Auto atkārtots dokuments ir atjaunināts,
 Automotive,Automobiļu,
 Available,Pieejams,
-Available Leaves,Pieejamie lapas,
 Available Qty,Pieejams Daudz,
 Available Selling,Pieejams pārdošana,
 Available for use date is required,Pieejams izmantošanas datums ir nepieciešams,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,Cilvēkresursi,
 Human Resources,Cilvēkresursi,
-IFSC Code,IFSC kods,
 IGST Amount,IGST summa,
 IP Address,IP adrese,
 ITC Available (whether in full op part),Pieejams ITC (vai nu pilnā variantā),
@@ -1666,7 +1664,6 @@
 Other,Cits,
 Other Reports,citas Ziņojumi,
 "Other outward supplies(Nil rated,Exempted)","Citi izejmateriāli (bez nulles, ar atbrīvojumu)",
-Others,Pārējie,
 Out Qty,Out Daudz,
 Out Value,out Value,
 Out of Order,Nestrādā,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Kopā (bez nodokļiem),
 Total Achieved,Kopā Izpildīts,
 Total Actual,Kopā Faktiskais,
-Total Allocated Leaves,Kopējais izdalīto lapu skaits,
 Total Amount,Kopējā summa,
 Total Amount Credited,Kopējā kredīta summa,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,"Kopā piemērojamām izmaksām, kas pirkuma čeka Items galda jābūt tāds pats kā Kopā nodokļiem un nodevām",
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Augšupielādēt jūsu vēstules galva un logo. (Jūs varat rediģēt tos vēlāk).,
 Upper Income,Upper Ienākumi,
 Use Sandbox,Izmantot Sandbox,
-Used Leaves,Izmantotās lapas,
 User,Lietotājs,
 User ID,Lietotāja ID,
 User ID not set for Employee {0},"Lietotāja ID nav noteikts, Darbinieka {0}",
@@ -7949,12 +7944,10 @@
 Approvers,Apstiprinātāji,
 The first Approver in the list will be set as the default Approver.,Pirmais apstiprinātājs sarakstā tiks iestatīts kā noklusējuma apstiprinātājs.,
 Shift Request Approver,Maiņas pieprasījuma apstiprinātājs,
-PAN Number,PAN numurs,
 Provident Fund Account,Provident Fund konts,
 MICR Code,MICR kods,
 Repay unclaimed amount from salary,Atmaksājiet nepieprasīto summu no algas,
 Deduction from salary,Atskaitīšana no algas,
-Expired Leaves,"Lapas, kurām beidzies derīguma termiņš",
 If this is not checked the loan by default will be considered as a Demand Loan,"Ja tas nav pārbaudīts, aizdevums pēc noklusējuma tiks uzskatīts par Pieprasījuma aizdevumu",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,"Šis konts tiek izmantots, lai rezervētu aizdevuma atmaksu no aizņēmēja un arī aizdevuma izmaksu aizņēmējam",
 This account is capital account which is used to allocate capital for loan disbursal account ,"Šis konts ir kapitāla konts, ko izmanto, lai piešķirtu kapitālu aizdevuma izmaksas kontam",
@@ -8748,3 +8741,5 @@
 Is Mandatory,Ir obligāta,
 WhatsApp,WhatsApp,
 Make a call,Piezvanīt,
+Approve,Apstiprināt,
+Reject,Noraidīt,
diff --git a/erpnext/translations/mk.csv b/erpnext/translations/mk.csv
index 1084b12..f01b1b0 100644
--- a/erpnext/translations/mk.csv
+++ b/erpnext/translations/mk.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Автоматско повторување на документот се ажурира,
 Automotive,Автомобилски,
 Available,Достапни,
-Available Leaves,Достапни листови,
 Available Qty,На располагање Количина,
 Available Selling,Достапно Продажба,
 Available for use date is required,Достапен е датум за користење,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,Човечки ресурси,
 Human Resources,Човечки ресурси,
-IFSC Code,IFSC код,
 IGST Amount,Износ на IGST,
 IP Address,IP адреса,
 ITC Available (whether in full op part),ИТЦ достапен (без разлика дали е во целост опција),
@@ -1666,7 +1664,6 @@
 Other,Други,
 Other Reports,Други извештаи,
 "Other outward supplies(Nil rated,Exempted)","Други надворешни материјали (нула со оценка, Ослободена)",
-Others,"Други, пак,",
 Out Qty,Од Количина,
 Out Value,Од вредност,
 Out of Order,Надвор од нарачката,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Вкупно (без данок),
 Total Achieved,Вкупно Постигнати,
 Total Actual,Вкупно Крај,
-Total Allocated Leaves,Вкупно распределени листови,
 Total Amount,Вкупен износ,
 Total Amount Credited,Вкупен износ на кредит,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Вкупно применливи давачки во Набавка Потврда Предмети маса мора да биде иста како и вкупните даноци и давачки,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Внеси писмо главата и логото. (Можете да ги менувате подоцна).,
 Upper Income,Горниот дел од приходите,
 Use Sandbox,Користете Sandbox,
-Used Leaves,Користени листови,
 User,Корисник,
 User ID,ID на корисникот,
 User ID not set for Employee {0},ID на корисникот не е поставена за вработените {0},
@@ -7949,12 +7944,10 @@
 Approvers,Аверверзно,
 The first Approver in the list will be set as the default Approver.,Првиот Одобрувач во списокот ќе биде поставен како стандарден Одобрувач.,
 Shift Request Approver,Одобрувач на барање за смена,
-PAN Number,Број на ПАН,
 Provident Fund Account,Сметка на фондот за провиденција,
 MICR Code,МИКР-код,
 Repay unclaimed amount from salary,Отплати небаран износ од плата,
 Deduction from salary,Намалување од плата,
-Expired Leaves,Истечени лисја,
 If this is not checked the loan by default will be considered as a Demand Loan,"Доколку ова не е проверено, заемот по дифолт ќе се смета како заем за побарувачка",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Оваа сметка се користи за резервирање на отплати на заеми од заемопримачот и исто така за исплата на заеми на заемопримачот,
 This account is capital account which is used to allocate capital for loan disbursal account ,Оваа сметка е капитална сметка што се користи за алокација на капитал за сметка за исплата на заем,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Задолжително е,
 WhatsApp,WhatsApp,
 Make a call,Направи повик,
+Approve,Одобри,
+Reject,Reject,
diff --git a/erpnext/translations/ml.csv b/erpnext/translations/ml.csv
index 2ddec21..59d3160 100644
--- a/erpnext/translations/ml.csv
+++ b/erpnext/translations/ml.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,സ്വയം ആവർത്തന പ്രമാണം അപ്ഡേറ്റുചെയ്തു,
 Automotive,ഓട്ടോമോട്ടീവ്,
 Available,ലഭ്യമായ,
-Available Leaves,ലഭ്യമായ ഇലകൾ,
 Available Qty,ലഭ്യമായ Qty,
 Available Selling,വിൽക്കൽ ലഭ്യമാണ്,
 Available for use date is required,ഉപയോഗ തീയതിക്ക് ആവശ്യമാണ്,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,ഹബ് സമന്വയ ID,
 Human Resource,മാനവ വിഭവശേഷി,
 Human Resources,ഹ്യൂമൻ റിസോഴ്സസ്,
-IFSC Code,IFSC കോഡ്,
 IGST Amount,IGST തുക,
 IP Address,IP വിലാസം,
 ITC Available (whether in full op part),ഐടിസി ലഭ്യമാണ് (പൂർണ്ണമായ ഭാഗമാണെങ്കിലും),
@@ -1666,7 +1664,6 @@
 Other,മറ്റുള്ളവ,
 Other Reports,മറ്റ് റിപ്പോർട്ടുകളിൽ,
 "Other outward supplies(Nil rated,Exempted)","മറ്റ് ബാഹ്യ വിതരണങ്ങൾ (ഇല്ല റേറ്റുചെയ്തു, ഒഴിവാക്കി)",
-Others,മറ്റുള്ളവ,
 Out Qty,Qty ഔട്ട്,
 Out Value,മൂല്യം ഔട്ട്,
 Out of Order,പ്രവർത്തനരഹിതം,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),ആകെ (നികുതി കൂടാതെ),
 Total Achieved,മികച്ച വിജയം ആകെ,
 Total Actual,യഥാർത്ഥ ആകെ,
-Total Allocated Leaves,ആകെ അനുവദിച്ച ഇലകൾ,
 Total Amount,മൊത്തം തുക,
 Total Amount Credited,മൊത്തം തുക ലഭിച്ചു,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,വാങ്ങൽ രസീത് ഇനങ്ങൾ പട്ടികയിൽ ആകെ ബാധകമായ നിരക്കുകളും ആകെ നികുതി ചാർജുകളും തുല്യമായിരിക്കണം,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,നിങ്ങളുടെ കത്ത് തലയും ലോഗോ അപ്ലോഡ്. (നിങ്ങൾക്ക് പിന്നീട് എഡിറ്റ് ചെയ്യാൻ കഴിയും).,
 Upper Income,അപ്പർ ആദായ,
 Use Sandbox,താങ്കളെ,
-Used Leaves,ഉപയോഗിച്ച ഇലകൾ,
 User,ഉപയോക്താവ്,
 User ID,യൂസർ ഐഡി,
 User ID not set for Employee {0},ഉപയോക്തൃ ഐഡി ജീവനക്കാരുടെ {0} വെച്ചിരിക്കുന്നു അല്ല,
@@ -7949,12 +7944,10 @@
 Approvers,അംഗങ്ങൾ,
 The first Approver in the list will be set as the default Approver.,ലിസ്റ്റിലെ ആദ്യ അംഗീകാരം സ്ഥിരസ്ഥിതി അംഗീകാരമായി സജ്ജമാക്കും.,
 Shift Request Approver,ഷിഫ്റ്റ് അഭ്യർത്ഥന അംഗീകാരം,
-PAN Number,പാൻ നമ്പർ,
 Provident Fund Account,പ്രൊവിഡന്റ് ഫണ്ട് അക്കൗണ്ട്,
 MICR Code,MICR കോഡ്,
 Repay unclaimed amount from salary,ക്ലെയിം ചെയ്യാത്ത തുക ശമ്പളത്തിൽ നിന്ന് തിരിച്ചടയ്ക്കുക,
 Deduction from salary,ശമ്പളത്തിൽ നിന്ന് കിഴിവ്,
-Expired Leaves,കാലഹരണപ്പെട്ട ഇലകൾ,
 If this is not checked the loan by default will be considered as a Demand Loan,ഇത് പരിശോധിച്ചില്ലെങ്കിൽ സ്ഥിരസ്ഥിതിയായി വായ്പ ഒരു ഡിമാൻഡ് വായ്പയായി കണക്കാക്കും,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,വായ്പക്കാരനിൽ നിന്ന് വായ്പ തിരിച്ചടവ് ബുക്ക് ചെയ്യുന്നതിനും വായ്പക്കാരന് വായ്പ വിതരണം ചെയ്യുന്നതിനും ഈ അക്കൗണ്ട് ഉപയോഗിക്കുന്നു,
 This account is capital account which is used to allocate capital for loan disbursal account ,വായ്പാ വിതരണ അക്കൗണ്ടിനായി മൂലധനം അനുവദിക്കുന്നതിന് ഉപയോഗിക്കുന്ന മൂലധന അക്കൗണ്ടാണ് ഈ അക്കൗണ്ട്,
@@ -8748,3 +8741,5 @@
 Is Mandatory,നിർബന്ധമാണ്,
 WhatsApp,വാട്ട്‌സ്ആപ്പ്,
 Make a call,ഒരു കാൾ ചെയ്യുക,
+Approve,അംഗീകരിക്കുക,
+Reject,നിരസിക്കുക,
diff --git a/erpnext/translations/mr.csv b/erpnext/translations/mr.csv
index 4206335..ff339b6 100644
--- a/erpnext/translations/mr.csv
+++ b/erpnext/translations/mr.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,स्वयं पुनरावृत्ती कागदजत्र अद्यतनित केले,
 Automotive,ऑटोमोटिव्ह,
 Available,उपलब्ध,
-Available Leaves,उपलब्ध पाने,
 Available Qty,उपलब्ध Qty,
 Available Selling,उपलब्ध विक्री,
 Available for use date is required,वापरण्याच्या तारखेसाठी उपलब्ध असणे आवश्यक आहे,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,हब सिंक ID,
 Human Resource,मानव संसाधन,
 Human Resources,मानव संसाधन,
-IFSC Code,आयएफएससी कोड,
 IGST Amount,आयजीएसटी रक्कम,
 IP Address,IP पत्ता,
 ITC Available (whether in full op part),आयटीसी उपलब्ध (पूर्ण ऑप भागातील आहे की नाही),
@@ -1666,7 +1664,6 @@
 Other,इतर,
 Other Reports,इतर अहवाल,
 "Other outward supplies(Nil rated,Exempted)","इतर बाह्य पुरवठा (शून्य रेट नाही, सूट दिलेला)",
-Others,इतर,
 Out Qty,आउट Qty,
 Out Value,मूल्य Qty,
 Out of Order,नियमबाह्य,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),एकूण (कर न करता),
 Total Achieved,एकूण गाठले,
 Total Actual,वास्तविक एकूण,
-Total Allocated Leaves,एकूण वाटप पाने,
 Total Amount,एकूण रक्कम,
 Total Amount Credited,एकूण रक्कम श्रेय,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,खरेदी पावती आयटम टेबल एकूण लागू शुल्क एकूण कर आणि शुल्क म्हणून समान असणे आवश्यक आहे,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,आपले पत्र डोके आणि लोगो अपलोड करा. (आपण नंतर संपादित करू शकता).,
 Upper Income,उच्च उत्पन्न,
 Use Sandbox,Sandbox वापर,
-Used Leaves,वापरले पाने,
 User,वापरकर्ता,
 User ID,वापरकर्ता आयडी,
 User ID not set for Employee {0},वापरकर्ता आयडी कर्मचारी  {0}साठी सेट नाही,
@@ -7949,12 +7944,10 @@
 Approvers,वाद,
 The first Approver in the list will be set as the default Approver.,सूचीतील प्रथम मंजूर डीफॉल्ट मंजूर म्हणून सेट केला जाईल.,
 Shift Request Approver,शिफ्ट विनंती मंजूर,
-PAN Number,पॅन क्रमांक,
 Provident Fund Account,भविष्य निर्वाह निधी,
 MICR Code,एमआयसीआर कोड,
 Repay unclaimed amount from salary,वेतनातून दावा न केलेली रक्कम परत द्या,
 Deduction from salary,वेतनातून वजावट,
-Expired Leaves,कालबाह्य झालेले पाने,
 If this is not checked the loan by default will be considered as a Demand Loan,हे तपासले नाही तर डीफॉल्टनुसार कर्ज डिमांड लोन मानले जाईल,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,हे खाते कर्जदाराकडून कर्ज परतफेड बुक करण्यासाठी आणि कर्जदाराला कर्ज वितरणासाठी वापरले जाते.,
 This account is capital account which is used to allocate capital for loan disbursal account ,हे खाते भांडवल खाते आहे जे कर्ज वितरण खात्यासाठी भांडवल वाटप करण्यासाठी वापरले जाते,
@@ -8748,3 +8741,5 @@
 Is Mandatory,अनिवार्य आहे,
 WhatsApp,व्हॉट्सअ‍ॅप,
 Make a call,कॉल करा,
+Approve,मंजूर,
+Reject,नकार,
diff --git a/erpnext/translations/ms.csv b/erpnext/translations/ms.csv
index ebfc36c..2258a18 100644
--- a/erpnext/translations/ms.csv
+++ b/erpnext/translations/ms.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Dokumen pengulang automatik dikemas kini,
 Automotive,Automotif,
 Available,Tersedia,
-Available Leaves,Daun yang disediakan,
 Available Qty,Terdapat Qty,
 Available Selling,Jualan Sedia Ada,
 Available for use date is required,Tersedia untuk tarikh penggunaan,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,ID Sync Hub,
 Human Resource,Sumber Manusia,
 Human Resources,Sumber Manusia,
-IFSC Code,Kod IFSC,
 IGST Amount,Jumlah IGST,
 IP Address,Alamat IP,
 ITC Available (whether in full op part),ITC Tersedia (sama ada dalam bahagian penuh),
@@ -1666,7 +1664,6 @@
 Other,Lain-lain,
 Other Reports,Laporan Lain,
 "Other outward supplies(Nil rated,Exempted)","Bekalan luaran lain (Tiada nilai, Dikecualikan)",
-Others,Lain,
 Out Qty,Keluar Qty,
 Out Value,Nilai Keluar,
 Out of Order,Telah habis,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Jumlah (Tanpa Cukai),
 Total Achieved,Jumlah Pencapaian,
 Total Actual,Jumlah Sebenar,
-Total Allocated Leaves,Jumlah Dikelilingi Daun,
 Total Amount,Jumlah,
 Total Amount Credited,Jumlah Jumlah Dikreditkan,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Jumlah Caj Terpakai di Purchase meja Resit Item mesti sama dengan Jumlah Cukai dan Caj,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Memuat naik kepala surat dan logo. (Anda boleh mengeditnya kemudian).,
 Upper Income,Pendapatan Atas,
 Use Sandbox,Penggunaan Sandbox,
-Used Leaves,Daun yang digunakan,
 User,Pengguna,
 User ID,ID Pengguna,
 User ID not set for Employee {0},ID Pengguna tidak ditetapkan untuk Pekerja {0},
@@ -7949,12 +7944,10 @@
 Approvers,Meluluskan,
 The first Approver in the list will be set as the default Approver.,Pelulus pertama dalam senarai akan ditetapkan sebagai Pelulus lalai.,
 Shift Request Approver,Kelulusan Permintaan Shift,
-PAN Number,Nombor PAN,
 Provident Fund Account,Akaun Kumpulan Wang Simpanan,
 MICR Code,Kod MICR,
 Repay unclaimed amount from salary,Bayar balik jumlah yang tidak dituntut dari gaji,
 Deduction from salary,Potongan gaji,
-Expired Leaves,Daun Tamat Tempoh,
 If this is not checked the loan by default will be considered as a Demand Loan,"Sekiranya ini tidak diperiksa, pinjaman secara lalai akan dianggap sebagai Permintaan Pinjaman",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Akaun ini digunakan untuk membuat pembayaran pinjaman dari peminjam dan juga mengeluarkan pinjaman kepada peminjam,
 This account is capital account which is used to allocate capital for loan disbursal account ,Akaun ini adalah akaun modal yang digunakan untuk memperuntukkan modal untuk akaun pengeluaran pinjaman,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Adakah Wajib,
 WhatsApp,WhatsApp,
 Make a call,Buat panggilan,
+Approve,Terima,
+Reject,Tolak,
diff --git a/erpnext/translations/my.csv b/erpnext/translations/my.csv
index 82015c8..dc5ab12 100644
--- a/erpnext/translations/my.csv
+++ b/erpnext/translations/my.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,အော်တိုထပ်စာရွက်စာတမ်း updated,
 Automotive,မော်တော်ယာဉ်,
 Available,ရရှိနိုင်,
-Available Leaves,ရရှိနိုင်အရွက်,
 Available Qty,ရရှိနိုင်သည့် Qty,
 Available Selling,ရောင်းချခြင်းရရှိနိုင်,
 Available for use date is required,အသုံးပြုမှုနေ့စွဲများအတွက်ရရှိနိုင်လိုအပ်ပါသည်,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,hub Sync ကို ID ကို,
 Human Resource,လူ့စွမ်းအားအရင်းအမြစ်,
 Human Resources,လူ့အင်အားအရင်းအမြစ်,
-IFSC Code,IFSC Code ကို,
 IGST Amount,IGST ငွေပမာဏ,
 IP Address,IP Address ကို,
 ITC Available (whether in full op part),(အပြည့်အဝ op အစိတ်အပိုင်းအတွက်ရှိမရှိ) ရရှိနိုင် ITC,
@@ -1666,7 +1664,6 @@
 Other,အခြား,
 Other Reports,အခြားအစီရင်ခံစာများ,
 "Other outward supplies(Nil rated,Exempted)","သည်အခြားအပြင်ထောက်ပံ့ရေးပစ္စည်းများ (nil rated, ကင်းလွတ်ခွင့်)",
-Others,အခြားသူများ,
 Out Qty,Qty out,
 Out Value,Value တစ်ခုအထဲက,
 Out of Order,အမိန့်များထဲက,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),(အခွန်မပါ) စုစုပေါင်း,
 Total Achieved,အကောင်အထည်ဖော်ခဲ့သောစုစုပေါင်း,
 Total Actual,အမှန်တကယ်စုစုပေါင်း,
-Total Allocated Leaves,စုစုပေါင်းခွဲဝေအရွက်,
 Total Amount,စုစုပေါင်းတန်ဘိုး,
 Total Amount Credited,စုစုပေါင်းငွေပမာဏအသိအမှတ်ပြု,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,အရစ်ကျငွေလက်ခံပြေစာပစ္စည်းများ table ထဲမှာစုစုပေါင်းသက်ဆိုင်သောစွပ်စွဲချက်စုစုပေါင်းအခွန်နှင့်စွပ်စွဲချက်အဖြစ်အတူတူပင်ဖြစ်ရပါမည်,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,သင့်ရဲ့စာကိုဦးခေါင်းနှင့်လိုဂို upload ။ (သင်နောက်ပိုင်းမှာသူတို့ကိုတည်းဖြတ်နိုင်သည်) ။,
 Upper Income,အထက်ဝင်ငွေခွန်,
 Use Sandbox,Sandbox ကိုသုံးပါ,
-Used Leaves,တပတ်ရစ်အရွက်,
 User,အသုံးပြုသူကို,
 User ID,သုံးစွဲသူအိုင်ဒီ,
 User ID not set for Employee {0},အသုံးပြုသူ ID န်ထမ်း {0} သည်စွဲလမ်းခြင်းမ,
@@ -7949,12 +7944,10 @@
 Approvers,ခွင့်ပြုချက်,
 The first Approver in the list will be set as the default Approver.,စာရင်းထဲတွင်ပထမအတည်ပြုချက်ကိုမူလအတည်ပြုချက်အဖြစ်သတ်မှတ်မည်။,
 Shift Request Approver,Shift Request Approver,
-PAN Number,PAN နံပါတ်,
 Provident Fund Account,Provident ရန်ပုံငွေအကောင့်,
 MICR Code,MICR ကုဒ်,
 Repay unclaimed amount from salary,မတောင်းဆိုသောငွေကိုလစာမှပြန်ပေးပါ,
 Deduction from salary,လစာမှနှုတ်ယူခြင်း,
-Expired Leaves,သက်တမ်းကုန်ဆုံးသောအရွက်,
 If this is not checked the loan by default will be considered as a Demand Loan,အကယ်၍ ၎င်းကိုမစစ်ဆေးပါကပုံမှန်အားဖြင့်ချေးငွေကို Demand Loan အဖြစ်သတ်မှတ်မည်,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,ဒီအကောင့်ကိုငွေချေးသူထံမှချေးငွေပြန်ဆပ်မှုကိုကြိုတင်မှာကြားပြီးငွေချေးသူမှချေးငွေများထုတ်ပေးသည်,
 This account is capital account which is used to allocate capital for loan disbursal account ,ဤအကောင့်သည်ငွေရင်းငွေစာရင်းဖြစ်သည်,
@@ -8748,3 +8741,5 @@
 Is Mandatory,မသင်မနေရဖြစ်ပါတယ်,
 WhatsApp,နင်,
 Make a call,ခေါ်ဆိုပါ,
+Approve,အတည်ပြု,
+Reject,ပယ်ချ,
diff --git a/erpnext/translations/nl.csv b/erpnext/translations/nl.csv
index 862d585..ad11eae 100644
--- a/erpnext/translations/nl.csv
+++ b/erpnext/translations/nl.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Automatisch herhaalde document bijgewerkt,
 Automotive,Automotive,
 Available,Beschikbaar,
-Available Leaves,Beschikbare bladeren,
 Available Qty,Beschikbaar aantal,
 Available Selling,Beschikbare verkoop,
 Available for use date is required,Beschikbaar voor gebruik datum is vereist,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,Human Resource,
 Human Resources,Human Resources,
-IFSC Code,IFSC-code,
 IGST Amount,IGST Bedrag,
 IP Address,IP adres,
 ITC Available (whether in full op part),ITC beschikbaar (al dan niet volledig),
@@ -1666,7 +1664,6 @@
 Other,Ander,
 Other Reports,Andere rapporten,
 "Other outward supplies(Nil rated,Exempted)","Andere uitgaande leveringen (nul, vrijgesteld)",
-Others,anderen,
 Out Qty,out Aantal,
 Out Value,out Value,
 Out of Order,Out of Order,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Totaal (zonder btw),
 Total Achieved,Totaal Bereikt,
 Total Actual,Totaal Werkelijke,
-Total Allocated Leaves,Totaal toegewezen bladeren,
 Total Amount,Totaal bedrag,
 Total Amount Credited,Totaal gecrediteerd bedrag,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Totaal van toepassing zijnde kosten in Kwitantie Items tabel moet hetzelfde zijn als de totale belastingen en heffingen,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Upload uw brief hoofd en logo. (Je kunt ze later bewerken).,
 Upper Income,Bovenste Inkomen,
 Use Sandbox,Gebruik Sandbox,
-Used Leaves,Gebruikte bladeren,
 User,Gebruiker,
 User ID,Gebruikers-ID,
 User ID not set for Employee {0},Gebruikers-ID niet ingesteld voor werknemer {0},
@@ -7949,12 +7944,10 @@
 Approvers,Goedkeurders,
 The first Approver in the list will be set as the default Approver.,De eerste goedkeurder in de lijst wordt ingesteld als de standaard goedkeurder.,
 Shift Request Approver,Shift Request Approver,
-PAN Number,PAN-nummer,
 Provident Fund Account,Provident Fund-account,
 MICR Code,MICR-code,
 Repay unclaimed amount from salary,Betaal niet-opgeëiste bedrag terug van salaris,
 Deduction from salary,Inhouding op salaris,
-Expired Leaves,Verlopen bladeren,
 If this is not checked the loan by default will be considered as a Demand Loan,"Als dit niet is aangevinkt, wordt de lening standaard beschouwd als een opeisbare lening",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Deze rekening wordt gebruikt voor het boeken van aflossingen van leningen van de lener en ook voor het uitbetalen van leningen aan de lener,
 This account is capital account which is used to allocate capital for loan disbursal account ,Deze rekening is een kapitaalrekening die wordt gebruikt om kapitaal toe te wijzen voor het uitbetalen van leningen,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Is verplicht,
 WhatsApp,WhatsApp,
 Make a call,Bellen,
+Approve,Goedkeuren,
+Reject,afwijzen,
diff --git a/erpnext/translations/no.csv b/erpnext/translations/no.csv
index 0c1cfac..b136e97 100644
--- a/erpnext/translations/no.csv
+++ b/erpnext/translations/no.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Automatisk gjentatt dokument oppdatert,
 Automotive,Automotive,
 Available,Tilgjengelig,
-Available Leaves,Tilgjengelige blader,
 Available Qty,Tilgjengelig antall,
 Available Selling,Tilgjengelig salg,
 Available for use date is required,Tilgjengelig for bruk er nødvendig,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,Menneskelig Resurs,
 Human Resources,Menneskelige ressurser,
-IFSC Code,IFSC-kode,
 IGST Amount,IGST Beløp,
 IP Address,IP adresse,
 ITC Available (whether in full op part),ITC tilgjengelig (om fullstendig del),
@@ -1666,7 +1664,6 @@
 Other,Andre,
 Other Reports,Andre rapporter,
 "Other outward supplies(Nil rated,Exempted)","Andre forsyninger (ikke vurdert, unntatt)",
-Others,Annet,
 Out Qty,Ut Antall,
 Out Value,ut Verdi,
 Out of Order,I ustand,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Totalt (uten skatt),
 Total Achieved,Oppnådd Total,
 Total Actual,Total Actual,
-Total Allocated Leaves,Totalt tildelte blad,
 Total Amount,Totalbeløp,
 Total Amount Credited,Totalt beløp krevet,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Totalt gjeldende avgifter i kvitteringen Elementer tabellen må være det samme som total skatter og avgifter,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Last opp din brevhode og logo. (Du kan redigere dem senere).,
 Upper Income,Øvre inntekt,
 Use Sandbox,bruk Sandbox,
-Used Leaves,Brukte blad,
 User,Bruker,
 User ID,bruker-ID,
 User ID not set for Employee {0},Bruker-ID ikke satt for Employee {0},
@@ -7949,12 +7944,10 @@
 Approvers,Tilstridende,
 The first Approver in the list will be set as the default Approver.,Den første godkjenneren i listen blir angitt som standard godkjenner.,
 Shift Request Approver,Godkjenning av skiftforespørsel,
-PAN Number,PAN-nummer,
 Provident Fund Account,Forsikringskonto,
 MICR Code,MICR-kode,
 Repay unclaimed amount from salary,Tilbakebetalt uavhentet beløp fra lønn,
 Deduction from salary,Trekk fra lønn,
-Expired Leaves,Utløpte blader,
 If this is not checked the loan by default will be considered as a Demand Loan,"Hvis dette ikke er sjekket, vil lånet som standard bli betraktet som et etterspørsel",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Denne kontoen brukes til å bestille tilbakebetaling av lån fra låntaker og også utbetale lån til låner,
 This account is capital account which is used to allocate capital for loan disbursal account ,Denne kontoen er en kapitalkonto som brukes til å fordele kapital til utbetaling av lån,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Er obligatorisk,
 WhatsApp,Hva skjer,
 Make a call,Ta en telefon,
+Approve,Vedta,
+Reject,Avvis,
diff --git a/erpnext/translations/pl.csv b/erpnext/translations/pl.csv
index 272e2fc..9be56f3 100644
--- a/erpnext/translations/pl.csv
+++ b/erpnext/translations/pl.csv
@@ -285,7 +285,6 @@
 Auto Repeat,Auto Repeat,
 Auto repeat document updated,Automatycznie powtórzony dokument został zaktualizowany,
 Available,Dostępny,
-Available Leaves,Dostępne Nieobecności,
 Available Qty,Dostępne szt,
 Available Selling,Dostępne sprzedawanie,
 Available for use date is required,Dostępna jest data przydatności do użycia,
@@ -1121,7 +1120,6 @@
 Hub Sync ID,Identyfikator Hub Sync,
 Human Resource,Zasoby ludzkie,
 Human Resources,Kadry,
-IFSC Code,Kod IFSC,
 IGST Amount,Wielkość IGST,
 IP Address,Adres IP,
 ITC Available (whether in full op part),Dostępne ITC (czy w pełnej wersji),
@@ -1659,7 +1657,6 @@
 Other,Inne,
 Other Reports,Inne raporty,
 "Other outward supplies(Nil rated,Exempted)","Inne dostawy zewnętrzne (bez oceny, zwolnione)",
-Others,Inni,
 Out Qty,Brak Ilości,
 Out Value,Brak Wartości,
 Out of Order,Nieczynny,
@@ -2788,7 +2785,6 @@
 Total (Without Tax),Razem (bez podatku),
 Total Achieved,Razem Osiągnięte,
 Total Actual,Razem Rzeczywisty,
-Total Allocated Leaves,Całkowicie Przydzielone Nieobecności,
 Total Amount,Wartość całkowita,
 Total Amount Credited,Całkowita kwota kredytu,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Wszystkich obowiązujących opłat w ZAKUPU Elementy tabeli muszą być takie same jak Wszystkich podatkach i opłatach,
@@ -2898,7 +2894,6 @@
 Upload your letter head and logo. (you can edit them later).,Prześlij nagłówek firmowy i logo. (Można je edytować później).,
 Upper Income,Wzrost Wpływów,
 Use Sandbox,Korzystanie Sandbox,
-Used Leaves,Wykorzystane Nieobecności,
 User,Użytkownik,
 User ID,ID Użytkownika,
 User ID not set for Employee {0},ID Użytkownika nie ustawiony dla Pracownika {0},
@@ -7860,12 +7855,10 @@
 Approvers,Osoby zatwierdzające,
 The first Approver in the list will be set as the default Approver.,Pierwsza osoba zatwierdzająca na liście zostanie ustawiona jako domyślna osoba zatwierdzająca.,
 Shift Request Approver,Zatwierdzający prośbę o zmianę,
-PAN Number,Numer PAN,
 Provident Fund Account,Konto funduszu rezerwowego,
 MICR Code,Kod MICR,
 Repay unclaimed amount from salary,Zwróć nieodebraną kwotę z wynagrodzenia,
 Deduction from salary,Odliczenie od wynagrodzenia,
-Expired Leaves,Wygasłe liście,
 If this is not checked the loan by default will be considered as a Demand Loan,"Jeśli opcja ta nie zostanie zaznaczona, pożyczka domyślnie zostanie uznana za pożyczkę na żądanie",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,"To konto służy do księgowania spłat pożyczki od pożyczkobiorcy, a także do wypłaty pożyczki pożyczkobiorcy",
 This account is capital account which is used to allocate capital for loan disbursal account ,"Rachunek ten jest rachunkiem kapitałowym, który służy do alokacji kapitału na rachunek wypłat pożyczki",
@@ -8659,3 +8652,5 @@
 Is Mandatory,Jest obowiązkowe,
 WhatsApp,WhatsApp,
 Make a call,Zadzwoń,
+Approve,Zatwierdzać,
+Reject,Odrzucać,
diff --git a/erpnext/translations/ps.csv b/erpnext/translations/ps.csv
index 8d4e467..8033752 100644
--- a/erpnext/translations/ps.csv
+++ b/erpnext/translations/ps.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,د اتوم بیاکتنه سند تازه شوی,
 Automotive,مشين,
 Available,شته,
-Available Leaves,شتون لري,
 Available Qty,موجود Qty,
 Available Selling,موجود پلورل,
 Available for use date is required,د کارولو نیټه اړینه ده,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,د کور همکاري ID,
 Human Resource,د بشري منابعو,
 Human Resources,بشري منابع,
-IFSC Code,د IFSC کود,
 IGST Amount,د IGST مقدار,
 IP Address,IP پته,
 ITC Available (whether in full op part),ITC شتون لري (ایا په بشپړ انتخابي برخه کې),
@@ -1666,7 +1664,6 @@
 Other,نور,
 Other Reports,نور راپورونه,
 "Other outward supplies(Nil rated,Exempted)",نور خارجی اکمالات (نیل ارزول شوی ، معاف شوی),
-Others,نور,
 Out Qty,له جملې څخه Qty,
 Out Value,له جملې څخه د ارزښت,
 Out of Order,له کاره وتلی,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),ټول (د مالیې پرته),
 Total Achieved,Total السته,
 Total Actual,Total واقعي,
-Total Allocated Leaves,ټول ټاکل شوي پاڼي,
 Total Amount,جمله پیسی,
 Total Amount Credited,ټولې پیسې اعتبار شوي,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,په رانيول رسيد توکي جدول ټولې د تطبیق په تور باید په توګه ټول ماليات او په تور ورته وي,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,پورته ستاسو لیک مشر او لوګو. (کولی شئ چې وروسته د سمولو لپاره).,
 Upper Income,د مشرانو پر عايداتو,
 Use Sandbox,sandbox استعمال,
-Used Leaves,استعمال شوي پاڼي,
 User,کارن,
 User ID,کارن نوم,
 User ID not set for Employee {0},کارن تذکرو لپاره د کارکونکو نه {0},
@@ -7949,12 +7944,10 @@
 Approvers,مخالفت,
 The first Approver in the list will be set as the default Approver.,په لیست کې لومړی تصویبونکی به د ډیفالټ تصویب کونکي په توګه وټاکل شي.,
 Shift Request Approver,د شفټ غوښتنه تصویب,
-PAN Number,د پان شمیره,
 Provident Fund Account,د راتلونکي فنډ حساب,
 MICR Code,د MICR کوډ,
 Repay unclaimed amount from salary,له تنخوا څخه نامعلومه اندازه پیسې بیرته ورکړئ,
 Deduction from salary,له معاش څخه تخفیف,
-Expired Leaves,ختم شوې پاvesې,
 If this is not checked the loan by default will be considered as a Demand Loan,که چیرې دا چک نه شي نو په ډیفالټ ډول به د غوښتنې پور په توګه وګ .ل شي,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,دا حساب د پور ورکونکي څخه د پور بیرته تادیات کولو لپاره او هم پور اخیستونکي ته د پورونو توزیع لپاره کارول کیږي,
 This account is capital account which is used to allocate capital for loan disbursal account ,دا حساب د پانګوونې حساب دی چې د پور توزیع شوي حساب لپاره د پانګو ځانګړي کولو لپاره کارول کیږي,
@@ -8748,3 +8741,5 @@
 Is Mandatory,لازمي دی,
 WhatsApp,WhatsApp,
 Make a call,یو زنګ ووهه,
+Approve,منظور کړل,
+Reject,رد,
diff --git a/erpnext/translations/pt-BR.csv b/erpnext/translations/pt-BR.csv
index 0b7fa7e..9823470 100644
--- a/erpnext/translations/pt-BR.csv
+++ b/erpnext/translations/pt-BR.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Auto repetir documento atualizado,
 Automotive,Automotivo,
 Available,Disponível,
-Available Leaves,Folhas Disponíveis,
 Available Qty,Qtde Disponível,
 Available Selling,Venda Disponível,
 Available for use date is required,Disponível para data de uso é obrigatório,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Identificação da Sincronização do Hub,
 Human Resource,Recursos Humanos,
 Human Resources,Recursos Humanos,
-IFSC Code,Código IFSC,
 IGST Amount,Valor IGST,
 IP Address,Endereço de Ip,
 ITC Available (whether in full op part),ITC disponível (seja na parte operacional completa),
@@ -1666,7 +1664,6 @@
 Other,Outro,
 Other Reports,Relatórios Adicionais,
 "Other outward supplies(Nil rated,Exempted)","Outras fontes externas (valor nominal nominal, isentos)",
-Others,Outros,
 Out Qty,Qtde Saída,
 Out Value,Valor Saída,
 Out of Order,Fora de Serviço,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Total (sem Imposto),
 Total Achieved,Total de Alcançados,
 Total Actual,Total Atual,
-Total Allocated Leaves,Total de Folhas Alocadas,
 Total Amount,Valor Total,
 Total Amount Credited,Quantidade Total Creditada,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Total de encargos aplicáveis em Purchase mesa Itens recibo deve ser o mesmo que o total Tributos e Encargos,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Publique seu timbre e logotipo. (Você pode editá-las mais tarde).,
 Upper Income,Alta Renda,
 Use Sandbox,Use Sandbox,
-Used Leaves,Folhas Usadas,
 User,Usuário,
 User ID,ID de Usuário,
 User ID not set for Employee {0},ID de Usuário Não Definida Para Colaborador {0},
@@ -7949,12 +7944,10 @@
 Approvers,Aprovadores,
 The first Approver in the list will be set as the default Approver.,O primeiro aprovador da lista será definido como o aprovador padrão.,
 Shift Request Approver,Aprovador de Solicitação de Turno,
-PAN Number,Número PAN,
 Provident Fund Account,Conta do Fundo de Previdência,
 MICR Code,Código MICR,
 Repay unclaimed amount from salary,Reembolsar quantia não reclamada do salário,
 Deduction from salary,Dedução do salário,
-Expired Leaves,Folhas Vencidas,
 If this is not checked the loan by default will be considered as a Demand Loan,Se esta opção não for marcada o empréstimo por padrão será considerado um empréstimo à vista,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Esta conta é usada para registrar reembolsos de empréstimos do mutuário e também desembolsar empréstimos para o mutuário,
 This account is capital account which is used to allocate capital for loan disbursal account ,Esta conta é a conta de capital que é usada para alocar capital para a conta de desembolso do empréstimo,
@@ -8748,3 +8741,5 @@
 Is Mandatory,É mandatório,
 WhatsApp,Whatsapp,
 Make a call,Faça uma ligação,
+Approve,Aprovar,
+Reject,Rejeitar,
diff --git a/erpnext/translations/pt.csv b/erpnext/translations/pt.csv
index 10f1b71..c2afe32 100644
--- a/erpnext/translations/pt.csv
+++ b/erpnext/translations/pt.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Auto repetir documento atualizado,
 Automotive,Automóvel,
 Available,Disponível,
-Available Leaves,Folhas Disponíveis,
 Available Qty,Qtd disponível,
 Available Selling,Venda disponível,
 Available for use date is required,Disponível para data de uso é obrigatório,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Identificação da Sincronização do Hub,
 Human Resource,Recursos humanos,
 Human Resources,Recursos humanos,
-IFSC Code,Código IFSC,
 IGST Amount,Valor IGST,
 IP Address,Endereço de IP,
 ITC Available (whether in full op part),ITC disponível (seja na parte operacional completa),
@@ -1666,7 +1664,6 @@
 Other,Outro,
 Other Reports,Outros relatórios,
 "Other outward supplies(Nil rated,Exempted)","Outras fontes externas (valor nominal nominal, isentos)",
-Others,Outros,
 Out Qty,Qtd de Saída,
 Out Value,Valor de Saída,
 Out of Order,Fora de serviço,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Total (sem imposto),
 Total Achieved,Total Alcançado,
 Total Actual,Total real,
-Total Allocated Leaves,Total de Folhas Alocadas,
 Total Amount,Valor total,
 Total Amount Credited,Quantidade Total Creditada,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Total de encargos aplicáveis em Purchase mesa Itens recibo deve ser o mesmo que o total Tributos e Encargos,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Carregue o cabeçalho e logótipo da carta. (Pode editá-los mais tarde.),
 Upper Income,Rendimento Superior,
 Use Sandbox,Use Sandbox,
-Used Leaves,Folhas Usadas,
 User,Do utilizador,
 User ID,ID de Utiliz.,
 User ID not set for Employee {0},Não está definido a ID do utilizador para o Funcionário {0},
@@ -7949,12 +7944,10 @@
 Approvers,Aprovadores,
 The first Approver in the list will be set as the default Approver.,O primeiro aprovador da lista será definido como o aprovador padrão.,
 Shift Request Approver,Aprovador de solicitação de turno,
-PAN Number,Número PAN,
 Provident Fund Account,Conta do fundo de previdência,
 MICR Code,Código MICR,
 Repay unclaimed amount from salary,Reembolsar quantia não reclamada do salário,
 Deduction from salary,Dedução do salário,
-Expired Leaves,Folhas Vencidas,
 If this is not checked the loan by default will be considered as a Demand Loan,"Se esta opção não for marcada, o empréstimo, por padrão, será considerado um empréstimo à vista",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Esta conta é usada para registrar reembolsos de empréstimos do mutuário e também desembolsar empréstimos para o mutuário,
 This account is capital account which is used to allocate capital for loan disbursal account ,Esta conta é a conta de capital que é usada para alocar capital para a conta de desembolso do empréstimo,
@@ -8748,3 +8741,5 @@
 Is Mandatory,É mandatório,
 WhatsApp,Whatsapp,
 Make a call,Faça uma ligação,
+Approve,Aprovar,
+Reject,Rejeitar,
diff --git a/erpnext/translations/ro.csv b/erpnext/translations/ro.csv
index 80c32aa..0cb3f84 100644
--- a/erpnext/translations/ro.csv
+++ b/erpnext/translations/ro.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Documentul repetat automat a fost actualizat,
 Automotive,Autopropulsat,
 Available,Disponibil,
-Available Leaves,Frunzele disponibile,
 Available Qty,Cantitate disponibilă,
 Available Selling,Vânzări disponibile,
 Available for use date is required,Data de utilizare disponibilă pentru utilizare este necesară,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub ID de sincronizare,
 Human Resource,Resurse umane,
 Human Resources,Resurse umane,
-IFSC Code,Codul IFSC,
 IGST Amount,Suma IGST,
 IP Address,Adresa IP,
 ITC Available (whether in full op part),ITC Disponibil (fie în opțiune integrală),
@@ -1666,7 +1664,6 @@
 Other,Altul,
 Other Reports,Alte rapoarte,
 "Other outward supplies(Nil rated,Exempted)","Alte consumabile exterioare (Nil evaluat, scutit)",
-Others,Altel,
 Out Qty,Out Cantitate,
 Out Value,Valoarea afară,
 Out of Order,Scos din uz,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Total (fără taxe),
 Total Achieved,Raport Realizat,
 Total Actual,Raport real,
-Total Allocated Leaves,Frunzele totale alocate,
 Total Amount,Suma totală,
 Total Amount Credited,Suma totală creditată,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Taxe totale aplicabile în tabelul de achiziție Chitanță Elementele trebuie să fie la fel ca total impozite și taxe,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Încărcați capul scrisoare și logo-ul. (Le puteți edita mai târziu).,
 Upper Income,Venituri de sus,
 Use Sandbox,utilizare Sandbox,
-Used Leaves,Frunze utilizate,
 User,Utilizator,
 User ID,ID-ul de utilizator,
 User ID not set for Employee {0},ID-ul de utilizator nu este setat pentru Angajat {0},
@@ -7949,12 +7944,10 @@
 Approvers,Aprobatori,
 The first Approver in the list will be set as the default Approver.,Primul aprobator din listă va fi setat ca aprobator implicit.,
 Shift Request Approver,Aprobarea cererii de schimbare,
-PAN Number,Număr PAN,
 Provident Fund Account,Contul Fondului Provident,
 MICR Code,Cod MICR,
 Repay unclaimed amount from salary,Rambursați suma nepreluată din salariu,
 Deduction from salary,Deducerea din salariu,
-Expired Leaves,Frunze expirate,
 If this is not checked the loan by default will be considered as a Demand Loan,"Dacă acest lucru nu este verificat, împrumutul implicit va fi considerat un împrumut la cerere",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,"Acest cont este utilizat pentru rezervarea rambursărilor de împrumut de la împrumutat și, de asemenea, pentru a plăti împrumuturi către împrumutat",
 This account is capital account which is used to allocate capital for loan disbursal account ,Acest cont este un cont de capital care este utilizat pentru alocarea de capital pentru contul de debursare a împrumutului,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Este obligatoriu,
 WhatsApp,WhatsApp,
 Make a call,Efectua un apel,
+Approve,Aproba,
+Reject,Respinge,
diff --git a/erpnext/translations/ru.csv b/erpnext/translations/ru.csv
index 6a7e79f..da4e1be 100644
--- a/erpnext/translations/ru.csv
+++ b/erpnext/translations/ru.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Автоматический повторный документ обновлен,
 Automotive,Автомобилестроение,
 Available,Доступно,
-Available Leaves,Доступные листья,
 Available Qty,Доступное количество,
 Available Selling,Доступные продажи,
 Available for use date is required,Доступна дата использования.,
@@ -1120,7 +1119,6 @@
 Hub Sync ID,Идентификатор синхронизации концентратора,
 Human Resource,Кадры,
 Human Resources,Персонал,
-IFSC Code,Код IFSC,
 IGST Amount,Сумма IGST,
 IP Address,IP адрес,
 ITC Available (whether in full op part),ITC Доступен (будь то в полной части оп),
@@ -1664,7 +1662,6 @@
 Other,Другое,
 Other Reports,Другие отчеты,
 "Other outward supplies(Nil rated,Exempted)","Другие внешние поставки (Ноль оценили, освобождены)",
-Others,Другое,
 Out Qty,Из кол-ва,
 Out Value,Выходное значение,
 Out of Order,Вышел из строя,
@@ -2810,7 +2807,6 @@
 Total (Without Tax),Всего (без налога),
 Total Achieved,Всего выполнено,
 Total Actual,Общий фактический,
-Total Allocated Leaves,Всего выделенных листов,
 Total Amount,Общая сумма,
 Total Amount Credited,Общая сумма кредита,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,"Всего Применимые сборы в таблице Purchase квитанций Элементов должны быть такими же, как все налоги и сборы",
@@ -2920,7 +2916,6 @@
 Upload your letter head and logo. (you can edit them later).,Загрузить шапку фирменного бланка и логотип. (Вы можете отредактировать их позднее).,
 Upper Income,Высокий уровень дохода,
 Use Sandbox,Использовать «песочницу»,
-Used Leaves,Используемые листы,
 User,Пользователь,
 User ID,ID пользователя,
 User ID not set for Employee {0},ID пользователя не установлен для сотрудника {0},
@@ -7861,12 +7856,10 @@
 Approvers,Утверждающие,
 The first Approver in the list will be set as the default Approver.,Первый утверждающий в списке будет установлен как утверждающий по умолчанию.,
 Shift Request Approver,Утверждающий запрос смены,
-PAN Number,Номер PAN,
 Provident Fund Account,Счет фонда обеспечения персонала,
 MICR Code,Код MICR,
 Repay unclaimed amount from salary,Вернуть невостребованную сумму из заработной платы,
 Deduction from salary,Удержание из заработной платы,
-Expired Leaves,Просроченные листья,
 If this is not checked the loan by default will be considered as a Demand Loan,"Если этот флажок не установлен, ссуда по умолчанию будет считаться ссудой до востребования.",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,"Этот счет используется для регистрации платежей по ссуде от заемщика, а также для выдачи ссуд заемщику.",
 This account is capital account which is used to allocate capital for loan disbursal account ,"Этот счет является счетом движения капитала, который используется для распределения капитала на счет выдачи кредита.",
@@ -8668,3 +8661,5 @@
 WhatsApp,WhatsApp,
 Make a call,Позвонить,
 Is Template,Является шаблоном,
+Approve,Одобрить,
+Reject,Отклонить,
diff --git a/erpnext/translations/rw.csv b/erpnext/translations/rw.csv
index f487f19..ae0cb3a 100644
--- a/erpnext/translations/rw.csv
+++ b/erpnext/translations/rw.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Ongera usubiremo inyandiko ivugururwa,
 Automotive,Imodoka,
 Available,Birashoboka,
-Available Leaves,Amababi aboneka,
 Available Qty,Kuboneka Qty,
 Available Selling,Kugurisha Kuboneka,
 Available for use date is required,Kuboneka kumatariki yo gukoresha birakenewe,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Indangamuntu ya Hub,
 Human Resource,Abakozi,
 Human Resources,Abakozi,
-IFSC Code,Kode ya IFSC,
 IGST Amount,Amafaranga IGST,
 IP Address,Aderesi ya IP,
 ITC Available (whether in full op part),ITC Iraboneka (haba mubice byuzuye op),
@@ -1666,7 +1664,6 @@
 Other,Ibindi,
 Other Reports,Izindi Raporo,
 "Other outward supplies(Nil rated,Exempted)","Ibindi bikoresho byo hanze (Nil rated, Usonewe)",
-Others,Abandi,
 Out Qty,Hanze Qty,
 Out Value,Agaciro,
 Out of Order,Bitemewe,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Igiteranyo (Nta musoro),
 Total Achieved,Byose Byagezweho,
 Total Actual,Igiteranyo Cyuzuye,
-Total Allocated Leaves,Amababi yose yatanzwe,
 Total Amount,Umubare wose,
 Total Amount Credited,Amafaranga yose yatanzwe,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Amafaranga yose akoreshwa muburyo bwo kugura ibicuruzwa byakiriwe bigomba kumera nkimisoro yose hamwe,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Kuramo ibaruwa yawe umutwe hamwe nikirangantego. (urashobora kubihindura nyuma).,
 Upper Income,Amafaranga yinjira,
 Use Sandbox,Koresha Sandbox,
-Used Leaves,Amababi yakoreshejwe,
 User,Umukoresha,
 User ID,Indangamuntu,
 User ID not set for Employee {0},Indangamuntu yumukoresha ntabwo yashyizweho kubakozi {0},
@@ -7949,12 +7944,10 @@
 Approvers,Abashinzwe,
 The first Approver in the list will be set as the default Approver.,Icyemezo cya mbere murutonde kizashyirwaho nkibisanzwe byemewe.,
 Shift Request Approver,Guhindura Gusaba,
-PAN Number,Numero ya PAN,
 Provident Fund Account,Konti y&#39;Ikigega cy&#39;Imari,
 MICR Code,Kode ya MICR,
 Repay unclaimed amount from salary,Subiza amafaranga atasabwe kuva kumushahara,
 Deduction from salary,Gukurwa ku mushahara,
-Expired Leaves,Amababi yarangiye,
 If this is not checked the loan by default will be considered as a Demand Loan,Niba ibi bitagenzuwe inguzanyo byanze bikunze bizafatwa nkinguzanyo isabwa,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Iyi konti ikoreshwa mugutanga inguzanyo zishyuwe nuwagurijwe kandi ikanatanga inguzanyo kubagurijwe,
 This account is capital account which is used to allocate capital for loan disbursal account ,Konti ni konti shingiro ikoreshwa mugutanga igishoro kuri konti yo gutanga inguzanyo,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Ni itegeko,
 WhatsApp,WhatsApp,
 Make a call,Hamagara,
+Approve,Emeza,
+Reject,Wange,
diff --git a/erpnext/translations/si.csv b/erpnext/translations/si.csv
index fff7817..fa6fbf0 100644
--- a/erpnext/translations/si.csv
+++ b/erpnext/translations/si.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,ස්වයං යාවත්කාලීන ලියවිල්ල යාවත්කාලීන කරන ලදි,
 Automotive,රථ,
 Available,ඇත,
-Available Leaves,පවතින ලීස්,
 Available Qty,ලබා ගත හැකි යවන ලද,
 Available Selling,විකුණා තිබේ,
 Available for use date is required,භාවිතයට ගත හැකි දිනය සඳහා අවශ්ය වේ,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,මානව සම්පත්,
 Human Resources,මානව සම්පත්,
-IFSC Code,IFSC සංග්රහය,
 IGST Amount,IGST මුදල,
 IP Address,IP ලිපිනය,
 ITC Available (whether in full op part),ITC ලබා ගත හැකිය (පූර්ණ වශයෙන් වුවද),
@@ -1666,7 +1664,6 @@
 Other,වෙනත්,
 Other Reports,වෙනත් වාර්තා,
 "Other outward supplies(Nil rated,Exempted)","වෙනත් බාහිර සැපයුම් (නිල් ශ්‍රේණිගත, නිදහස්)",
-Others,අන් අය,
 Out Qty,යවන ලද අතරින්,
 Out Value,අගය පෙන්වා,
 Out of Order,ක්රියාවිරහිත වී ඇත,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),මුළු (බදු රහිත),
 Total Achieved,මුළු ලබාගත්,
 Total Actual,මුළු තත,
-Total Allocated Leaves,සමස්ථ වෙන් කළ කොළ,
 Total Amount,මුලු වටිනාකම,
 Total Amount Credited,මුළු මුදල අයකෙරේ,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,මිලදී ගැනීම රිසිට්පත අයිතම වගුවේ මුළු අදාළ ගාස්තු මුළු බදු හා ගාස්තු ලෙස එම විය යුතුය,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,ඔබේ ලිපිය හිස සහ ලාංඡනය උඩුගත කරන්න. (ඔබ ඔවුන්ට පසුව සංස්කරණය කළ හැකි).,
 Upper Income,ඉහළ ආදායම්,
 Use Sandbox,වැලිපිල්ල භාවිතා,
-Used Leaves,පාවිච්චි කළ කොළ,
 User,පරිශීලක,
 User ID,පරිශීලක ID,
 User ID not set for Employee {0},සේවක {0} සඳහා පරිශීලක අනන්යාංකය පිහිටුවා නැත,
@@ -7949,12 +7944,10 @@
 Approvers,අනුමත කරන්නන්,
 The first Approver in the list will be set as the default Approver.,ලැයිස්තුවේ පළමු අනුමත කරන්නා පෙරනිමි අනුමත කරන්නා ලෙස සකසනු ඇත.,
 Shift Request Approver,මාරුව ඉල්ලීම් අනුමත කරන්නා,
-PAN Number,පෑන් අංකය,
 Provident Fund Account,අර්ථසාධක අරමුදල් ගිණුම,
 MICR Code,MICR කේතය,
 Repay unclaimed amount from salary,ඉල්ලුම් නොකළ මුදල වැටුපෙන් ආපසු ගෙවන්න,
 Deduction from salary,වැටුපෙන් අඩු කිරීම,
-Expired Leaves,කල් ඉකුත් වූ කොළ,
 If this is not checked the loan by default will be considered as a Demand Loan,මෙය පරීක්‍ෂා නොකළ හොත් ණය පෙරනිමියෙන් ඉල්ලුම් ණය ලෙස සැලකේ,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,මෙම ගිණුම ණය ගැනුම්කරුගෙන් ණය ආපසු ගෙවීම් වෙන්කරවා ගැනීම සඳහා සහ ණය ගැනුම්කරුට ණය ලබා දීම සඳහා යොදා ගනී,
 This account is capital account which is used to allocate capital for loan disbursal account ,මෙම ගිණුම ණය බෙදා හැරීමේ ගිණුම සඳහා ප්‍රාග්ධනය වෙන් කිරීම සඳහා භාවිතා කරන ප්‍රාග්ධන ගිණුමකි,
@@ -8748,3 +8741,5 @@
 Is Mandatory,අනිවාර්යයි,
 WhatsApp,WhatsApp,
 Make a call,ඇමතුමක් ගන්න,
+Approve,අනුමත,
+Reject,ප්රතික්ෂේප,
diff --git a/erpnext/translations/sk.csv b/erpnext/translations/sk.csv
index 05d3496..0e51158 100644
--- a/erpnext/translations/sk.csv
+++ b/erpnext/translations/sk.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Dokument bol aktualizovaný automaticky,
 Automotive,Automobilový,
 Available,K dispozici,
-Available Leaves,Dostupné listy,
 Available Qty,Množství k dispozici,
 Available Selling,Dostupný predaj,
 Available for use date is required,Je potrebný dátum použiteľného na použitie,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,ID synchronizácie Hubu,
 Human Resource,Ľudské Zdroje,
 Human Resources,Lidské zdroje,
-IFSC Code,Kód IFSC,
 IGST Amount,Suma IGST,
 IP Address,IP adresa,
 ITC Available (whether in full op part),ITC k dispozícii (či už v plnej op časti),
@@ -1666,7 +1664,6 @@
 Other,Ostatní,
 Other Reports,Ostatné správy,
 "Other outward supplies(Nil rated,Exempted)","Ostatné pasívne výrobky (bez hodnotenia, oslobodené)",
-Others,Ostatní,
 Out Qty,Out Množství,
 Out Value,limitu,
 Out of Order,Mimo prevádzky,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Spolu (bez dane),
 Total Achieved,Celkem Dosažená,
 Total Actual,Celkem Aktuální,
-Total Allocated Leaves,Celkové pridelené listy,
 Total Amount,Celková částka,
 Total Amount Credited,Celková čiastka bola pripísaná,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,"Celkom Použiteľné Poplatky v doklade o kúpe tovaru, ktorý tabuľky musí byť rovnaká ako celkom daní a poplatkov",
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Nahrajte svoju hlavičku a logo pre dokumenty. (Môžete ich upravovať neskôr.),
 Upper Income,Horní příjmů,
 Use Sandbox,použitie Sandbox,
-Used Leaves,Použité listy,
 User,užívateľ,
 User ID,User ID,
 User ID not set for Employee {0},User ID není nastavena pro zaměstnance {0},
@@ -7949,12 +7944,10 @@
 Approvers,Schvaľovatelia,
 The first Approver in the list will be set as the default Approver.,Prvý schvaľovateľ v zozname bude nastavený ako predvolený schvaľovateľ.,
 Shift Request Approver,Schvaľovateľ žiadosti o zmenu,
-PAN Number,Číslo PAN,
 Provident Fund Account,Účet podielového fondu,
 MICR Code,Kód MICR,
 Repay unclaimed amount from salary,Vrátiť nevyzdvihnutú sumu z platu,
 Deduction from salary,Odpočet z platu,
-Expired Leaves,Vypršala platnosť,
 If this is not checked the loan by default will be considered as a Demand Loan,"Pokiaľ to nie je zaškrtnuté, pôžička sa štandardne bude považovať za pôžičku na požiadanie",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Tento účet sa používa na rezerváciu splátok pôžičky od dlžníka a tiež na vyplácanie pôžičiek dlžníkovi,
 This account is capital account which is used to allocate capital for loan disbursal account ,"Tento účet je kapitálovým účtom, ktorý sa používa na pridelenie kapitálu pre účet vyplácania pôžičiek",
@@ -8748,3 +8741,5 @@
 Is Mandatory,Je povinné,
 WhatsApp,WhatsApp,
 Make a call,Zavolať,
+Approve,schvaľovať,
+Reject,Odmietnuť,
diff --git a/erpnext/translations/sl.csv b/erpnext/translations/sl.csv
index 8eafe41..7c4e11b 100644
--- a/erpnext/translations/sl.csv
+++ b/erpnext/translations/sl.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Posodobljen samodejno ponavljanje dokumenta,
 Automotive,Avtomobilizem,
 Available,Na voljo,
-Available Leaves,Na voljo listi,
 Available Qty,Na voljo Količina,
 Available Selling,Razpoložljiva prodaja,
 Available for use date is required,Potreben je datum uporabe,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Sync ID vozlišča,
 Human Resource,Človeški vir,
 Human Resources,Človeški viri,
-IFSC Code,Kodeks IFSC,
 IGST Amount,Znesek IGST,
 IP Address,IP naslov,
 ITC Available (whether in full op part),ITC Na voljo (v celoti v delu),
@@ -1666,7 +1664,6 @@
 Other,Drugi,
 Other Reports,Druga poročila,
 "Other outward supplies(Nil rated,Exempted)","Druge zunanje dobave (ničelno, oproščeno)",
-Others,Drugi,
 Out Qty,Out Kol,
 Out Value,iz Vrednost,
 Out of Order,Ne deluje,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Skupaj (brez davka),
 Total Achieved,Skupaj Doseženi,
 Total Actual,Skupaj Actual,
-Total Allocated Leaves,Skupna dodeljena lista,
 Total Amount,Skupni znesek,
 Total Amount Credited,Skupni znesek kredita,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Skupaj veljavnih cenah na Potrdilo o nakupu postavke tabele mora biti enaka kot Skupaj davkov in dajatev,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Naložite svoje pismo glavo in logotip. (lahko jih uredite kasneje).,
 Upper Income,Zgornja Prihodki,
 Use Sandbox,uporaba Sandbox,
-Used Leaves,Uporabljeni listi,
 User,Uporabnik,
 User ID,Uporabniško ime,
 User ID not set for Employee {0},ID uporabnika ni nastavljena za Employee {0},
@@ -7949,12 +7944,10 @@
 Approvers,Odobritelji,
 The first Approver in the list will be set as the default Approver.,Prvi odobritelj na seznamu bo nastavljen kot privzeti odobritelj.,
 Shift Request Approver,Odobritelj zahteve za premik,
-PAN Number,Številka PAN,
 Provident Fund Account,Račun rezervnega sklada,
 MICR Code,Koda MICR,
 Repay unclaimed amount from salary,Vrnite neizterjani znesek iz plače,
 Deduction from salary,Odbitek od plače,
-Expired Leaves,Potekli listi,
 If this is not checked the loan by default will be considered as a Demand Loan,"Če to ni potrjeno, bo posojilo privzeto obravnavano kot posojilo na zahtevo",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Ta račun se uporablja za rezervacijo odplačil posojilojemalca in tudi za izplačilo posojil posojilojemalcu,
 This account is capital account which is used to allocate capital for loan disbursal account ,"Ta račun je račun kapitala, ki se uporablja za dodelitev kapitala za račun izplačila posojila",
@@ -8748,3 +8741,5 @@
 Is Mandatory,Je obvezno,
 WhatsApp,WhatsApp,
 Make a call,Opraviti klic,
+Approve,Odobri,
+Reject,Zavrni,
diff --git a/erpnext/translations/sq.csv b/erpnext/translations/sq.csv
index 8c9a2ed..0f10795 100644
--- a/erpnext/translations/sq.csv
+++ b/erpnext/translations/sq.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Dokumenti i përsëritjes automatike përditësohej,
 Automotive,automobilistik,
 Available,në dispozicion,
-Available Leaves,Lejet e disponueshme,
 Available Qty,Qty në dispozicion,
 Available Selling,Shitja në dispozicion,
 Available for use date is required,Kërkohet data e përdorimit,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,ID e sinkronizimit të Hub,
 Human Resource,Burimeve Njerëzore,
 Human Resources,Burimeve Njerëzore,
-IFSC Code,Kodi IFSC,
 IGST Amount,Shuma IGST,
 IP Address,Adresa IP,
 ITC Available (whether in full op part),ITC në dispozicion (qoftë në pjesën e plotë të op),
@@ -1666,7 +1664,6 @@
 Other,Tjetër,
 Other Reports,Raportet tjera,
 "Other outward supplies(Nil rated,Exempted)","Furnizime të tjera të jashtme (vlerësuar me Nil, Përjashtuar)",
-Others,Të tjerët,
 Out Qty,Nga Qty,
 Out Value,Vlera out,
 Out of Order,Jashtë përdorimit,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Totali (Pa Tatimore),
 Total Achieved,Gjithsej Arritur,
 Total Actual,Gjithsej aktuale,
-Total Allocated Leaves,Totali i lëkundjeve të alokuara,
 Total Amount,Shuma totale,
 Total Amount Credited,Shuma totale e kredituar,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Akuzat totale të zbatueshme në Blerje tryezë Receipt artikujt duhet të jetë i njëjtë si Total taksat dhe tarifat,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Ngarko kokën tuaj letër dhe logo. (Ju mund të modifikoni ato më vonë).,
 Upper Income,Të ardhurat e sipërme,
 Use Sandbox,Përdorimi Sandbox,
-Used Leaves,Lë të përdorura,
 User,përdorues,
 User ID,User ID,
 User ID not set for Employee {0},Përdoruesi ID nuk është caktuar për punonjësit {0},
@@ -7949,12 +7944,10 @@
 Approvers,Përgjegjës,
 The first Approver in the list will be set as the default Approver.,Miratuesi i parë në listë do të caktohet si Miratuesi i paracaktuar.,
 Shift Request Approver,Miratuesi i kërkesës për ndërrim,
-PAN Number,Numri PAN,
 Provident Fund Account,Llogaria e Fondit të Providencës,
 MICR Code,Kodi MICR,
 Repay unclaimed amount from salary,Shlyeni shumën e pakërkuar nga paga,
 Deduction from salary,Zbritja nga paga,
-Expired Leaves,Gjethet e skaduara,
 If this is not checked the loan by default will be considered as a Demand Loan,"Nëse kjo nuk kontrollohet, kredia si parazgjedhje do të konsiderohet si një Kredi e Kërkesës",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Kjo llogari përdoret për rezervimin e ripagimeve të huasë nga huamarrësi dhe gjithashtu disbursimin e huamarrësve,
 This account is capital account which is used to allocate capital for loan disbursal account ,Kjo llogari është llogari kapitale e cila përdoret për të alokuar kapitalin për llogarinë e disbursimit të kredisë,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Shtë e Detyrueshme,
 WhatsApp,WhatsApp,
 Make a call,Bej nje telefonate,
+Approve,miratoj,
+Reject,hedh poshtë,
diff --git a/erpnext/translations/sr-SP.csv b/erpnext/translations/sr-SP.csv
index c70ae81..ac5711f 100644
--- a/erpnext/translations/sr-SP.csv
+++ b/erpnext/translations/sr-SP.csv
@@ -7,10 +7,8 @@
 Warehouse {0} does not exist,Skladište {0} ne postoji,
 Confirmed orders from Customers.,Potvrđene porudžbine od strane kupaca,
 Healthcare (beta),Klinika (beta)
-Salary Structure,Структура плата
 Item Reorder,Dopuna artikla,
 Report an Issue,Prijavi grešku,
-Net Pay,Neto plaćanje,
 Internal Transfer,Interni prenos,
 Item Tax Rate,Poreska stopa,
 Create a new Customer,Kreirajte novog kupca,
@@ -52,7 +50,6 @@
 You can only select a maximum of one option from the list of check boxes.,Из листе поља за потврду можете изабрати највише једну опцију.
 Group by Voucher,Grupiši po knjiženjima,
 Total Outstanding,Ukupno preostalo,
-Email Salary Slip to Employee,Pošalji platnu listu Zaposlenom,
 Customer Code,Šifra kupca,
 Allow multiple Sales Orders against a Customer's Purchase Order,Dozvolite više prodajnih naloga koji su vezani sa porudžbenicom kupca,
 Total Outgoing,Ukupno isporučeno,
@@ -61,7 +58,6 @@
 %  Delivered,% Isporučeno,
 Appraisal {0} created for Employee {1} in the given date range,Procjena {0} kreirana za Zaposlenog {1} za dati period,
 Party Balance,Stanje kupca,
-{0} already allocated for Employee {1} for period {2} to {3},{0} već dodijeljeno zaposlenom {1} za period {2} {3}
 Customers,Kupci,
 Please set User ID field in an Employee record to set Employee Role,Molimo podesite polje Korisnički ID u evidenciji Zaposlenih radi podešavanja zaduženja Zaposlenih,
 Task Completion,Završenost zadataka,
@@ -89,7 +85,6 @@
 Consultations,Pregledi,
 Classification of Customers by region,Klasifikacija kupaca po regiji,
 Quotation To,Ponuda za,
-Payroll Employee Detail,Detalji o platnom spisku Zaposlenih,
 Timesheet for tasks.,Potrošeno vrijeme za zadatke,
 Remark,Napomena,
 Tree of Item Groups.,Stablo Vrste artikala,
@@ -122,13 +117,11 @@
 `Freeze Stocks Older Than` should be smaller than %d days.,"""Zamrzni akcije starije"" trebalo bi da budu manje %d dana."
 Patient Age,Starost pacijenta,
 Employee cannot report to himself.,Zaposleni ne može izvještavati sebi,
-You can only submit Leave Encashment for a valid encashment amount,Можете поднети Исплату одсуства само са валидном количином за исплату.
 Customer Address,Adresa kupca,
 Total Amount {0},Ukupan iznos {0}
 Total (Credit),Ukupno bez PDV-a (duguje)
 In Words (Export) will be visible once you save the Delivery Note.,Slovima (izvoz) će biti vidljiv onda kad sačuvate otpremnicu,
 Opportunity Date,Datum prilike,
-Marked Attendance HTML,Označeno prisustvo HTML,
 Delivery Note Item,Pozicija otpremnice,
 Customer's Purchase Order,Porudžbenica kupca,
 Get items from,Dodaj stavke iz,
@@ -150,14 +143,12 @@
 Account: {0} can only be updated via Stock Transactions,Računovodstvo: {0} može samo da se ažurira u dijelu Promjene na zalihama,
 Leave Approver,Odobrava izlaske s posla,
 Customer or Item,Kupac ili proizvod,
-Attendance To Date,Prisustvo do danas,
 Requested Qty,Tražena kol,
 Attendance Freeze Date,Datum zamrzavanja prisustva,
 No Item with Serial No {0},Ne postoji artikal sa serijskim brojem {0}
 Taxes and Charges,Porezi i naknade,
 Serial Number Series,Serijski broj serije,
 Delivered,Isporučeno,
-No employee found,Zaposleni nije pronađen,
 Default Territory,Podrazumijevana država,
 Asset Category,Grupe osnovnih sredstava,
 Customer Warehouse (Optional),Skladište kupca (opciono)
@@ -190,10 +181,8 @@
 Sales Partners Commission,Provizija za prodajne partnere,
 Territory,Teritorija,
 Sales Order Message,Poruka prodajnog naloga,
-Employees HTML,HTML Zaposlenih,
 Employee Leave Balance,Pregled odsustva Zaposlenih,
 Minute,Minut,
-Emails salary slip to employee based on preferred email selected in Employee,Pošalji platnu listu Zaposlenom na željenu adresu označenu u tab-u ZAPOSLENI,
 Litre,Litar,
 Opening (Cr),Početno stanje (Po)
 Academics User,Akademski korisnik,
@@ -222,11 +211,9 @@
 Product Bundle Item,Sastavljeni proizvodi,
 Select Employees,Odaberite Zaposlene,
 "Create Employee records to manage leaves, expense claims and payroll","Kreiraj evidenciju o Zaposlenom kako bi upravljali odsustvom, potraživanjima za troškove i platnim spiskovima"
-This is based on the attendance of this Employee,Ovo se zasniva na pohađanju ovog zaposlenog,
 Address & Contact,Adresa i kontakt,
 Reserved Qty for Production,Rezervisana kol. za proizvodnju,
 This is based on stock movement. See {0} for details,Ovo praćenje je zasnovano na kretanje zaliha. Pogledajte {0} za više detalja,
-Training Event Employee,Obuke Zaposlenih,
 All Contacts.,Svi kontakti,
 Sales Person,Prodajni agent,
 Default Warehouse,Podrazumijevano skladište,
@@ -237,7 +224,6 @@
 Credit,Potražuje,
 Grand Total,Za plaćanje,
 Human Resource,Ljudski resursi,
-Employees,Zaposleni,
 Delivery Note Required,Otpremnica je obavezna,
 Type of Payment,Vrsta plaćanja,
 UOM,JM,
@@ -284,15 +270,12 @@
 Customer is required,Kupac je obavezan podatak,
 Manufacturer,Proizvođač
 Selling Amount,Prodajni iznos,
-Please set the Date Of Joining for employee {0},Molimo podesite datum zasnivanja radnog odnosa {0}
 Allow over delivery or receipt upto this percent,Dozvolite isporukuili prijem robe ukoliko ne premaši ovaj procenat,
 Orders,Porudžbine,
 Stock Transactions,Promjene na zalihama,
-You are not authorized to approve leaves on Block Dates,Немате дозволу да одобравате одсуства на Блок Датумима.
 Daily Timesheet Summary,Pregled dnevnog potrošenog vremena,
 View Timesheet,Pogledaj potrošeno vrijeme,
 Rounded Total (Company Currency),Zaokruženi ukupan iznos (valuta preduzeća)
-Salary Slip of employee {0} already created for this period,Isplatna lista Zaposlenog {0} kreirana je već za ovaj period,
 "If this item has variants, then it cannot be selected in sales orders etc.","Ako ovaj artikal ima varijante, onda ne može biti biran u prodajnom nalogu."
 You can only redeem max {0} points in this order.,Можете унети највише {0} поена у овој наруџбини.
 No leave record found for employee {0} for {1},Nije nađena evidancija o odsustvu Zaposlenog {0} za {1}
@@ -312,7 +295,6 @@
 Additional Operating Cost,Dodatni operativni troškovi,
 Rejected Warehouse,Odbijeno skladište,
 Manufacturing Manager,Menadžer proizvodnje,
-You are not present all day(s) between compensatory leave request days,Нисте присутни свих дана између захтева за компензацијски одмор.
 Is Fixed Asset,Artikal je osnovno sredstvo,
 POS,POS,
 Timesheet {0} is already completed or cancelled,Potrošeno vrijeme {0} je već potvrđeno ili otkazano,
@@ -327,7 +309,6 @@
 Sync Offline Invoices,Sinhronizuj offline fakture,
 Manufacturing,Proizvodnja,
 {0}% Delivered,{0}% Isporučeno,
-Attendance,Prisustvo,
 Customer's Purchase Order No,Broj porudžbenice kupca,
 Please enter Sales Orders in the above table,U tabelu iznad unesite prodajni nalog,
 Report Date,Datum izvještaja,
@@ -338,7 +319,6 @@
 Payment Request,Upit za plaćanje,
 Purchase Analytics,Analiza nabavke,
 Tree Details,Detalji stabla,
-Upload Attendance,Priloži evidenciju,
 Against,Povezano sa,
 Requested Amount,Traženi iznos,
 "Record of all communications of type email, phone, chat, visit, etc.","Snimanje svih komunikacija tipa email, telefon, poruke, posjete, itd."
@@ -381,7 +361,6 @@
 Please select a warehouse,Izaberite skladište,
 Received and Accepted,Primio i prihvatio,
 Project will be accessible on the website to these users,Projekat će biti dostupan na sajtu sledećim korisnicima,
-Upload HTML,Priloži HTML,
 Services,Usluge,
 Item Cart,Korpa sa artiklima,
 Total Paid Amt,Ukupno plaćeno,
@@ -390,7 +369,6 @@
 Employee Advance,Napredak Zaposlenog,
 Warehouse and Reference,Skladište i veza,
 {0} {1}: Account {2} is inactive,{0} {1}: Nalog {2} je neaktivan,
-Fiscal Year {0} not found,Fiskalna godina {0} nije pronađena,
 No Remarks,Nema napomene,
 Purchase Receipt Message,Poruka u Prijemu robe,
 Taxes and Charges Deducted,Umanjeni porezi i naknade,
@@ -427,7 +405,6 @@
 Closing Date,Datum zatvaranja,
 Cheque/Reference Date,Datum izvoda,
 Planned Qty,Planirana količina,
-Payment Date,Datum plaćanja,
 Additional Details,Dodatni detalji,
 Create Chart Of Accounts Based On,Kreiraj kontni plan prema,
 You can not change rate if BOM mentioned agianst any item,Не можете променити цену ако постоји Саставница за било коју ставку.
@@ -440,8 +417,6 @@
 Add Employees,Dodaj Zaposlenog,
 Setting up Employees,Podešavanja Zaposlenih,
 Warehouse not found in the system,Skladište nije pronađeno u sistemu,
-Attendance for employee {0} is already marked for this day,Prisustvo zaposlenog {0} је već označeno za ovaj dan,
-Employee relieved on {0} must be set as 'Left',"Zaposleni smijenjen na {0} mora biti označen kao ""Napustio"""
  Shipping Bill Number,Broj isporuke,
 Lab Test Report,Izvještaj labaratorijskog testa,
 You cannot credit and debit same account at the same time,Не можете кредитирати и дебитовати исти налог у исто време.
@@ -475,17 +450,14 @@
 Reserved for manufacturing,Rezervisana za proizvodnju,
 Pricing Rule Help,Pravilnik za cijene pomoć
 Ageing Range 2,Opseg dospijeća 2,
-Employee Benefits,Primanja Zaposlenih,
 POS Item Group,POS Vrsta artikala,
 Lead,Lead,
-Employee Settings,Podešavanja zaposlenih,
 View All Products,Pogledajte sve proizvode,
 Patient Medical Record,Medicinski karton pacijenta,
 Batch,Serija,
 Purchase Receipt,Prijem robe,
 Warranty Period (in days),Garantni rok (u danima)
 Customer database.,Korisnička baza podataka,
-Attendance Date,Datum prisustva,
 Notify Employee,Obavijestiti Zaposlenog,
 User ID not set for Employee {0},Korisnički ID nije podešen za Zaposlenog {0}
 Stock Projected Qty,Projektovana količina na zalihama,
@@ -507,7 +479,6 @@
 Task,Zadatak,
 Add / Edit Prices,Dodaj / Izmijeni cijene,
 Item Prices,Cijene artikala,
-Salary Component,Компонента плате
 Customer's Purchase Order Date,Datum porudžbenice kupca,
 Country of Origin,Zemlja porijekla,
 Please select Employee Record first.,Molimo izaberite registar Zaposlenih prvo,
@@ -520,7 +491,6 @@
 {0} against Bill {1} dated {2},{0} veza sa računom {1} na datum {2}
 You are not authorized to set Frozen value,Немате дозволу да постављате замрзнуту вредност
 Requested Items To Be Ordered,Tražene stavke za isporuku,
-Unmarked Attendance,Neobilježeno prisustvo,
 Sales Order {0} is not submitted,Prodajni nalog {0} nije potvrđen,
 Default Material Request Type,Podrazumijevani zahtjev za tip materijala,
 Sales Pipeline,Prodajna linija,
@@ -580,7 +550,6 @@
 Warning: Another {0} # {1} exists against stock entry {2},Upozorenje: Još jedan  {0} # {1} postoji u vezanom Unosu zaliha {2}
 Suplier,Dobavljač
 Has Serial No,Ima serijski broj,
-Employee {0} on Half day on {1},Zaposleni {0} na pola radnog vremena {1}
 Difference Amount (Company Currency),Razlika u iznosu (Valuta)
 Add Serial No,Dodaj serijski broj,
 Company and Accounts,Preduzeće i računi,
@@ -614,7 +583,6 @@
 Customer / Item Name,Kupac / Naziv proizvoda,
 Total Billed Amount,Ukupno fakturisano,
 In Value,Prijem vrije.
-Employees Email Id,ID email Zaposlenih,
 Tree Type,Tip stabla,
 Update Rate and Availability,Izmijenite cijenu i dostupnost,
 Supplier Quotation,Ponuda dobavljača,
@@ -643,11 +611,8 @@
 Purchase Receipt Item,Stavka Prijema robe,
 Invoices,Fakture,
 Task Progress,% završenosti zadataka,
-Employee Attendance Tool,Alat za prisustvo Zaposlenih,
-Payment Days,Dana za plaćanje,
 Recruitment,Zapošljavanje,
 Taxes and Charges Calculation,Izračun Poreza,
-For Employee,Za Zaposlenog,
 Terms and Conditions Template,Uslovi i odredbe šablon,
 Change,Kusur,
 Stock Entry {0} created,Unos zaliha {0} je kreiran,
@@ -672,7 +637,6 @@
 Income Account,Račun prihoda,
 Account Balance,Knjigovodstveno stanje,
 'Expected Start Date' can not be greater than 'Expected End Date',Očekivani datum početka ne može biti veći od očekivanog datuma završetka,
-Employee Emails,Elektronska pošta Zaposlenog,
 Opening Qty,Početna količina,
 Reorder level based on Warehouse,Nivo dopune u zavisnosti od skladišta,
 To Warehouse,U skladište,
@@ -683,7 +647,6 @@
 Request for Quotation Supplier,Zahtjev za ponudu dobavljača,
 LeaderBoard,Tabla,
 Lab Test Groups,Labaratorijske grupe,
-Training Result Employee,Rezultati obuke Zaposlenih,
 Invoice Details,Detalji fakture,
 Banking and Payments,Bakarstvo i plaćanja,
 Employee Name,Ime Zaposlenog,
@@ -702,10 +665,8 @@
 Transaction reference no {0} dated {1},Broj izvoda {0} na datum {1}
 Make Sales Order,Kreiraj prodajni nalog,
 Items,Artikli,
-Employees working on a holiday,Zaposleni koji rade za vrijeme praznika,
 Allocate Payment Amount,Poveži uplaćeni iznos,
 Patient ID,ID pacijenta,
-Printed On,Datum i vrijeme štampe,
 Debit To,Zaduženje za,
 Global Settings,Globalna podešavanja,
 Make Employee,Keriraj Zaposlenog,
@@ -732,7 +693,6 @@
 Target Warehouse,Ciljno skladište,
 Delivery Note Trends,Trendovi Otpremnica,
 Default Source Warehouse,Izdajno skladište,
-"{0}: Employee email not found, hence email not sent","{0}: Email zaposlenog nije pronađena, stoga email nije poslat"
 All Warehouses,Sva skladišta,
 Difference Amount,Razlika u iznosu,
 User Remark,Korisnička napomena,
@@ -775,22 +735,18 @@
 Ageing Range 1,Opseg dospijeća 1,
 Incoming Rate,Nabavna cijena,
 Timesheets,Potrošnja vremena,
-Attendance From Date,Datum početka prisustva,
 Stock Items,Artikli na zalihama,
 New Cart,Nova korpa,
 Opening Value,Početna vrijednost,
 "Setting Events to {0}, since the Employee attached to the below Sales Persons does not have a User ID{1}","Podešavanje stanja na {0}, pošto Zaposleni koji se priključio Prodavcima nema koririsnički ID {1}"
-Import Attendance,Uvoz prisustva,
 Bank Balance,Stanje na računu,
 Employee Number,Broj Zaposlenog,
 Rate and Amount,Cijena i vrijednost sa popustom,
 'Total','Ukupno bez PDV-a'
 Total Taxes and Charges,Porez,
-No active or default Salary Structure found for employee {0} for the given dates,Nisu pronađene aktivne ili podrazumjevane strukture plate za Zaposlenog {0} za dati period,
 Supplier Part Number,Dobavljačeva šifra,
 Project Task,Projektni zadatak,
 Parent Item Group,Nadređena Vrsta artikala,
-Mark Attendance,Označi prisustvo,
 {0} created,Kreirao je korisnik {0}
 Advance Paid,Avansno plačanje,
 Projected,Projektovana količina na zalihama,
@@ -824,7 +780,6 @@
 Purchase Price List,Nabavni cjenovnik,
 Accounts Payable Summary,Pregled obaveze prema dobavljačima,
 Delivery Notes {0} must be cancelled before cancelling this Sales Order,Otpremnice {0} moraju biti otkazane prije otkazivanja prodajnog naloga,
-Total Payment,Ukupno plaćeno,
 POS Settings,POS podešavanja,
 Buying Amount,Iznos nabavke,
 Valuation Rate,Prosječna nab. cijena,
@@ -906,7 +861,6 @@
 From Customer,Od kupca,
 Maintain Stock,Vođenje zalihe,
 Sales Order Item,Pozicija prodajnog naloga,
-Attendance From Date and Attendance To Date is mandatory,Datum početka prisustva i prisustvo do danas su obavezni,
 Reserved Qty,Rezervisana kol.
 Not items found,Ništa nije pronađeno,
 Copy From Item Group,Kopiraj iz vrste artikala,
@@ -932,7 +886,6 @@
 Due Date is mandatory,Datum dospijeća je obavezan,
 Cart,Korpa,
 Stock transactions before {0} are frozen,Promjene na zalihama prije {0} su zamrznute,
-Employee {0} is not active or does not exist,Zaposleni {0} nije aktivan ili ne postoji,
 You have entered duplicate items. Please rectify and try again.,Унели сте дупликате. Молимо проверите и покушајте поново.
 Closing (Dr),Saldo (Du)
 Product Bundle Help,Sastavnica Pomoć
@@ -947,7 +900,6 @@
 Gantt Chart,Gant dijagram,
 Requested Quantity,Tražena količina,
 Chart Of Accounts Template,Templejt za kontni plan,
-Marked Attendance,Označeno prisustvo,
 Please set a default Holiday List for Employee {0} or Company {1},Molimo podesite podrazumjevanu listu praznika za Zaposlenog {0} ili Preduzeće {1}
 Pending Amount,Iznos na čekanju,
 Supplier Invoice No,Broj fakture dobavljača,
@@ -973,18 +925,15 @@
 You cannot delete Project Type 'External',"Не можете обрисати ""Спољни"" тип пројекта."
 Delivery Note,Otpremnice,
 In Words will be visible once you save the Sales Order.,U riječima će biti vidljivo tek kada sačuvate prodajni nalog.
-Show Salary Slip,Прикажи одсечак плате
 Activity Cost per Employee,Troškovi aktivnosti po zaposlenom,
 Sales Order,Prodajni nalog,
 Customer or Supplier Details,Detalji kupca ili dobavljača,
 Sell,Prodaja,
-Salary Slip of employee {0} already created for time sheet {1},Isplatna lista Zaposlenog {0} kreirana je već za raspored {1}
 Additional Discount Percentage,Dodatni procenat popusta,
 HR User,Korisnik za ljudske resure,
 Stock Reports,Izvještaji zaliha robe,
 Return Against Sales Invoice,Povraćaj u vezi sa Fakturom prodaje,
 Naming Series,Vrste dokumenta,
-Monthly Attendance Sheet,Mjesečni list prisustva,
 Stock Ledger,Skladišni karton,
 Sales Invoice {0} must be cancelled before cancelling this Sales Order,Faktura {0} mora biti otkazana prije otkazivanja ovog prodajnog naloga,
 New Quotations,Nove ponude,
diff --git a/erpnext/translations/sr.csv b/erpnext/translations/sr.csv
index cf32d36..38116ec 100644
--- a/erpnext/translations/sr.csv
+++ b/erpnext/translations/sr.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Аутоматско понављање документа је ажурирано,
 Automotive,аутомобилски,
 Available,Доступно,
-Available Leaves,Расположиве листе,
 Available Qty,Доступно ком,
 Available Selling,Доступна продаја,
 Available for use date is required,Потребан је датум употребе,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Хуб Синц ИД,
 Human Resource,Људски ресурси,
 Human Resources,Человеческие ресурсы,
-IFSC Code,ИФСЦ код,
 IGST Amount,ИГСТ Износ,
 IP Address,ИП адреса,
 ITC Available (whether in full op part),Доступан ИТЦ (било у целокупном делу),
@@ -1666,7 +1664,6 @@
 Other,Други,
 Other Reports,Остали извештаји,
 "Other outward supplies(Nil rated,Exempted)","Остале спољне залихе (Нил, Ослобођено)",
-Others,другие,
 Out Qty,Од Кол,
 Out Value,od Вредност,
 Out of Order,Неисправно,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Укупно (без пореза),
 Total Achieved,Укупно Постигнута,
 Total Actual,Укупно Стварна,
-Total Allocated Leaves,Укупно издвојене листе,
 Total Amount,Укупан износ,
 Total Amount Credited,Укупан износ кредита,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Укупно Важећи Оптужбе у куповини потврда за ставке табели мора бити исти као и укупних пореза и накнада,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Уплоад главу писмо и лого. (Можете их уредити касније).,
 Upper Income,Горња прихода,
 Use Sandbox,Употреба Песак,
-Used Leaves,Користи Леавес,
 User,Усер,
 User ID,Кориснички ИД,
 User ID not set for Employee {0},ID пользователя не установлен Требуются {0},
@@ -7949,12 +7944,10 @@
 Approvers,Одобривачи,
 The first Approver in the list will be set as the default Approver.,Први одобравач на листи биће постављен као подразумевани одобраватељ.,
 Shift Request Approver,Одобривач захтева за смену,
-PAN Number,ПАН број,
 Provident Fund Account,Рачун осигуравајућег фонда,
 MICR Code,МИЦР код,
 Repay unclaimed amount from salary,Отплати неискоришћени износ из плате,
 Deduction from salary,Одбитак од зараде,
-Expired Leaves,Истекло лишће,
 If this is not checked the loan by default will be considered as a Demand Loan,"Ако ово није потврђено, зајам ће се подразумевано сматрати зајмом на захтев",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Овај рачун се користи за резервирање отплате зајма од зајмопримца и за исплату зајмова зајмопримцу,
 This account is capital account which is used to allocate capital for loan disbursal account ,Овај рачун је рачун капитала који се користи за алокацију капитала за рачун за издвајање кредита,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Је обавезно,
 WhatsApp,ВхатсАпп,
 Make a call,Позивање,
+Approve,одобрити,
+Reject,Одбити,
diff --git a/erpnext/translations/sv.csv b/erpnext/translations/sv.csv
index c07fda2..c4d46ea 100644
--- a/erpnext/translations/sv.csv
+++ b/erpnext/translations/sv.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Automatisk upprepa dokument uppdaterad,
 Automotive,Fordon,
 Available,Tillgängligt,
-Available Leaves,Tillgängliga löv,
 Available Qty,Tillgång Antal,
 Available Selling,Tillgänglig försäljning,
 Available for use date is required,Tillgängligt för användning datum krävs,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Sync ID,
 Human Resource,Personal administration,
 Human Resources,Personal Resurser,
-IFSC Code,IFSC-kod,
 IGST Amount,IGST-belopp,
 IP Address,IP-adress,
 ITC Available (whether in full op part),ITC tillgängligt (oavsett om det är fullständigt),
@@ -1666,7 +1664,6 @@
 Other,Annat,
 Other Reports,Andra rapporter,
 "Other outward supplies(Nil rated,Exempted)","Andra leveranser utifrån (noll betyg, undantagna)",
-Others,Annat,
 Out Qty,Ut antal,
 Out Value,ut Värde,
 Out of Order,Trasig,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Totalt (utan skatt),
 Total Achieved,Totalt Uppnått,
 Total Actual,Totalt Faktisk,
-Total Allocated Leaves,Totalt tilldelade blad,
 Total Amount,Totala summan,
 Total Amount Credited,Summa belopp Credited,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Totalt tillämpliga avgifter i inköpskvittot Items tabellen måste vara densamma som den totala skatter och avgifter,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Ladda upp din brevhuvud och logotyp. (Du kan redigera dem senare).,
 Upper Income,Övre inkomst,
 Use Sandbox,användning Sandbox,
-Used Leaves,Använda löv,
 User,Användare,
 User ID,användar ID,
 User ID not set for Employee {0},Användar-ID inte satt för anställd {0},
@@ -7949,12 +7944,10 @@
 Approvers,Omstridda,
 The first Approver in the list will be set as the default Approver.,Den första godkännaren i listan kommer att ställas in som standard godkännare.,
 Shift Request Approver,Skiftbegäran godkännare,
-PAN Number,PAN-nummer,
 Provident Fund Account,Försäkringskassakonto,
 MICR Code,MICR-kod,
 Repay unclaimed amount from salary,Återbetala obefogat belopp från lönen,
 Deduction from salary,Avdrag från lön,
-Expired Leaves,Utgångna löv,
 If this is not checked the loan by default will be considered as a Demand Loan,Om detta inte är markerat kommer lånet som standard att betraktas som ett efterfrågelån,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Detta konto används för bokning av återbetalningar av lån från låntagaren och för utbetalning av lån till låntagaren,
 This account is capital account which is used to allocate capital for loan disbursal account ,Det här kontot är ett kapitalkonto som används för att fördela kapital för lånekonto,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Är obligatorisk,
 WhatsApp,WhatsApp,
 Make a call,Ringa ett samtal,
+Approve,Godkänna,
+Reject,Avvisa,
diff --git a/erpnext/translations/sw.csv b/erpnext/translations/sw.csv
index 243994f..ad144f0 100644
--- a/erpnext/translations/sw.csv
+++ b/erpnext/translations/sw.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Rudia tena hati iliyosasishwa,
 Automotive,Magari,
 Available,Inapatikana,
-Available Leaves,Majani Inapatikana,
 Available Qty,Uchina unaopatikana,
 Available Selling,Inapatikana Kuuza,
 Available for use date is required,Inapatikana kwa tarehe ya matumizi inahitajika,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,ID ya Usawazishaji wa Hub,
 Human Resource,Rasilimali watu,
 Human Resources,Rasilimali,
-IFSC Code,IFSC Kanuni,
 IGST Amount,IGST Kiasi,
 IP Address,Anwani ya IP,
 ITC Available (whether in full op part),ITC Inapatikana (iwe katika sehemu kamili),
@@ -1666,7 +1664,6 @@
 Other,Nyingine,
 Other Reports,Taarifa nyingine,
 "Other outward supplies(Nil rated,Exempted)","Vifaa vingine vya nje (Nilikadiriwa, Imesamehewa)",
-Others,Wengine,
 Out Qty,Nje ya Uchina,
 Out Value,Thamani ya nje,
 Out of Order,Nje ya Utaratibu,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Jumla (bila ya Kodi),
 Total Achieved,Jumla imefikia,
 Total Actual,Jumla halisi,
-Total Allocated Leaves,Jumla ya Majani yaliyowekwa,
 Total Amount,Jumla,
 Total Amount Credited,Jumla ya Kizuizi,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Malipo Yote ya Kuhitajika katika Jedwali la Vipokezi vya Ununuzi lazima lifanane na Jumla ya Kodi na Malipo,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Pakia kichwa chako na alama. (unaweza kuwahariri baadaye).,
 Upper Income,Mapato ya Juu,
 Use Sandbox,Tumia Sandbox,
-Used Leaves,Majani yaliyotumika,
 User,Mtumiaji,
 User ID,Kitambulisho cha mtumiaji,
 User ID not set for Employee {0},Kitambulisho cha mtumiaji hakiwekwa kwa Waajiriwa {0},
@@ -7949,12 +7944,10 @@
 Approvers,Waunga mkono,
 The first Approver in the list will be set as the default Approver.,Mtangazaji wa kwanza kwenye orodha atawekwa kama Mtoaji Mbadala.,
 Shift Request Approver,Ombi la Shift Liidhinishe,
-PAN Number,Nambari ya PAN,
 Provident Fund Account,Akaunti ya Mfuko wa Utoaji,
 MICR Code,Nambari ya MICR,
 Repay unclaimed amount from salary,Lipa kiasi ambacho hakijadai kutoka kwa mshahara,
 Deduction from salary,Utoaji kutoka kwa mshahara,
-Expired Leaves,Majani yaliyomalizika,
 If this is not checked the loan by default will be considered as a Demand Loan,Ikiwa hii haijakaguliwa mkopo kwa chaguo-msingi utazingatiwa kama Mkopo wa Mahitaji,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Akaunti hii inatumika kwa uhifadhi wa mikopo kutoka kwa akopaye na pia kutoa mikopo kwa akopaye,
 This account is capital account which is used to allocate capital for loan disbursal account ,Akaunti hii ni akaunti kuu ambayo hutumiwa kutenga mtaji kwa akaunti ya utoaji wa mkopo,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Ni lazima,
 WhatsApp,WhatsApp,
 Make a call,Piga simu,
+Approve,Thibitisha,
+Reject,Kataa,
diff --git a/erpnext/translations/ta.csv b/erpnext/translations/ta.csv
index d2c3dfb..5ccabc0 100644
--- a/erpnext/translations/ta.csv
+++ b/erpnext/translations/ta.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,தானியங்கு திரும்ப ஆவணம் புதுப்பிக்கப்பட்டது,
 Automotive,வாகன,
 Available,கிடைக்கக்கூடிய,
-Available Leaves,கிடைக்கும் இலைகள்,
 Available Qty,கிடைக்கும் அளவு,
 Available Selling,கிடைக்கும் விற்பனை,
 Available for use date is required,உபயோகத்திற்கான தேதி கிடைக்க வேண்டும்,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,மைய ஒருங்கிணைப்பு ஐடி,
 Human Resource,மையம்  வள,
 Human Resources,மனித வளங்கள்,
-IFSC Code,IFSC கோட்,
 IGST Amount,IGST தொகை,
 IP Address,ஐபி முகவரி,
 ITC Available (whether in full op part),ஐ.டி.சி கிடைக்கிறது (முழு ஒப் பகுதியாக இருந்தாலும்),
@@ -1666,7 +1664,6 @@
 Other,வேறு,
 Other Reports,பிற அறிக்கைகள்,
 "Other outward supplies(Nil rated,Exempted)","பிற வெளிப்புற பொருட்கள் (இல்லை மதிப்பிடப்பட்டது, விலக்கு)",
-Others,மற்றவை,
 Out Qty,அளவு அவுட்,
 Out Value,அவுட் மதிப்பு,
 Out of Order,ஆர்டர் அவுட்,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),மொத்தம் (வரி இல்லாமல்),
 Total Achieved,மொத்த Achieved,
 Total Actual,உண்மையான மொத்த,
-Total Allocated Leaves,மொத்த ஒதுக்கப்பட்ட இலைகள்,
 Total Amount,மொத்த தொகை,
 Total Amount Credited,மொத்த தொகை பாராட்டப்பட்டது,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,கொள்முதல் ரசீது பொருட்கள் அட்டவணையில் மொத்த பொருந்தும் கட்டணங்கள் மொத்த வரி மற்றும் கட்டணங்கள் அதே இருக்க வேண்டும்,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,உங்கள் கடிதம் தலை மற்றும் சின்னம் பதிவேற்ற. (நீங்கள் பின்னர் அவர்களை திருத்த முடியும்).,
 Upper Income,உயர் வருமானம்,
 Use Sandbox,சாண்ட்பாக்ஸினைப் பயன்படுத்தவும்,
-Used Leaves,பயன்படுத்திய இலைகள்,
 User,பயனர்,
 User ID,பயனர் ஐடி,
 User ID not set for Employee {0},பயனர் ஐடி பணியாளர் அமைக்க{0},
@@ -7949,12 +7944,10 @@
 Approvers,ஒப்புதல்கள்,
 The first Approver in the list will be set as the default Approver.,பட்டியலில் முதல் ஒப்புதல் இயல்புநிலை ஒப்புதலாக அமைக்கப்படும்.,
 Shift Request Approver,ஷிப்ட் கோரிக்கை ஒப்புதல்,
-PAN Number,பான் எண்,
 Provident Fund Account,வருங்கால வைப்பு நிதி கணக்கு,
 MICR Code,MICR குறியீடு,
 Repay unclaimed amount from salary,கோரப்படாத தொகையை சம்பளத்திலிருந்து திருப்பிச் செலுத்துங்கள்,
 Deduction from salary,சம்பளத்திலிருந்து கழித்தல்,
-Expired Leaves,காலாவதியான இலைகள்,
 If this is not checked the loan by default will be considered as a Demand Loan,"இது சரிபார்க்கப்படாவிட்டால், இயல்புநிலையாக கடன் தேவை கடனாக கருதப்படும்",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,கடன் வாங்கியவரிடமிருந்து கடன் திருப்பிச் செலுத்துவதற்கு முன்பதிவு செய்வதற்கும் கடன் வாங்கியவருக்கு கடன்களை வழங்குவதற்கும் இந்த கணக்கு பயன்படுத்தப்படுகிறது,
 This account is capital account which is used to allocate capital for loan disbursal account ,"இந்த கணக்கு மூலதன கணக்கு ஆகும், இது கடன் வழங்கல் கணக்கிற்கு மூலதனத்தை ஒதுக்க பயன்படுகிறது",
@@ -8748,3 +8741,5 @@
 Is Mandatory,அத்தியாவசியமானதாகும்,
 WhatsApp,பகிரி,
 Make a call,அழைப்பு விடுங்கள்,
+Approve,ஒப்புதல்,
+Reject,நிராகரி,
diff --git a/erpnext/translations/te.csv b/erpnext/translations/te.csv
index 228f293..8472163 100644
--- a/erpnext/translations/te.csv
+++ b/erpnext/translations/te.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,ఆటో రిపీట్ పత్రం నవీకరించబడింది,
 Automotive,ఆటోమోటివ్,
 Available,అందుబాటులో,
-Available Leaves,అందుబాటులో ఉన్న ఆకులు,
 Available Qty,అందుబాటులో ప్యాక్ చేసిన అంశాల,
 Available Selling,అందుబాటులో సెల్లింగ్,
 Available for use date is required,ఉపయోగ తేదీ కోసం అందుబాటులో ఉంది,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,హబ్ సమకాలీకరణ ID,
 Human Resource,మానవ వనరుల,
 Human Resources,మానవ వనరులు,
-IFSC Code,IFSC కోడ్,
 IGST Amount,IGST మొత్తం,
 IP Address,IP చిరునామా,
 ITC Available (whether in full op part),ఐటిసి అందుబాటులో ఉంది (పూర్తిస్థాయిలో ఉన్నా),
@@ -1666,7 +1664,6 @@
 Other,ఇతర,
 Other Reports,ఇతర నివేదికలు,
 "Other outward supplies(Nil rated,Exempted)","ఇతర బాహ్య సామాగ్రి (నిల్ రేట్, మినహాయింపు)",
-Others,ఇతరత్రా,
 Out Qty,ప్యాక్ చేసిన అంశాల అవుట్,
 Out Value,అవుట్ విలువ,
 Out of Order,పనిచేయటంలేదు,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),మొత్తం (పన్ను లేకుండా),
 Total Achieved,మొత్తం ఆర్జిత,
 Total Actual,యదార్థమైన మొత్తం,
-Total Allocated Leaves,మొత్తం కేటాయించిన ఆకులు,
 Total Amount,మొత్తం డబ్బు,
 Total Amount Credited,మొత్తం మొత్తంలో పొందింది,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,కొనుగోలు స్వీకరణపై అంశాలు పట్టికలో మొత్తం వర్తించే ఛార్జీలు మొత్తం పన్నులు మరియు ఆరోపణలు అదే ఉండాలి,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,మీ లేఖ తల మరియు లోగో అప్లోడ్. (మీరు తర్వాత వాటిని సవరించవచ్చు).,
 Upper Income,ఉన్నత ఆదాయపు,
 Use Sandbox,శాండ్బాక్స్ ఉపయోగించండి,
-Used Leaves,వాడిన ఆకులు,
 User,వాడుకరి,
 User ID,వినియోగదారుని గుర్తింపు,
 User ID not set for Employee {0},వాడుకరి ID ఉద్యోగి సెట్ {0},
@@ -7949,12 +7944,10 @@
 Approvers,అప్రూవర్స్,
 The first Approver in the list will be set as the default Approver.,జాబితాలోని మొదటి ఆమోదం డిఫాల్ట్ ఆమోదంగా సెట్ చేయబడుతుంది.,
 Shift Request Approver,షిఫ్ట్ అభ్యర్థన ఆమోదం,
-PAN Number,పాన్ సంఖ్య,
 Provident Fund Account,ప్రావిడెంట్ ఫండ్ ఖాతా,
 MICR Code,MICR కోడ్,
 Repay unclaimed amount from salary,క్లెయిమ్ చేయని మొత్తాన్ని జీతం నుండి తిరిగి చెల్లించండి,
 Deduction from salary,జీతం నుండి మినహాయింపు,
-Expired Leaves,గడువు ముగిసిన ఆకులు,
 If this is not checked the loan by default will be considered as a Demand Loan,ఇది తనిఖీ చేయకపోతే అప్పును అప్పుగా డిమాండ్ లోన్‌గా పరిగణిస్తారు,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,ఈ ఖాతా రుణగ్రహీత నుండి రుణ తిరిగి చెల్లించటానికి మరియు రుణగ్రహీతకు రుణాలు పంపిణీ చేయడానికి ఉపయోగించబడుతుంది,
 This account is capital account which is used to allocate capital for loan disbursal account ,"ఈ ఖాతా మూలధన ఖాతా, ఇది రుణ పంపిణీ ఖాతాకు మూలధనాన్ని కేటాయించడానికి ఉపయోగించబడుతుంది",
@@ -8748,3 +8741,5 @@
 Is Mandatory,తప్పనిసరి,
 WhatsApp,వాట్సాప్,
 Make a call,కాల్ చేయుము,
+Approve,ఆమోదించడానికి,
+Reject,తిరస్కరించు,
diff --git a/erpnext/translations/th.csv b/erpnext/translations/th.csv
index 86b8d15..dcd632b 100644
--- a/erpnext/translations/th.csv
+++ b/erpnext/translations/th.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,อัปเดตเอกสารซ้ำอัตโนมัติแล้ว,
 Automotive,ยานยนต์,
 Available,ที่มีจำหน่าย,
-Available Leaves,มีใบ,
 Available Qty,จำนวนที่มีจำหน่าย,
 Available Selling,ขายได้,
 Available for use date is required,ต้องมีวันที่ใช้งาน,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,รหัสการซิงค์ของ Hub,
 Human Resource,ทรัพยากรมนุษย์,
 Human Resources,ทรัพยากรบุคคล,
-IFSC Code,รหัส IFSC,
 IGST Amount,IGST Amount,
 IP Address,ที่อยู่ IP,
 ITC Available (whether in full op part),ITC ว่าง (ไม่ว่าจะอยู่ในส่วน op แบบเต็ม),
@@ -1666,7 +1664,6 @@
 Other,อื่น ๆ,
 Other Reports,รายงานอื่น ๆ,
 "Other outward supplies(Nil rated,Exempted)","วัสดุภายนอกอื่น ๆ (ไม่มีการจัดอันดับ, ยกเว้น)",
-Others,คนอื่น ๆ,
 Out Qty,ออก จำนวน,
 Out Value,ราคาออกมา,
 Out of Order,ชำรุด,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),รวม (ไม่มีภาษี),
 Total Achieved,รวมประสบความสำเร็จ,
 Total Actual,ทั้งหมดที่เกิดขึ้นจริง,
-Total Allocated Leaves,ยอดรวมใบ,
 Total Amount,รวมเป็นเงิน,
 Total Amount Credited,ยอดรวมเครดิต,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,ค่าใช้จ่ายรวมในการซื้อโต๊ะใบเสร็จรับเงินรายการที่จะต้องเป็นเช่นเดียวกับภาษีและค่าใช้จ่ายรวม,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,อัปโหลดหัวจดหมายของคุณและโลโก้ (คุณสามารถแก้ไขได้ในภายหลัง),
 Upper Income,รายได้บน,
 Use Sandbox,ใช้ Sandbox,
-Used Leaves,ใบที่ใช้แล้ว,
 User,ผู้ใช้งาน,
 User ID,รหัสผู้ใช้,
 User ID not set for Employee {0},รหัสผู้ใช้ ไม่ได้ ตั้งไว้สำหรับ พนักงาน {0},
@@ -7949,12 +7944,10 @@
 Approvers,ผู้อนุมัติ,
 The first Approver in the list will be set as the default Approver.,ผู้อนุมัติคนแรกในรายการจะถูกตั้งเป็นผู้อนุมัติเริ่มต้น,
 Shift Request Approver,ผู้อนุมัติคำขอกะ,
-PAN Number,หมายเลข PAN,
 Provident Fund Account,บัญชีกองทุนสำรองเลี้ยงชีพ,
 MICR Code,รหัส MICR,
 Repay unclaimed amount from salary,ชำระคืนจำนวนเงินที่ไม่มีการเรียกร้องจากเงินเดือน,
 Deduction from salary,หักจากเงินเดือน,
-Expired Leaves,ใบหมดอายุ,
 If this is not checked the loan by default will be considered as a Demand Loan,หากไม่ได้ตรวจสอบเงินกู้โดยค่าเริ่มต้นจะถือว่าเป็น Demand Loan,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,บัญชีนี้ใช้สำหรับจองการชำระคืนเงินกู้จากผู้กู้และการเบิกจ่ายเงินกู้ให้กับผู้กู้,
 This account is capital account which is used to allocate capital for loan disbursal account ,บัญชีนี้เป็นบัญชีทุนที่ใช้ในการจัดสรรเงินทุนสำหรับบัญชีการเบิกจ่ายเงินกู้,
@@ -8748,3 +8741,5 @@
 Is Mandatory,เป็นข้อบังคับ,
 WhatsApp,WhatsApp,
 Make a call,ทำการโทร,
+Approve,อนุมัติ,
+Reject,ปฏิเสธ,
diff --git a/erpnext/translations/tr.csv b/erpnext/translations/tr.csv
index 78d6a79..3708246 100644
--- a/erpnext/translations/tr.csv
+++ b/erpnext/translations/tr.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Otomatik tekrar dokümanı güncellendi,
 Automotive,Otomotiv,
 Available,Mevcut,
-Available Leaves,Mevcut İzinler,
 Available Qty,Mevcut Miktar,
 Available Selling,Mevcut Satış,
 Available for use date is required,Kullanılabilir olacağı tarih gereklidir,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Hub Senkronizasyon Kimliği,
 Human Resource,İnsan Kaynağı,
 Human Resources,İnsan Kaynakları,
-IFSC Code,IFSC Kodu,
 IGST Amount,IGST Tutarı,
 IP Address,IP adresi,
 ITC Available (whether in full op part),ITC Müsait (tam hüküm olsun),
@@ -1666,7 +1664,6 @@
 Other,Diğer,
 Other Reports,Diğer Raporlar,
 "Other outward supplies(Nil rated,Exempted)","Diğer dış sarf malzemeleri (Nil puan, Muaf)",
-Others,Diğer,
 Out Qty,Çıkış Miktarı,
 Out Value,Çıkış Değeri,
 Out of Order,bozuk,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Toplam (Vergi hariç),
 Total Achieved,Toplam Eldeki,
 Total Actual,Gerçek Toplam,
-Total Allocated Leaves,Toplam Tahsis Edilen İzin,
 Total Amount,Toplam Tutar,
 Total Amount Credited,Kredili Toplam Tutar,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Satınalma Makbuzu Vergi Öğeleri tablosundaki toplam uygulanabilir Masraflar Toplam ve Masraflar aynı olmalıdır,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Mektup baş ve logo yükleyin. (Daha sonra bunları düzenleyebilirsiniz).,
 Upper Income,üst gelir,
 Use Sandbox,Kullanım Sandbox,
-Used Leaves,Kullanılan İzin,
 User,Kullanıcı,
 User ID,Kullanıcı kimliği,
 User ID not set for Employee {0},Çalışan {0} için kullanıcı sıfatı ayarlanmamış,
@@ -7948,12 +7943,10 @@
 Approvers,Onaylayanlar,
 The first Approver in the list will be set as the default Approver.,"Listedeki ilk Onaylayan, varsayılan Onaylayan olarak ayarlanacaktır.",
 Shift Request Approver,Vardiya İsteği Onaylayıcısı,
-PAN Number,PAN Numarası,
 Provident Fund Account,İhtiyat Fonu Hesabı,
 MICR Code,MICR Kodu,
 Repay unclaimed amount from salary,Talep edilmeyen maaştan geri ödeyin,
 Deduction from salary,Maaştan kesinti,
-Expired Leaves,Süresi biten İzinler,
 If this is not checked the loan by default will be considered as a Demand Loan,"Bu kontrol reddedilirse, varsayılan olarak kredi bir Talep Kredisi olarak kabul edilecektir.",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,"Bu hesap, borçludan kredi geri ödemelerini yapmak ve ayrıca borçluya kredi vermek için kullanılır.",
 This account is capital account which is used to allocate capital for loan disbursal account ,"Bu hesap, kredi ödeme hesabına sermaye tahsis etmek için kullanılan sermaye hesabıdır.",
@@ -9005,3 +8998,5 @@
 Is Mandatory,Zorunludur,
 WhatsApp,WhatsApp,
 Make a call,Arama yap,
+Approve,Onayla,
+Reject,Reddet,
diff --git a/erpnext/translations/uk.csv b/erpnext/translations/uk.csv
index 3ad588c..1752330 100644
--- a/erpnext/translations/uk.csv
+++ b/erpnext/translations/uk.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Автоматичний повторення документа оновлено,
 Automotive,Автомобільний,
 Available,наявний,
-Available Leaves,Доступні листи,
 Available Qty,Доступна к-сть,
 Available Selling,Доступні продажі,
 Available for use date is required,Необхідна дата для використання,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Ідентифікатор концентратора синхронізації,
 Human Resource,Людський ресурс,
 Human Resources,Кадри,
-IFSC Code,IFSC Code,
 IGST Amount,Сума IGST,
 IP Address,IP-адреса,
 ITC Available (whether in full op part),Доступний ITC (будь то в повній частині,
@@ -1666,7 +1664,6 @@
 Other,Інший,
 Other Reports,Інші звіти,
 "Other outward supplies(Nil rated,Exempted)","Інші зовнішні поставки (з нульовою оцінкою, звільнено)",
-Others,Інші,
 Out Qty,Розхід у к-сті,
 Out Value,Розхід у Сумі,
 Out of Order,Вийшов з ладу,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Усього (без податку),
 Total Achieved,Всього Виконано,
 Total Actual,Загальний фактичний,
-Total Allocated Leaves,Усього виділених листів,
 Total Amount,Загалом,
 Total Amount Credited,Загальна сума кредитується,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,"Всього Застосовуються збори в таблиці Purchase квитанцій Елементів повинні бути такими ж, як всі податки і збори",
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Відвантажити ваш фірмовий заголовок та логотип. (Ви зможете відредагувати їх пізніше).,
 Upper Income,Верхня прибуток,
 Use Sandbox,Використання Пісочниця,
-Used Leaves,Використовувані листи,
 User,Користувач,
 User ID,ідентифікатор користувача,
 User ID not set for Employee {0},Ідентифікатор користувача не встановлений Employee {0},
@@ -7949,12 +7944,10 @@
 Approvers,Схвалювачі,
 The first Approver in the list will be set as the default Approver.,Перший затверджувач у списку буде встановлений як затверджувач за замовчуванням.,
 Shift Request Approver,Затверджувач запиту на зміну,
-PAN Number,Номер PAN,
 Provident Fund Account,Рахунок забезпеченого фонду,
 MICR Code,Кодекс MICR,
 Repay unclaimed amount from salary,Повернути незатребувану суму із заробітної плати,
 Deduction from salary,Відрахування із зарплати,
-Expired Leaves,Листя закінчилися,
 If this is not checked the loan by default will be considered as a Demand Loan,"Якщо це не позначено, позика за замовчуванням буде розглядатися як позика на вимогу",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,"Цей рахунок використовується для бронювання виплат позики у позичальника, а також для видачі позик позичальнику",
 This account is capital account which is used to allocate capital for loan disbursal account ,"Цей рахунок є рахунком капіталу, який використовується для розподілу капіталу на рахунок виплати позики",
@@ -8748,3 +8741,5 @@
 Is Mandatory,Обов’язковий,
 WhatsApp,WhatsApp,
 Make a call,Зроби дзвінок,
+Approve,Затвердити,
+Reject,відхиляти,
diff --git a/erpnext/translations/ur.csv b/erpnext/translations/ur.csv
index c5610f0..504cc8d 100644
--- a/erpnext/translations/ur.csv
+++ b/erpnext/translations/ur.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,خود بخود دستاویز کو اپ ڈیٹ کیا,
 Automotive,آٹوموٹو,
 Available,دستیاب,
-Available Leaves,دستیاب پتیوں,
 Available Qty,دستیاب مقدار,
 Available Selling,دستیاب فروخت,
 Available for use date is required,استعمال کی تاریخ کے لئے دستیاب ہے,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,حب ہم آہنگی کی شناخت,
 Human Resource,انسانی وسائل,
 Human Resources,انسانی وسائل,
-IFSC Code,IFSC کوڈ,
 IGST Amount,IGST رقم,
 IP Address,IP پتہ,
 ITC Available (whether in full op part),آئی ٹی سی دستیاب ہے (چاہے وہ پوری طرح سے ہو),
@@ -1666,7 +1664,6 @@
 Other,دیگر,
 Other Reports,دیگر رپورٹوں,
 "Other outward supplies(Nil rated,Exempted)",دیگر ظاہری رسد (نیل ریٹیڈ ، مستثنیٰ),
-Others,دیگر,
 Out Qty,مقدار باہر,
 Out Value,آؤٹ ویلیو,
 Out of Order,حکم سے باہر,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),کل (ٹیکس کے بغیر),
 Total Achieved,کل حاصل کیا,
 Total Actual,اصل کل,
-Total Allocated Leaves,کل مختص شدہ پتیوں,
 Total Amount,کل رقم,
 Total Amount Credited,کریڈٹ کل رقم,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,خریداری کی رسید اشیا ٹیبل میں تمام قابل اطلاق چارجز کل ٹیکس اور الزامات طور پر ایک ہی ہونا چاہیے,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,اپنے خط سر اور علامت (لوگو). (آپ کو بعد ان میں ترمیم کر سکتے ہیں).,
 Upper Income,بالائی آمدنی,
 Use Sandbox,سینڈباکس استعمال,
-Used Leaves,استعمال شدہ پتیوں,
 User,صارف,
 User ID,صارف کی شناخت,
 User ID not set for Employee {0},صارف ID ملازم کے لئے مقرر نہیں {0},
@@ -7949,12 +7944,10 @@
 Approvers,تنازعہ,
 The first Approver in the list will be set as the default Approver.,فہرست میں پہلا منظور نامہ پہلے سے طے شدہ منظوری کے طور پر مقرر کیا جائے گا۔,
 Shift Request Approver,شفٹ کی درخواست منظور کریں,
-PAN Number,پین نمبر,
 Provident Fund Account,پروویڈنٹ فنڈ اکاؤنٹ,
 MICR Code,ایم آئی سی آر کوڈ,
 Repay unclaimed amount from salary,تنخواہ سے غیر دعویدار رقم واپس کریں,
 Deduction from salary,تنخواہ سے کٹوتی,
-Expired Leaves,ختم شدہ پتے,
 If this is not checked the loan by default will be considered as a Demand Loan,اگر اس کی جانچ نہیں کی گئی تو قرض کو بطور ڈیفانٹ لون سمجھا جائے گا,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,یہ اکاؤنٹ قرض لینے والے سے قرض کی واپسیوں کی بکنگ اور قرض لینے والے کو قرضوں کی تقسیم کے لئے استعمال ہوتا ہے,
 This account is capital account which is used to allocate capital for loan disbursal account ,یہ کھاتہ دارالحکومت کا کھاتہ ہے جو قرض تقسیم کے اکاؤنٹ کے لئے سرمایہ مختص کرنے کے لئے استعمال ہوتا ہے,
@@ -8748,3 +8741,5 @@
 Is Mandatory,لازمی ہے,
 WhatsApp,واٹس ایپ,
 Make a call,بنائیں ایک کال,
+Approve,منظور کریں,
+Reject,مسترد,
diff --git a/erpnext/translations/uz.csv b/erpnext/translations/uz.csv
index a3fc3f4..6b25e7b 100644
--- a/erpnext/translations/uz.csv
+++ b/erpnext/translations/uz.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Avtomatik qayta-qayta hujjat yangilandi,
 Automotive,Avto,
 Available,Mavjud,
-Available Leaves,Mavjud barglar,
 Available Qty,Mavjud Miqdor,
 Available Selling,Sotuvga tayyor,
 Available for use date is required,Foydalanish uchun mavjud bo&#39;lgan sana talab qilinadi,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,Uyadagi sinxronlash identifikatori,
 Human Resource,Inson resursi,
 Human Resources,Kadrlar bo&#39;limi,
-IFSC Code,IFSC kodi,
 IGST Amount,IGST miqdori,
 IP Address,IP manzili,
 ITC Available (whether in full op part),ITC mavjud (to&#39;liq holatda bo&#39;lsin),
@@ -1666,7 +1664,6 @@
 Other,Boshqa,
 Other Reports,Boshqa hisobotlar,
 "Other outward supplies(Nil rated,Exempted)","Boshqa tashqi etkazib berish (Nil baholanmagan, ozod qilingan)",
-Others,Boshqalar,
 Out Qty,Miqdori,
 Out Value,Chiqish qiymati,
 Out of Order,Tartibsiz,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Hammasi bo&#39;lib (soliqsiz),
 Total Achieved,Jami erishildi,
 Total Actual,Jami haqiqiy,
-Total Allocated Leaves,Jami ajratilgan barglar,
 Total Amount,Umumiy hisob,
 Total Amount Credited,Jami kredit miqdori,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Buyurtma olish bo&#39;yicha ma&#39;lumotlar jamlanmasi jami soliqlar va yig&#39;imlar bilan bir xil bo&#39;lishi kerak,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Sizning xat boshingizni va logotipingizni yuklang. (keyinchalik ularni tahrirlashingiz mumkin).,
 Upper Income,Yuqori daromad,
 Use Sandbox,Sandboxdan foydalaning,
-Used Leaves,Ishlatilgan barglar,
 User,Foydalanuvchi,
 User ID,foydalanuvchi IDsi,
 User ID not set for Employee {0},Foydalanuvchining identifikatori {0} xizmatdoshiga o&#39;rnatilmagan,
@@ -7949,12 +7944,10 @@
 Approvers,Qarama-qarshilik,
 The first Approver in the list will be set as the default Approver.,Ro&#39;yxatdagi birinchi Approver standart Approver sifatida o&#39;rnatiladi.,
 Shift Request Approver,Shift so&#39;rovini tasdiqlovchi,
-PAN Number,PAN raqami,
 Provident Fund Account,Provayder fondining hisobvarag&#39;i,
 MICR Code,MICR kodi,
 Repay unclaimed amount from salary,Talab qilinmagan miqdorni ish haqidan qaytaring,
 Deduction from salary,Ish haqidan ushlab qolish,
-Expired Leaves,Muddati o&#39;tgan barglar,
 If this is not checked the loan by default will be considered as a Demand Loan,"Agar bu tekshirilmasa, sukut bo&#39;yicha qarz talabga javob beradigan kredit sifatida qabul qilinadi",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Ushbu hisob qarz oluvchidan kreditni to&#39;lashni bron qilish va qarz oluvchiga qarz berish uchun ishlatiladi,
 This account is capital account which is used to allocate capital for loan disbursal account ,"Ushbu hisob kapital hisobvarag&#39;i bo&#39;lib, u ssudani to&#39;lash hisobiga kapital ajratish uchun ishlatiladi",
@@ -8748,3 +8741,5 @@
 Is Mandatory,Majburiy,
 WhatsApp,WhatsApp,
 Make a call,Qo&#39;ng&#39;iroq qiling,
+Approve,Tasdiqlang,
+Reject,Rad etish,
diff --git a/erpnext/translations/vi.csv b/erpnext/translations/vi.csv
index 10bc92a..e576ef7 100644
--- a/erpnext/translations/vi.csv
+++ b/erpnext/translations/vi.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,Tự động cập nhật tài liệu được cập nhật,
 Automotive,Ô tô,
 Available,Khả dụng,
-Available Leaves,Lá có sẵn,
 Available Qty,Số lượng có sẵn,
 Available Selling,Bán có sẵn,
 Available for use date is required,Có sẵn cho ngày sử dụng là bắt buộc,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,ID đồng bộ hóa của Hub,
 Human Resource,Nguồn nhân lực,
 Human Resources,Nhân sự,
-IFSC Code,Mã IFSC,
 IGST Amount,Lượng IGST,
 IP Address,Địa chỉ IP,
 ITC Available (whether in full op part),ITC Có sẵn (cho dù trong phần op đầy đủ),
@@ -1666,7 +1664,6 @@
 Other,Khác,
 Other Reports,Báo cáo khác,
 "Other outward supplies(Nil rated,Exempted)","Các nguồn cung bên ngoài khác (Không được xếp hạng, Được miễn)",
-Others,Các thông tin khác,
 Out Qty,Số lượng ra,
 Out Value,Giá trị hiện,
 Out of Order,Out of Order,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),Tổng (Không Thuế),
 Total Achieved,Tổng số đã đạt được,
 Total Actual,Tổng số thực tế,
-Total Allocated Leaves,Tổng số lá được phân bổ,
 Total Amount,Tổng số,
 Total Amount Credited,Tổng số tiền được ghi có,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,Tổng phí tại biên lai mua các mẫu hàng phải giống như tổng các loại thuế và phí,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,Tải lên tiêu đề trang và logo. (Bạn có thể chỉnh sửa chúng sau này).,
 Upper Income,Thu nhập trên,
 Use Sandbox,sử dụng Sandbox,
-Used Leaves,Lá đã qua sử dụng,
 User,Người dùng,
 User ID,ID người dùng,
 User ID not set for Employee {0},ID người dùng không thiết lập cho nhân viên {0},
@@ -7949,12 +7944,10 @@
 Approvers,Người phê duyệt,
 The first Approver in the list will be set as the default Approver.,Người phê duyệt đầu tiên trong danh sách sẽ được đặt làm Người phê duyệt mặc định.,
 Shift Request Approver,Người phê duyệt yêu cầu thay đổi,
-PAN Number,Số PAN,
 Provident Fund Account,Tài khoản Quỹ cấp,
 MICR Code,Mã MICR,
 Repay unclaimed amount from salary,Hoàn trả số tiền chưa nhận được từ tiền lương,
 Deduction from salary,Khấu trừ lương,
-Expired Leaves,Lá hết hạn,
 If this is not checked the loan by default will be considered as a Demand Loan,"Nếu điều này không được kiểm tra, khoản vay mặc định sẽ được coi là Khoản vay không kỳ hạn",
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,Tài khoản này được sử dụng để hoàn trả khoản vay từ người đi vay và cũng để giải ngân các khoản vay cho người vay,
 This account is capital account which is used to allocate capital for loan disbursal account ,Tài khoản này là tài khoản vốn dùng để cấp vốn cho tài khoản giải ngân cho vay,
@@ -8748,3 +8741,5 @@
 Is Mandatory,Bắt buộc,
 WhatsApp,WhatsApp,
 Make a call,Thực hiện cuộc gọi,
+Approve,Tán thành,
+Reject,Từ chối,
diff --git a/erpnext/translations/zh-TW.csv b/erpnext/translations/zh-TW.csv
index 752c1f5..699d802 100644
--- a/erpnext/translations/zh-TW.csv
+++ b/erpnext/translations/zh-TW.csv
@@ -712,7 +712,6 @@
 Account {0} does not belong to company: {1},科目{0}不屬於公司：{1}
 Abbreviation already used for another company,另一家公司已使用此縮寫
 Default Customer Group,預設客戶群組
-IFSC Code,IFSC代碼
 "If disable, 'Rounded Total' field will not be visible in any transaction",如果禁用，“圓角總計”字段將不可見的任何交易
 Operating Cost,營業成本
 Produced Items,生產物品
@@ -4144,7 +4143,6 @@
 Finance Book Id,金融書籍ID,
 Safety Stock,安全庫存
 Healthcare Settings,醫療設置
-Total Allocated Leaves,總分配的葉子
 Progress % for a task cannot be more than 100.,為任務進度百分比不能超過100個。
 Before reconciliation,調整前
 Taxes and Charges Added (Company Currency),稅收和收費上架（公司貨幣）
@@ -4523,7 +4521,6 @@
 Settings for website homepage,對網站的主頁設置
 {0} is on hold till {1},{0}一直保持到{1}
 RFQs are not allowed for {0} due to a scorecard standing of {1},由於{1}的記分卡，{0}不允許使用RFQ,
-Used Leaves,使用的葉子
 Link Options,鏈接選項
 Total Amount {0},總金額{0}
 Invalid attribute {0} {1},無效的屬性{0} {1}
@@ -4654,7 +4651,6 @@
 Contact Desc,聯絡倒序
 Send regular summary reports via Email.,使用電子郵件發送定期匯總報告。
 Please set default account in Expense Claim Type {0},請報銷類型設置默認科目{0}
-Available Leaves,可用的葉子
 Student Name,學生姓名
 Item Manager,項目經理
 Payroll Payable,應付職工薪酬
@@ -5975,3 +5971,4 @@
 Payment Gateway,支付網關
 Address and Contacts,地址和聯絡方式
 Plan Name,計劃名稱
+Reject,拒絕
diff --git a/erpnext/translations/zh.csv b/erpnext/translations/zh.csv
index bb30bd4..70ec81a 100644
--- a/erpnext/translations/zh.csv
+++ b/erpnext/translations/zh.csv
@@ -286,7 +286,6 @@
 Auto repeat document updated,自动重复文件更新,
 Automotive,汽车,
 Available,可用的,
-Available Leaves,可用休假天数,
 Available Qty,可用数量,
 Available Selling,可用销售,
 Available for use date is required,需要使用可用日期,
@@ -1122,7 +1121,6 @@
 Hub Sync ID,集线器同步ID,
 Human Resource,人力资源,
 Human Resources,人力资源,
-IFSC Code,IFSC代码,
 IGST Amount,IGST金额,
 IP Address,IP地址,
 ITC Available (whether in full op part),ITC可用（无论是全部操作部分）,
@@ -1666,7 +1664,6 @@
 Other,其他,
 Other Reports,其他报表,
 "Other outward supplies(Nil rated,Exempted)",其他外向供应（未评级，豁免）,
-Others,他人,
 Out Qty,发出数量,
 Out Value,输出值,
 Out of Order,乱序,
@@ -2812,7 +2809,6 @@
 Total (Without Tax),总计（不含税）,
 Total Achieved,总体上实现的,
 Total Actual,实际总和,
-Total Allocated Leaves,合计已分配休假天数,
 Total Amount,总金额,
 Total Amount Credited,记入贷方的总金额,
 Total Applicable Charges in Purchase Receipt Items table must be same as Total Taxes and Charges,基于采购收货单信息计算的总税费必须与采购单（单头）的总税费一致,
@@ -2922,7 +2918,6 @@
 Upload your letter head and logo. (you can edit them later).,上传你的信头和logo。(您可以在以后对其进行编辑）。,
 Upper Income,高收入,
 Use Sandbox,使用沙盒,
-Used Leaves,已休假(天数),
 User,用户,
 User ID,用户ID,
 User ID not set for Employee {0},员工设置{0}为设置用户ID,
@@ -7949,12 +7944,10 @@
 Approvers,批准人,
 The first Approver in the list will be set as the default Approver.,列表中的第一个批准人将被设置为默认批准人。,
 Shift Request Approver,轮班请求批准人,
-PAN Number,PAN号码,
 Provident Fund Account,公积金帐户,
 MICR Code,MICR代码,
 Repay unclaimed amount from salary,从工资中偿还无人认领的金额,
 Deduction from salary,从工资中扣除,
-Expired Leaves,过期的叶子,
 If this is not checked the loan by default will be considered as a Demand Loan,如果未选中此选项，则默认情况下该贷款将被视为需求贷款,
 This account is used for booking loan repayments from the borrower and also disbursing loans to the borrower,此帐户用于预订借款人的还款，也用于向借款人发放贷款,
 This account is capital account which is used to allocate capital for loan disbursal account ,该帐户是资本帐户，用于为贷款支付帐户分配资本,
@@ -8748,3 +8741,5 @@
 Is Mandatory,是强制性的,
 WhatsApp,WhatsApp的,
 Make a call,打个电话,
+Approve,同意,
+Reject,拒绝,
diff --git a/pyproject.toml b/pyproject.toml
index 7841c92..604aa44 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -16,11 +16,9 @@
     "holidays~=0.28",
 
     # integration dependencies
-    "gocardless-pro~=1.22.0",
     "googlemaps",
     "plaid-python~=7.2.1",
     "python-youtube~=0.8.0",
-    "tweepy~=4.14.0",
 
     # Not used directly - required by PyQRCode for PNG generation
     "pypng~=0.20220715.0",
