diff --git a/erpnext/accounts/doctype/bank_clearance/bank_clearance.py b/erpnext/accounts/doctype/bank_clearance/bank_clearance.py
index 98ba399..1a572d9 100644
--- a/erpnext/accounts/doctype/bank_clearance/bank_clearance.py
+++ b/erpnext/accounts/doctype/bank_clearance/bank_clearance.py
@@ -104,7 +104,7 @@
 
 		loan_repayment = frappe.qb.DocType("Loan Repayment")
 
-		loan_repayments = (
+		query = (
 			frappe.qb.from_(loan_repayment)
 			.select(
 				ConstantColumn("Loan Repayment").as_("payment_document"),
@@ -118,13 +118,17 @@
 			)
 			.where(loan_repayment.docstatus == 1)
 			.where(loan_repayment.clearance_date.isnull())
-			.where(loan_repayment.repay_from_salary == 0)
 			.where(loan_repayment.posting_date >= self.from_date)
 			.where(loan_repayment.posting_date <= self.to_date)
 			.where(loan_repayment.payment_account.isin([self.bank_account, self.account]))
-			.orderby(loan_repayment.posting_date)
-			.orderby(loan_repayment.name, frappe.qb.desc)
-		).run(as_dict=1)
+		)
+
+		if frappe.db.has_column("Loan Repayment", "repay_from_salary"):
+			query = query.where((loan_repayment.repay_from_salary == 0))
+
+		query = query.orderby(loan_repayment.posting_date).orderby(loan_repayment.name, frappe.qb.desc)
+
+		loan_repayments = query.run(as_dict=True)
 
 		pos_sales_invoices, pos_purchase_invoices = [], []
 		if self.include_pos_transactions:
diff --git a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py
index 0efe086..4cc6bf7 100644
--- a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py
+++ b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py
@@ -467,11 +467,13 @@
 			loan_repayment.posting_date,
 		)
 		.where(loan_repayment.docstatus == 1)
-		.where(loan_repayment.repay_from_salary == 0)
 		.where(loan_repayment.clearance_date.isnull())
 		.where(loan_repayment.payment_account == bank_account)
 	)
 
+	if frappe.db.has_column("Loan Repayment", "repay_from_salary"):
+		query = query.where((loan_repayment.repay_from_salary == 0))
+
 	if amount_condition:
 		query.where(loan_repayment.amount_paid == filters.get("amount"))
 	else:
diff --git a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
index c41d0d1..c26edde 100644
--- a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
+++ b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
@@ -198,12 +198,10 @@
 			amount_field = (loan_doc.disbursed_amount).as_("credit")
 			posting_date = (loan_doc.disbursement_date).as_("posting_date")
 			account = loan_doc.disbursement_account
-			salary_condition = loan_doc.docstatus == 1
 		else:
 			amount_field = (loan_doc.amount_paid).as_("debit")
 			posting_date = (loan_doc.posting_date).as_("posting_date")
 			account = loan_doc.payment_account
-			salary_condition = loan_doc.repay_from_salary == 0
 
 		query = (
 			frappe.qb.from_(loan_doc)
@@ -216,12 +214,14 @@
 				posting_date,
 			)
 			.where(loan_doc.docstatus == 1)
-			.where(salary_condition)
 			.where(account == filters.get("account"))
 			.where(posting_date <= getdate(filters.get("report_date")))
 			.where(ifnull(loan_doc.clearance_date, "4000-01-01") > getdate(filters.get("report_date")))
 		)
 
+		if doctype == "Loan Repayment" and frappe.db.has_column("Loan Repayment", "repay_from_salary"):
+			query = query.where((loan_doc.repay_from_salary == 0))
+
 		entries = query.run(as_dict=1)
 		loan_docs.extend(entries)
 
@@ -267,13 +267,12 @@
 			amount_field = Sum(loan_doc.disbursed_amount)
 			posting_date = (loan_doc.disbursement_date).as_("posting_date")
 			account = loan_doc.disbursement_account
-			salary_condition = loan_doc.docstatus == 1
 		else:
 			amount_field = Sum(loan_doc.amount_paid)
 			posting_date = (loan_doc.posting_date).as_("posting_date")
 			account = loan_doc.payment_account
