chore: refactor some functions to use new depr schedule
diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index 85b309f..b8f368a 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -30,6 +30,7 @@
 )
 from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
 	make_draft_asset_depreciation_schedules,
+	get_asset_depreciation_schedule_name,
 	convert_draft_asset_depreciation_schedules_into_active,
 	update_draft_asset_depreciation_schedules,
 )
@@ -48,8 +49,7 @@
 			self.prepare_depreciation_data()
 			update_draft_asset_depreciation_schedules(self)
 		self.validate_gross_and_purchase_amount()
-		if self.get("schedules"):
-			self.validate_expected_value_after_useful_life()
+		self.validate_expected_value_after_useful_life()
 
 		self.status = self.get_status()
 
@@ -244,57 +244,17 @@
 
 		return value_after_depreciation
 
-	# depreciation schedules need to be cleared before modification due to increase in asset life/asset sales
-	# JE: Journal Entry, FB: Finance Book
-	def clear_depreciation_schedule(self):
-		start = []
-		num_of_depreciations_completed = 0
-		depr_schedule = []
-
-		for schedule in self.get("schedules"):
-			# to update start when there are JEs linked with all the schedule rows corresponding to an FB
-			if len(start) == (int(schedule.finance_book_id) - 2):
-				start.append(num_of_depreciations_completed)
-				num_of_depreciations_completed = 0
-
-			# to ensure that start will only be updated once for each FB
-			if len(start) == (int(schedule.finance_book_id) - 1):
-				if schedule.journal_entry:
-					num_of_depreciations_completed += 1
-					depr_schedule.append(schedule)
-				else:
-					start.append(num_of_depreciations_completed)
-					num_of_depreciations_completed = 0
-
-		# to update start when all the schedule rows corresponding to the last FB are linked with JEs
-		if len(start) == (len(self.finance_books) - 1):
-			start.append(num_of_depreciations_completed)
-
-		# when the Depreciation Schedule is being created for the first time
-		if start == []:
-			start = [0] * len(self.finance_books)
-		else:
-			self.schedules = depr_schedule
-
-		return start
-
 	def get_from_date(self, finance_book):
-		if not self.get("schedules"):
+		asset_depr_schedule_name = get_asset_depreciation_schedule_name(
+			self.name, finance_book
+		)
+
+		if not asset_depr_schedule_name:
 			return self.available_for_use_date
 
-		if len(self.finance_books) == 1:
-			return self.schedules[-1].schedule_date
+		asset_depr_schedule = frappe.get_doc("Asset Depreciation Schedule", asset_depr_schedule_name)
 
-		from_date = ""
-		for schedule in self.get("schedules"):
-			if schedule.finance_book == finance_book:
-				from_date = schedule.schedule_date
-
-		if from_date:
-			return from_date
-
-		# since depr for available_for_use_date is not yet booked
-		return add_days(self.available_for_use_date, -1)
+		return asset_depr_schedule.get("depreciation_schedule")[-1].schedule_date
 
 	# if it returns True, depreciation_amount will not be equal for the first and last rows
 	def check_is_pro_rata(self, row):
@@ -398,26 +358,29 @@
 		return depreciation_amount_for_last_row
 
 	def get_depreciation_amount_for_first_row(self, finance_book):
-		if self.has_only_one_finance_book():
-			return self.schedules[0].depreciation_amount
-		else:
-			for schedule in self.schedules:
-				if schedule.finance_book == finance_book:
-					return schedule.depreciation_amount
+		asset_depr_schedule_name = get_asset_depreciation_schedule_name(self.name, finance_book)
 
-	def has_only_one_finance_book(self):
-		if len(self.finance_books) == 1:
-			return True
+		asset_depr_schedule = frappe.get_doc("Asset Depreciation Schedule", asset_depr_schedule_name)
+
+		return asset_depr_schedule.get("depreciation_schedule")[0].depreciation_amount
 
 	def get_value_after_depreciation(self, idx):
 		return flt(self.get("finance_books")[cint(idx) - 1].value_after_depreciation)
 
 	def validate_expected_value_after_useful_life(self):
 		for row in self.get("finance_books"):
