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 0d3241b7608..986acc09d4d 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 @@ def convert_draft_asset_depr_schedules_into_active(asset_doc): 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 @@ def make_new_active_asset_depr_schedules_and_cancel_current_ones( 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 @@ def cancel_asset_depr_schedules(asset_doc): 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 0aad1d34e5f..622fda42d80 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -268,6 +268,7 @@ erpnext.patches.v13_0.show_hr_payroll_deprecation_warning 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 00000000000..3e646b487f5 --- /dev/null +++ b/erpnext/patches/v15_0/create_asset_depreciation_schedules_from_assets.py @@ -0,0 +1,5 @@ +# import frappe + + +def execute(): + pass