-			salary_condition = loan_doc.repay_from_salary == 0
-		amount = (
+
+		query = (
 			frappe.qb.from_(loan_doc)
 			.select(amount_field)
 			.where(loan_doc.docstatus == 1)
@@ -281,9 +280,12 @@
 			.where(account == filters.get("account"))
 			.where(posting_date > getdate(filters.get("report_date")))
 			.where(ifnull(loan_doc.clearance_date, "4000-01-01") <= getdate(filters.get("report_date")))
-			.run()[0][0]
 		)
 
+		if doctype == "Loan Repayment" and frappe.db.has_column("Loan Repayment", "repay_from_salary"):
+			query = query.run((loan_doc.repay_from_salary == 0))
+
+		amount = query.run()[0][0]
 		total_amount += flt(amount)
 
 	return total_amount
diff --git a/erpnext/loan_management/doctype/loan/loan.json b/erpnext/loan_management/doctype/loan/loan.json
index ef78a64..ffcbbfe 100644
--- a/erpnext/loan_management/doctype/loan/loan.json
+++ b/erpnext/loan_management/doctype/loan/loan.json
@@ -16,7 +16,6 @@
   "company",
   "posting_date",
   "status",
-  "repay_from_salary",
   "section_break_8",
   "loan_type",
   "loan_amount",
@@ -125,13 +124,6 @@
    "read_only": 1
   },
   {
-   "default": "0",
-   "depends_on": "eval:doc.applicant_type==\"Employee\"",
-   "fieldname": "repay_from_salary",
-   "fieldtype": "Check",
-   "label": "Repay From Salary"
-  },
-  {
    "fieldname": "section_break_8",
    "fieldtype": "Section Break",
    "label": "Loan Details"
@@ -384,7 +376,7 @@
  "index_web_pages_for_search": 1,
  "is_submittable": 1,
  "links": [],
- "modified": "2022-03-10 11:50:31.957360",
+ "modified": "2022-06-21 11:50:31.957360",
  "modified_by": "Administrator",
  "module": "Loan Management",
  "name": "Loan",
diff --git a/erpnext/loan_management/doctype/loan/loan.py b/erpnext/loan_management/doctype/loan/loan.py
index ac8b362..a795668 100644
--- a/erpnext/loan_management/doctype/loan/loan.py
+++ b/erpnext/loan_management/doctype/loan/loan.py
@@ -20,15 +20,12 @@
 
 class Loan(AccountsController):
 	def validate(self):
-		if self.applicant_type == "Employee" and self.repay_from_salary:
-			validate_employee_currency_with_company_currency(self.applicant, self.company)
 		self.set_loan_amount()
 		self.validate_loan_amount()
 		self.set_missing_fields()
 		self.validate_cost_center()
 		self.validate_accounts()
 		self.check_sanctioned_amount_limit()
-		self.validate_repay_from_salary()
 
 		if self.is_term_loan:
 			validate_repayment_method(
@@ -106,10 +103,6 @@
 				)
 			)
 
-	def validate_repay_from_salary(self):
-		if not self.is_term_loan and self.repay_from_salary:
-			frappe.throw(_("Repay From Salary can be selected only for term loans"))
-
 	def make_repayment_schedule(self):
 		if not self.repayment_start_date:
 			frappe.throw(_("Repayment Start Date is mandatory for term loans"))
@@ -491,25 +484,6 @@
 	return unpledge_request
 
 
-def validate_employee_currency_with_company_currency(applicant, company):
-	from erpnext.payroll.doctype.salary_structure_assignment.salary_structure_assignment import (
-		get_employee_currency,
-	)
-
-	if not applicant:
-		frappe.throw(_("Please select Applicant"))
-	if not company:
-		frappe.throw(_("Please select Company"))
-	employee_currency = get_employee_currency(applicant)
-	company_currency = erpnext.get_company_currency(company)
-	if employee_currency != company_currency:
-		frappe.throw(
-			_(
-				"Loan cannot be repayed from salary for Employee {0} because salary is processed in currency {1}"
-			).format(applicant, employee_currency)
-		)
-
-
 @frappe.whitelist()
 def get_shortfall_applicants():
 	loans = frappe.get_all("Loan Security Shortfall", {"status": "Pending"}, pluck="loan")
diff --git a/erpnext/loan_management/doctype/loan/test_loan.py b/erpnext/loan_management/doctype/loan/test_loan.py
index e2b0870..da05c8e 100644
--- a/erpnext/loan_management/doctype/loan/test_loan.py
+++ b/erpnext/loan_management/doctype/loan/test_loan.py
@@ -29,11 +29,8 @@
 from erpnext.loan_management.doctype.process_loan_security_shortfall.process_loan_security_shortfall import (
 	create_process_loan_security_shortfall,
 )
