diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index e661d0b..2bbfe34 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -24,7 +24,7 @@
 	get_stock_and_account_balance,
 )
 from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
-	get_depr_schedule_from_asset_depr_schedule_of_asset,
+	get_depr_schedule,
 )
 from erpnext.controllers.accounts_controller import AccountsController
 
@@ -287,9 +287,7 @@
 			if d.reference_type == "Asset" and d.reference_name:
 				asset = frappe.get_doc("Asset", d.reference_name)
 				for row in asset.get("finance_books"):
-					depr_schedule = get_depr_schedule_from_asset_depr_schedule_of_asset(
-						asset.name, row.finance_book
-					)
+					depr_schedule = get_depr_schedule(asset.name, row.finance_book)
 
 					for s in depr_schedule:
 						if s.journal_entry == self.name:
diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js
index aa73a22..aa3af3b 100644
--- a/erpnext/assets/doctype/asset/asset.js
+++ b/erpnext/assets/doctype/asset/asset.js
@@ -209,7 +209,7 @@
 
 		if (frm.doc.finance_books.length == 1) {
 			depr_schedule = (await frappe.call(
-				"erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule.get_depr_schedule_from_asset_depr_schedule_of_asset",
+				"erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule.get_depr_schedule",
 				{
 					asset_name: frm.doc.name,
 					finance_book: frm.doc.finance_books[0].finance_book || null
diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index a9fed1c..47f88b0 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -32,8 +32,8 @@
 from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
 	cancel_asset_depr_schedules,
 	convert_draft_asset_depr_schedules_into_active,
-	get_asset_depr_schedule_doc_of_asset,
-	get_depr_schedule_from_asset_depr_schedule_of_asset,
+	get_asset_depr_schedule_doc,
+	get_depr_schedule,
 	make_draft_asset_depr_schedules,
 	set_draft_asset_depr_schedule_details,
 	update_draft_asset_depr_schedules,
@@ -50,6 +50,7 @@
 		self.set_missing_values()
 		if not self.split_from:
 			self.prepare_depreciation_data()
+			update_draft_asset_depr_schedules(self)
 		self.validate_gross_and_purchase_amount()
 		self.validate_expected_value_after_useful_life()
 
@@ -98,7 +99,6 @@
 		if self.calculate_depreciation:
 			self.value_after_depreciation = 0
 			self.set_depreciation_rate()
-			update_draft_asset_depr_schedules(self)
 		else:
 			self.finance_books = []
 			self.value_after_depreciation = flt(self.gross_purchase_amount) - flt(
@@ -350,13 +350,11 @@
 		return depreciation_amount_for_last_row
 
 	def get_depreciation_amount_for_first_row(self, finance_book):
-		return get_depr_schedule_from_asset_depr_schedule_of_asset(self.name, finance_book)[
-			0
-		].depreciation_amount
+		return get_depr_schedule(self.name, finance_book)[0].depreciation_amount
 
 	def validate_expected_value_after_useful_life(self):
 		for row in self.get("finance_books"):
-			depr_schedule = get_depr_schedule_from_asset_depr_schedule_of_asset(self.name, row.finance_book)
+			depr_schedule = get_depr_schedule(self.name, row.finance_book)
 
 			if not depr_schedule:
 				continue
@@ -412,7 +410,7 @@
 
 	def delete_depreciation_entries(self):
 		for row in self.get("finance_books"):
-			depr_schedule = get_depr_schedule_from_asset_depr_schedule_of_asset(self.name, row.finance_book)
+			depr_schedule = get_depr_schedule(self.name, row.finance_book)
 
 			for d in depr_schedule.get("depreciation_schedule"):
 				if d.journal_entry:
@@ -900,9 +898,7 @@
 			expected_value_after_useful_life,
 		)
 
-		current_asset_depr_schedule_doc = get_asset_depr_schedule_doc_of_asset(
-			asset.name, row.finance_book
-		)
+		current_asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset.name, row.finance_book)
 		new_asset_depr_schedule_doc = frappe.copy_doc(current_asset_depr_schedule_doc)
 
 		set_draft_asset_depr_schedule_details(new_asset_depr_schedule_doc, asset, row)
@@ -947,9 +943,7 @@
 			(row.expected_value_after_useful_life * split_qty) / asset.asset_quantity
 		)
 
-		current_asset_depr_schedule_doc = get_asset_depr_schedule_doc_of_asset(
-			asset.name, row.finance_book
-		)
+		current_asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset.name, row.finance_book)
 		new_asset_depr_schedule_doc = frappe.copy_doc(current_asset_depr_schedule_doc)
 
 		set_draft_asset_depr_schedule_details(new_asset_depr_schedule_doc, new_asset, row)
@@ -973,9 +967,7 @@
 	new_asset.set_status()
 
 	for row in new_asset.get("finance_books"):
-		depr_schedule = get_depr_schedule_from_asset_depr_schedule_of_asset(
-			new_asset.name, row.finance_book
-		)
+		depr_schedule = get_depr_schedule(new_asset.name, row.finance_book)
 		for term in depr_schedule:
 			# Update references in JV
 			if term.journal_entry:
diff --git a/erpnext/assets/doctype/asset/depreciation.py b/erpnext/assets/doctype/asset/depreciation.py
index b7d5511..514fd86 100644
--- a/erpnext/assets/doctype/asset/depreciation.py
+++ b/erpnext/assets/doctype/asset/depreciation.py
@@ -12,7 +12,7 @@
 from erpnext.accounts.doctype.journal_entry.journal_entry import make_reverse_journal_entry
 from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
 	get_asset_depr_schedule_name,
-	get_depr_schedule_from_asset_depr_schedule_of_asset,
+	get_depr_schedule,
 	get_temp_asset_depr_schedule_doc,
 	make_new_active_asset_depr_schedules_and_cancel_current_ones,
 )