+			asset_depr_schedule_name = get_asset_depreciation_schedule_name(
+				self.name, row.finance_book
+			)
+
+			if not asset_depr_schedule_name:
+				return
+
+			asset_depr_schedule = frappe.get_doc("Asset Depreciation Schedule", asset_depr_schedule_name)
+
 			accumulated_depreciation_after_full_schedule = [
 				d.accumulated_depreciation_amount
-				for d in self.get("schedules")
-				if cint(d.finance_book_id) == row.idx
+				for d in asset_depr_schedule.get("depreciation_schedule")
 			]
 
 			if accumulated_depreciation_after_full_schedule:
@@ -466,10 +429,20 @@
 			movement.cancel()
 
 	def delete_depreciation_entries(self):
-		for d in self.get("schedules"):
-			if d.journal_entry:
-				frappe.get_doc("Journal Entry", d.journal_entry).cancel()
-				d.db_set("journal_entry", None)
+		for row in self.get("finance_books"):
+			asset_depr_schedule_name = get_asset_depreciation_schedule_name(
+				self.name, row.finance_book
+			)
+
+			if not asset_depr_schedule_name:
+				return
+
+			asset_depr_schedule = frappe.get_doc("Asset Depreciation Schedule", asset_depr_schedule_name)
+
+			for d in asset_depr_schedule.get("depreciation_schedule"):
+				if d.journal_entry:
+					frappe.get_doc("Journal Entry", d.journal_entry).cancel()
+					d.db_set("journal_entry", None)
 
 		self.db_set(
 			"value_after_depreciation",
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 f04a9fd..ae3707b 100644
--- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py
+++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py
@@ -29,7 +29,7 @@
 
 def update_draft_asset_depreciation_schedules(asset):
 	for row in asset.get("finance_books"):
-		asset_depr_schedule_name = get_draft_asset_depreciation_schedule_name(
+		asset_depr_schedule_name = get_asset_depreciation_schedule_name(
 			asset.name, row.finance_book
 		)
 
@@ -62,7 +62,7 @@
 
 def convert_draft_asset_depreciation_schedules_into_active(asset):
 	for row in asset.get("finance_books"):
-		asset_depr_schedule_name = get_draft_asset_depreciation_schedule_name(
+		asset_depr_schedule_name = get_asset_depreciation_schedule_name(
 			asset.name, row.finance_book
 		)
 
@@ -80,7 +80,7 @@
 	asset, date_of_disposal=None, date_of_return=None
 ):
 	for row in asset.get("finance_books"):
-		old_asset_depr_schedule_name = get_active_asset_depreciation_schedule(
+		old_asset_depr_schedule_name = get_asset_depreciation_schedule_name(
 			asset.name, row.finance_book
 		)
 
@@ -112,17 +112,14 @@
 	_make_depreciation_schedule(asset_depr_schedule, asset, row, start, date_of_disposal)
 
 
-def get_draft_asset_depreciation_schedule_name(asset_name, finance_book):
+def get_asset_depreciation_schedule_name(asset_name, finance_book):
 	return frappe.db.get_value(
-		"Asset Depreciation Schedule",
-		{"asset": asset_name, "finance_book": finance_book, "status": "Draft", "docstatus": 0},
-	)
-
-
-def get_active_asset_depreciation_schedule(asset_name, finance_book):
-	return frappe.db.get_value(
-		"Asset Depreciation Schedule",
-		{"asset": asset_name, "finance_book": finance_book, "status": "Active", "docstatus": 1},
+		doctype="Asset Depreciation Schedule",
+		filters=[
+			["asset", "=", asset_name],
+			["finance_book", "=", finance_book],
+			["docstatus", "<", 2],
+		]
 	)