-from erpnext.payroll.doctype.salary_structure.test_salary_structure import (
-	make_employee,
-	make_salary_structure,
-)
 from erpnext.selling.doctype.customer.test_customer import get_customer_dict
+from erpnext.setup.doctype.employee.test_employee import make_employee
 
 
 class TestLoan(unittest.TestCase):
@@ -93,13 +90,6 @@
 		)
 
 		self.applicant1 = make_employee("robert_loan@loan.com")
-		make_salary_structure(
-			"Test Salary Structure Loan",
-			"Monthly",
-			employee=self.applicant1,
-			currency="INR",
-			company="_Test Company",
-		)
 		if not frappe.db.exists("Customer", "_Test Loan Customer"):
 			frappe.get_doc(get_customer_dict("_Test Loan Customer")).insert(ignore_permissions=True)
 
diff --git a/erpnext/loan_management/doctype/loan_application/test_loan_application.py b/erpnext/loan_management/doctype/loan_application/test_loan_application.py
index 2a4bb88..7a44489 100644
--- a/erpnext/loan_management/doctype/loan_application/test_loan_application.py
+++ b/erpnext/loan_management/doctype/loan_application/test_loan_application.py
@@ -6,10 +6,7 @@
 import frappe
 
 from erpnext.loan_management.doctype.loan.test_loan import create_loan_accounts, create_loan_type
-from erpnext.payroll.doctype.salary_structure.test_salary_structure import (
-	make_employee,
-	make_salary_structure,
-)
+from erpnext.setup.doctype.employee.employee import make_employee
 
 
 class TestLoanApplication(unittest.TestCase):
@@ -32,9 +29,6 @@
 			18,
 		)
 		self.applicant = make_employee("kate_loan@loan.com", "_Test Company")
-		make_salary_structure(
-			"Test Salary Structure Loan", "Monthly", employee=self.applicant, currency="INR"
-		)
 		self.create_loan_application()
 
 	def create_loan_application(self):
diff --git a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.json b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.json
index 480e010..76dc8b4 100644
--- a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.json
+++ b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.json
@@ -15,9 +15,7 @@
   "posting_date",
   "clearance_date",
   "rate_of_interest",
-  "payroll_payable_account",
   "is_term_loan",
-  "repay_from_salary",
   "payment_details_section",
   "due_date",
   "pending_principal_amount",