@@ -300,7 +300,7 @@
 
 def reverse_depreciation_entry_made_after_disposal(asset, date):
 	for row in asset.get("finance_books"):
-		depr_schedule = get_depr_schedule_from_asset_depr_schedule_of_asset(asset, row.finance_book)
+		depr_schedule = get_depr_schedule(asset, row.finance_book)
 
 		for schedule_idx, schedule in enumerate(depr_schedule):
 			if schedule.schedule_date == date:
diff --git a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py
index 61e8ba2..71ce992 100644
--- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py
+++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py
@@ -2,6 +2,7 @@
 # For license information, please see license.txt
 
 import frappe
+from frappe import _
 from frappe.model.document import Document
 from frappe.utils import (
 	add_days,
@@ -17,7 +18,18 @@
 
 
 class AssetDepreciationSchedule(Document):
-	pass
+	def validate(self):
+		self.validate_another_asset_depr_schedule_does_not_exist()
+
+	def validate_another_asset_depr_schedule_does_not_exist(self):
+		asset_depr_schedule_name = get_asset_depr_schedule_name(self.asset, self.finance_book)
+
+		if asset_depr_schedule_name:
+			frappe.throw(
+				_("Asset Depreciation Schedule for Asset {0} and Finance Book {1} already exists.").format(
+					self.asset, self.finance_book
+				)
+			)
 
 
 def make_draft_asset_depr_schedules(asset_doc, date_of_disposal=None, date_of_return=None):
@@ -33,7 +45,7 @@
 
 def update_draft_asset_depr_schedules(asset_doc, date_of_disposal=None, date_of_return=None):
 	for row in asset_doc.get("finance_books"):
-		asset_depr_schedule_doc = get_asset_depr_schedule_doc_of_asset(asset_doc.name, row.finance_book)
+		asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset_doc.name, row.finance_book)
 
 		prepare_draft_asset_depr_schedule_data(
 			asset_depr_schedule_doc, asset_doc, row, date_of_disposal, date_of_return
@@ -67,7 +79,7 @@
 
 def convert_draft_asset_depr_schedules_into_active(asset_doc):
 	for row in asset_doc.get("finance_books"):
-		asset_depr_schedule_doc = get_asset_depr_schedule_doc_of_asset(asset_doc.name, row.finance_book)
+		asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset_doc.name, row.finance_book)
 
 		asset_depr_schedule_doc.status = "Active"
 
@@ -78,9 +90,7 @@
 	asset_doc, notes, date_of_disposal=None, date_of_return=None
 ):
 	for row in asset_doc.get("finance_books"):
-		current_asset_depr_schedule_doc = get_asset_depr_schedule_doc_of_asset(
-			asset_doc.name, row.finance_book
-		)
+		current_asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset_doc.name, row.finance_book)
 
 		new_asset_depr_schedule_doc = frappe.copy_doc(current_asset_depr_schedule_doc)
 
@@ -106,7 +116,7 @@
 
 def cancel_asset_depr_schedules(asset_doc):
 	for row in asset_doc.get("finance_books"):
-		asset_depr_schedule_doc = get_asset_depr_schedule_doc_of_asset(asset_doc.name, row.finance_book)
+		asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset_doc.name, row.finance_book)
 
 		asset_depr_schedule_doc.status = "Cancelled"
 
@@ -129,13 +139,13 @@
 
 
 @frappe.whitelist()
-def get_depr_schedule_from_asset_depr_schedule_of_asset(asset_name, finance_book):
-	asset_depr_schedule_doc = get_asset_depr_schedule_doc_of_asset(asset_name, finance_book)
+def get_depr_schedule(asset_name, finance_book):
+	asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset_name, finance_book)
 
 	return asset_depr_schedule_doc.get("depreciation_schedule")
 
 
-def get_asset_depr_schedule_doc_of_asset(asset_name, finance_book):
+def get_asset_depr_schedule_doc(asset_name, finance_book):
 	asset_depr_schedule_name = get_asset_depr_schedule_name(asset_name, finance_book)
 
 	if not asset_depr_schedule_name:
diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py
index 31fd0f6..2396df9 100644
--- a/erpnext/assets/doctype/asset_repair/asset_repair.py
+++ b/erpnext/assets/doctype/asset_repair/asset_repair.py
@@ -9,7 +9,7 @@
 from erpnext.accounts.general_ledger import make_gl_entries
 from erpnext.assets.doctype.asset.asset import get_asset_account
 from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
-	get_depr_schedule_from_asset_depr_schedule_of_asset,
+	get_depr_schedule,
 	make_new_active_asset_depr_schedules_and_cancel_current_ones,
 )
 from erpnext.controllers.accounts_controller import AccountsController
@@ -285,7 +285,7 @@
 			asset.number_of_depreciations_booked
 		)
 
-		depr_schedule = get_depr_schedule_from_asset_depr_schedule_of_asset(asset.name, row.finance_book)
+		depr_schedule = get_depr_schedule(asset.name, row.finance_book)
 
 		# the Schedule Date in the final row of the old Depreciation Schedule
 		last_schedule_date = depr_schedule[len(depr_schedule) - 1].schedule_date
@@ -318,7 +318,7 @@
 			asset.number_of_depreciations_booked
 		)
 
-		depr_schedule = get_depr_schedule_from_asset_depr_schedule_of_asset(asset.name, row.finance_book)
+		depr_schedule = get_depr_schedule(asset.name, row.finance_book)
 
 		# the Schedule Date in the final row of the modified Depreciation Schedule
 		last_schedule_date = depr_schedule[len(depr_schedule) - 1].schedule_date
