chore: handle some error cases and add empty patch file
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 0d3241b..986acc0 100644
--- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py
+++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py
@@ -113,9 +113,9 @@
 	for row in asset_doc.get("finance_books"):
 		asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset_doc.name, row.finance_book)
 
-		asset_depr_schedule_doc.status = "Active"
-
-		asset_depr_schedule_doc.submit()
+		if asset_depr_schedule_doc.status == "Draft":
+			asset_depr_schedule_doc.status = "Active"
+			asset_depr_schedule_doc.submit()
 
 
 def make_new_active_asset_depr_schedules_and_cancel_current_ones(
@@ -124,6 +124,13 @@
 	for row in asset_doc.get("finance_books"):
 		current_asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset_doc.name, row.finance_book)
 
+		if not current_asset_depr_schedule_doc:
+			frappe.throw(
+				_("Asset Depreciation Schedule not found for Asset {0} and Finance Book {1}").format(
+					asset_doc.name, row.finance_book
+				)
+			)
+
 		new_asset_depr_schedule_doc = frappe.copy_doc(current_asset_depr_schedule_doc)
 
 		make_depr_schedule(new_asset_depr_schedule_doc, asset_doc, row, date_of_disposal)
@@ -157,6 +164,9 @@
 	for row in asset_doc.get("finance_books"):
 		asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset_doc.name, row.finance_book)
 
+		if not asset_depr_schedule_doc:
+			continue
+
 		asset_depr_schedule_doc.status = "Cancelled"
 
 		asset_depr_schedule_doc.cancel()
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 0aad1d3..622fda4 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -268,6 +268,7 @@
 erpnext.patches.v13_0.reset_corrupt_defaults
 erpnext.patches.v13_0.create_accounting_dimensions_for_asset_repair
 erpnext.patches.v15_0.delete_taxjar_doctypes
+erpnext.patches.v15_0.create_asset_depreciation_schedules_from_assets
 
 [post_model_sync]
 execute:frappe.delete_doc_if_exists('Workspace', 'ERPNext Integrations Settings')
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
new file mode 100644
index 0000000..3e646b4
--- /dev/null
+++ b/erpnext/patches/v15_0/create_asset_depreciation_schedules_from_assets.py
@@ -0,0 +1,5 @@
+# import frappe
+
+
+def execute():
+	pass