@@ -253,21 +251,6 @@
    "read_only": 1
   },
   {
-   "depends_on": "eval:doc.repay_from_salary",
-   "fieldname": "payroll_payable_account",
-   "fieldtype": "Link",
-   "label": "Payroll Payable Account",
-   "mandatory_depends_on": "eval:doc.repay_from_salary",
-   "options": "Account"
-  },
-  {
-   "default": "0",
-   "fetch_from": "against_loan.repay_from_salary",
-   "fieldname": "repay_from_salary",
-   "fieldtype": "Check",
-   "label": "Repay From Salary"
-  },
-  {
    "fieldname": "clearance_date",
    "fieldtype": "Date",
    "label": "Clearance Date",
@@ -311,7 +294,7 @@
  "index_web_pages_for_search": 1,
  "is_submittable": 1,
  "links": [],
- "modified": "2022-02-18 19:10:07.742298",
+ "modified": "2022-06-21 10:10:07.742298",
  "modified_by": "Administrator",
  "module": "Loan Management",
  "name": "Loan Repayment",
diff --git a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py
index dcbdf8a..262545b 100644
--- a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py
+++ b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py
@@ -396,7 +396,7 @@
 		else:
 			remarks = _("Repayment against Loan:") + " " + self.against_loan
 
-		if self.repay_from_salary:
+		if hasattr(self, "repay_from_salary") and self.repay_from_salary:
 			payment_account = self.payroll_payable_account
 		else:
 			payment_account = self.payment_account
@@ -674,7 +674,9 @@
 
 		if (
 			no_of_late_days > 0
-			and (not against_loan_doc.repay_from_salary)
+			and (
+				not (hasattr(against_loan_doc, "repay_from_salary") and against_loan_doc.repay_from_salary)
+			)
 			and entry.accrual_type == "Regular"
 		):
 			penalty_amount += (
diff --git a/erpnext/loan_management/doctype/salary_slip_loan/__init__.py b/erpnext/loan_management/doctype/salary_slip_loan/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/loan_management/doctype/salary_slip_loan/__init__.py
+++ /dev/null
diff --git a/erpnext/loan_management/doctype/salary_slip_loan/salary_slip_loan.json b/erpnext/loan_management/doctype/salary_slip_loan/salary_slip_loan.json
deleted file mode 100644
index b7b20d9..0000000
--- a/erpnext/loan_management/doctype/salary_slip_loan/salary_slip_loan.json
+++ /dev/null
@@ -1,101 +0,0 @@
-{
- "actions": [],
- "creation": "2019-08-29 18:11:36.829526",
- "doctype": "DocType",
- "editable_grid": 1,
- "engine": "InnoDB",
- "field_order": [
-  "loan",
-  "loan_type",
-  "loan_account",
-  "interest_income_account",
-  "column_break_4",
-  "principal_amount",
-  "interest_amount",
-  "total_payment",
-  "loan_repayment_entry"
- ],
- "fields": [
-  {
-   "fieldname": "loan",
-   "fieldtype": "Link",
-   "in_list_view": 1,
-   "label": "Loan",
-   "options": "Loan",
-   "read_only": 1,
-   "reqd": 1
-  },
-  {
-   "fieldname": "loan_account",
-   "fieldtype": "Link",
-   "label": "Loan Account",
-   "options": "Account",
-   "read_only": 1
-  },
-  {
-   "fieldname": "interest_income_account",
-   "fieldtype": "Link",
-   "in_list_view": 1,
-   "label": "Interest Income Account",
-   "options": "Account",
-   "read_only": 1
-  },
-  {
-   "fieldname": "column_break_4",
-   "fieldtype": "Column Break"
-  },
-  {
-   "fieldname": "principal_amount",
-   "fieldtype": "Currency",
-   "in_list_view": 1,
-   "label": "Principal Amount",
-   "options": "Company:company:default_currency",
-   "read_only": 1
-  },
-  {
-   "fieldname": "interest_amount",
-   "fieldtype": "Currency",
-   "in_list_view": 1,
-   "label": "Interest Amount",
-   "options": "Company:company:default_currency",
-   "read_only": 1
-  },
-  {
-   "fieldname": "total_payment",
-   "fieldtype": "Currency",
-   "in_list_view": 1,
-   "label": "Total Payment",
-   "options": "Company:company:default_currency"
-  },
-  {
-   "fieldname": "loan_repayment_entry",
-   "fieldtype": "Link",
-   "label": "Loan Repayment Entry",
-   "no_copy": 1,
-   "options": "Loan Repayment",
-   "read_only": 1
-  },
-  {
-   "fetch_from": "loan.loan_type",
-   "fieldname": "loan_type",
-   "fieldtype": "Link",
-   "label": "Loan Type",
-   "options": "Loan Type",
-   "read_only": 1
-  }
- ],
- "index_web_pages_for_search": 1,
- "istable": 1,
- "links": [],
- "modified": "2022-01-31 14:50:14.823213",
- "modified_by": "Administrator",
- "module": "Loan Management",
- "name": "Salary Slip Loan",
- "owner": "Administrator",
- "permissions": [],
- "quick_entry": 1,
- "sort_field": "modified",
- "sort_order": "DESC",
- "states": [],
- "track_changes": 1
-}
\ No newline at end of file
diff --git a/erpnext/loan_management/doctype/salary_slip_loan/salary_slip_loan.py b/erpnext/loan_management/doctype/salary_slip_loan/salary_slip_loan.py
deleted file mode 100644
index 91267b8..0000000
--- a/erpnext/loan_management/doctype/salary_slip_loan/salary_slip_loan.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-
-# import frappe
-from frappe.model.document import Document
-
-
-class SalarySlipLoan(Document):
-	pass
diff --git a/erpnext/setup/utils.py b/erpnext/setup/utils.py
index b3ff439..54bd8c3 100644
--- a/erpnext/setup/utils.py
+++ b/erpnext/setup/utils.py
@@ -36,9 +36,6 @@
 			}
 		)
 
-	frappe.db.sql("delete from `tabLeave Allocation`")
-	frappe.db.sql("delete from `tabLeave Application`")
-	frappe.db.sql("delete from `tabSalary Slip`")
 	frappe.db.sql("delete from `tabItem Price`")
 
 	_enable_all_roles_for_admin()
