chore: more refactoring
diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index b9463bc..d69777a 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_cancelled_depr_schedule,
+	get_draft_or_active_depr_schedule,
 )
 from erpnext.controllers.accounts_controller import AccountsController
 
@@ -287,7 +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_cancelled_depr_schedule(asset.name, row.finance_book)
+					depr_schedule = get_draft_or_active_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_depreciation_schedule/asset_depreciation_schedule.json b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.json
index 14e849b..f6f594c 100644
--- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.json
+++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.json
@@ -157,10 +157,11 @@
    "read_only": 1
   }
  ],
+ "in_create": 1,
  "index_web_pages_for_search": 1,
  "is_submittable": 1,
  "links": [],
- "modified": "2022-12-15 16:28:44.585745",
+ "modified": "2022-12-26 20:32:43.342271",
  "modified_by": "Administrator",
  "module": "Assets",
  "name": "Asset Depreciation Schedule",
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 47965cf..d004bdb 100644
--- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py
+++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py
@@ -42,6 +42,12 @@
 				)
 			)
 
+	def on_submit(self):
+		self.db_set("status", "Active")
+
+	def on_cancel(self):
+		self.db_set("status", "Cancelled")
+
 
 def make_draft_asset_depr_schedules_if_not_present(asset_doc):
 	for row in asset_doc.get("finance_books"):
@@ -121,6 +127,18 @@
 			asset_depr_schedule_doc.submit()
 
 
+def cancel_asset_depr_schedules(asset_doc):
+	for row in asset_doc.get("finance_books"):
+		asset_depr_schedule_doc = get_draft_or_active_asset_depr_schedule_doc(
+			asset_doc.name, row.finance_book
+		)
+
+		if not asset_depr_schedule_doc:
+			continue
+
+		asset_depr_schedule_doc.cancel()
+
+
 def make_new_active_asset_depr_schedules_and_cancel_current_ones(
 	asset_doc, notes, date_of_disposal=None, date_of_return=None
 ):
@@ -165,18 +183,6 @@
 	return asset_depr_schedule_doc
 
 
-def cancel_asset_depr_schedules(asset_doc):
-	for row in asset_doc.get("finance_books"):
-		asset_depr_schedule_doc = get_draft_or_active_asset_depr_schedule_doc(
-			asset_doc.name, row.finance_book
-		)
-
-		if not asset_depr_schedule_doc:
-			continue
-
-		asset_depr_schedule_doc.cancel()
-
-
 def get_draft_or_active_asset_depr_schedule_name(asset_name, finance_book=None):
 	finance_book_filter = ["finance_book", "is", "not set"]
 	if finance_book:
@@ -197,15 +203,23 @@
 	if finance_book:
 		finance_book_filter = ["finance_book", "=", finance_book]
 
-	return frappe.db.get_value(
+	cancelled_asset_depr_schedule_names = frappe.db.get_all(
 		doctype="Asset Depreciation Schedule",
 		filters=[
 			["asset", "=", asset_name],
 			finance_book_filter,
-			["docstatus", "=", "2"],
+			["status", "=", "Cancelled"],
 		],
+		order_by="creation desc",
+		limit=1,
+		pluck="name",
 	)
 
+	if cancelled_asset_depr_schedule_names:
+		return cancelled_asset_depr_schedule_names[0]
+
+	return
+
 
 @frappe.whitelist()
 def get_draft_or_active_depr_schedule(asset_name, finance_book=None):
diff --git a/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py b/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py
index 3ead832..90ecfec 100644
--- a/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py
+++ b/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py
@@ -167,7 +167,6 @@
 				if not asset_data.journal_entry:
 					asset_data.db_update()
 
-			new_asset_depr_schedule_doc.status = "Active"
 			new_asset_depr_schedule_doc.submit()
 
 
diff --git a/erpnext/patches/v15_0/create_asset_depreciation_schedules_from_assets.py b/erpnext/patches/v15_0/create_asset_depreciation_schedules_from_assets.py
index 14d3689..8dcbb2a 100644
--- a/erpnext/patches/v15_0/create_asset_depreciation_schedules_from_assets.py
+++ b/erpnext/patches/v15_0/create_asset_depreciation_schedules_from_assets.py
@@ -30,7 +30,6 @@
 			update_depreciation_schedules(asset.name, asset_depr_schedule_doc.name, fb_row.idx)
 
 			if asset.docstatus == 1:
-				asset_depr_schedule_doc.status = "Active"
 				asset_depr_schedule_doc.submit()