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 0fea6a5..199f73f 100644
--- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.json
+++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.json
@@ -142,7 +142,7 @@
   },
   {
    "fieldname": "finance_book_id",
-   "fieldtype": "Data",
+   "fieldtype": "Int",
    "hidden": 1,
    "label": "Finance Book Id",
    "print_hide": 1,
@@ -161,7 +161,7 @@
  "index_web_pages_for_search": 1,
  "is_submittable": 1,
  "links": [],
- "modified": "2022-12-09 15:14:20.562294",
+ "modified": "2022-12-15 13:01:02.984906",
  "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 986acc0..5639d3d 100644
--- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py
+++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py
@@ -167,7 +167,9 @@
 		if not asset_depr_schedule_doc:
 			continue
 
-		asset_depr_schedule_doc.status = "Cancelled"
+		frappe.db.set_value(
+			"Asset Depreciation Schedule", asset_depr_schedule_doc.name, "status", "Cancelled"
+		)
 
 		asset_depr_schedule_doc.cancel()
 
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 3e646b4..11064a9 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
@@ -1,5 +1,90 @@
-# import frappe
+import frappe
 
 
 def execute():
-	pass
+	assets = get_details_of_depreciable_assets()
+
+	for asset in assets:
+		finance_book_rows = get_details_of_asset_finance_books_rows(asset.name)
+
+		for fb_row in finance_book_rows:
+			asset_depr_schedule_doc = frappe.new_doc("Asset Depreciation Schedule")
+
+			asset_depr_schedule_doc.asset = asset.name
+			asset_depr_schedule_doc.finance_book = fb_row.finance_book
+			asset_depr_schedule_doc.finance_book_id = fb_row.idx
+			asset_depr_schedule_doc.opening_accumulated_depreciation = (
+				asset.opening_accumulated_depreciation
+			)
+			asset_depr_schedule_doc.depreciation_method = fb_row.depreciation_method
+			asset_depr_schedule_doc.total_number_of_depreciations = fb_row.total_number_of_depreciations
+			asset_depr_schedule_doc.frequency_of_depreciation = fb_row.frequency_of_depreciation
+			asset_depr_schedule_doc.rate_of_depreciation = fb_row.rate_of_depreciation
+			asset_depr_schedule_doc.expected_value_after_useful_life = (
+				fb_row.expected_value_after_useful_life
+			)
+			asset_depr_schedule_doc.status = "Draft"
+
+			asset_depr_schedule_doc.insert()
+
+			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()
+			elif asset.docstatus == 2:
+				asset_depr_schedule_doc.status = "Cancelled"
+				asset_depr_schedule_doc.submit()
+				asset_depr_schedule_doc.cancel()
+
+
+def get_details_of_depreciable_assets():
+	asset = frappe.qb.DocType("Asset")
+
+	records = (
+		frappe.qb.from_(asset)
+		.select(asset.name, asset.opening_accumulated_depreciation, asset.docstatus)
+		.where(asset.calculate_depreciation == 1)
+	).run(as_dict=True)
+
+	return records
+
+
+def get_details_of_asset_finance_books_rows(asset_name):
+	afb = frappe.qb.DocType("Asset Finance Book")
+
+	records = (
+		frappe.qb.from_(afb)
+		.select(
+			afb.finance_book,
+			afb.idx,
+			afb.depreciation_method,
+			afb.total_number_of_depreciations,
+			afb.frequency_of_depreciation,
+			afb.rate_of_depreciation,
+			afb.expected_value_after_useful_life,
+		)
+		.where((afb.parenttype == "Asset") & (afb.parent == asset_name))
+	).run(as_dict=True)
+
+	return records
+
+
+def update_depreciation_schedules(asset_name, asset_depr_schedule_name, fb_row_idx):
+	ds = frappe.qb.DocType("Depreciation Schedule")
+
+	depr_schedules = (
+		frappe.qb.from_(ds)
+		.select(ds.name)
+		.where((ds.parent == asset_name) & (int(ds.finance_book_id) == fb_row_idx))
+	).run(as_dict=True)
+
+	for idx, depr_schedule in enumerate(depr_schedules, start=1):
+		(
+			frappe.qb.update(ds)
+			.set(ds.idx, idx)
+			.set(ds.parent, asset_depr_schedule_name)
+			.set(ds.parentfield, "depreciation_schedule")
+			.set(ds.parenttype, "Asset Depreciation Schedule")
+			.where(ds.parent == depr_schedule.name)
+		).run()
