chore: add convert_draft_asset_depreciation_schedules_into_active and fix some bugs
diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index f55dced..5fe7568 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -31,6 +31,7 @@
 from erpnext.assets.doctype.asset_depreciation_schedule.asset_depreciation_schedule import (
 	make_draft_asset_depreciation_schedules,
 	modify_draft_asset_depreciation_schedules,
+	convert_draft_asset_depreciation_schedules_into_active,
 )
 from erpnext.assets.doctype.asset_category.asset_category import get_asset_category_account
 from erpnext.controllers.accounts_controller import AccountsController
@@ -58,6 +59,7 @@
 		self.make_asset_movement()
 		if not self.booked_fixed_asset and self.validate_make_gl_entry():
 			self.make_gl_entries()
+		convert_draft_asset_depreciation_schedules_into_active(self)
 
 	def on_cancel(self):
 		self.validate_cancellation()
@@ -407,45 +409,6 @@
 		if len(self.finance_books) == 1:
 			return True
 
-	def set_accumulated_depreciation(
-		self, date_of_sale=None, date_of_return=None, ignore_booked_entry=False
-	):
-		straight_line_idx = [
-			d.idx for d in self.get("schedules") if d.depreciation_method == "Straight Line"
-		]
-		finance_books = []
-
-		for i, d in enumerate(self.get("schedules")):
-			if ignore_booked_entry and d.journal_entry:
-				continue
-
-			if int(d.finance_book_id) not in finance_books:
-				accumulated_depreciation = flt(self.opening_accumulated_depreciation)
-				value_after_depreciation = flt(self.get_value_after_depreciation(d.finance_book_id))
-				finance_books.append(int(d.finance_book_id))
-
-			depreciation_amount = flt(d.depreciation_amount, d.precision("depreciation_amount"))
-			value_after_depreciation -= flt(depreciation_amount)
-
-			# for the last row, if depreciation method = Straight Line
-			if (
-				straight_line_idx
-				and i == max(straight_line_idx) - 1
-				and not date_of_sale
-				and not date_of_return
-			):
-				book = self.get("finance_books")[cint(d.finance_book_id) - 1]
-				depreciation_amount += flt(
-					value_after_depreciation - flt(book.expected_value_after_useful_life),
-					d.precision("depreciation_amount"),
-				)
-
-			d.depreciation_amount = depreciation_amount
-			accumulated_depreciation += d.depreciation_amount
-			d.accumulated_depreciation_amount = flt(
-				accumulated_depreciation, d.precision("accumulated_depreciation_amount")
-			)
-
 	def get_value_after_depreciation(self, idx):
 		return flt(self.get("finance_books")[cint(idx) - 1].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 1a545dd..27920e3 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,9 @@
 
 def modify_draft_asset_depreciation_schedules(asset):
 	for row in asset.get("finance_books"):
-		asset_depr_schedule_name = get_draft_asset_depreciation_schedule_name(asset.name, row)
+		asset_depr_schedule_name = get_draft_asset_depreciation_schedule_name(
+			asset.name, row.finance_book
+		)
 
 		if not asset_depr_schedule_name:
 			return
@@ -57,11 +59,29 @@
 	asset_depr_schedule.status = "Draft"
 
 
+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.name, row.finance_book
+		)
+
+		if not asset_depr_schedule_name:
+			return
+
+		asset_depr_schedule = frappe.get_doc("Asset Depreciation Schedule", asset_depr_schedule_name)
+
+		asset_depr_schedule.status = "Active"
+
+		asset_depr_schedule.submit()
+
+
 def make_new_active_asset_depreciation_schedules_from_existing(
 	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(asset.name, row)
+		old_asset_depr_schedule_name = get_active_asset_depreciation_schedule(
+			asset.name, row.finance_book
+		)
 
 		if not old_asset_depr_schedule_name:
 			return
@@ -79,7 +99,7 @@
 		asset_depr_schedule.save()
 
 
-def make_depreciation_schedule(asset_depr_schedule, asset, row, date_of_disposal):
+def make_depreciation_schedule(asset_depr_schedule, asset, row, date_of_disposal=None):
 	if row.depreciation_method != "Manual" and not asset_depr_schedule.get("depreciation_schedule"):
 		asset_depr_schedule.depreciation_schedule = []
 
@@ -293,7 +313,12 @@
 
 
 def set_accumulated_depreciation(
-	asset_depr_schedule, asset, row, date_of_disposal, date_of_return, ignore_booked_entry=False
+	asset_depr_schedule,
+	asset,
+	row,
+	date_of_disposal=None,
+	date_of_return=None,
+	ignore_booked_entry=False
 ):
 	straight_line_idx = [
 		d.idx for d in asset_depr_schedule.get("depreciation_schedule")