From 1800ce27805db6b44b94955007e9855a7e072a8a Mon Sep 17 00:00:00 2001 From: GangaManoj Date: Fri, 14 Jan 2022 15:33:16 +0530 Subject: [PATCH 1/2] fix: Only allow posting of Depreciation Entries if the Asset is in the Submitted or Partially Depreciated state --- erpnext/assets/doctype/asset/depreciation.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/erpnext/assets/doctype/asset/depreciation.py b/erpnext/assets/doctype/asset/depreciation.py index 251fe3fa493..dd2c531d107 100644 --- a/erpnext/assets/doctype/asset/depreciation.py +++ b/erpnext/assets/doctype/asset/depreciation.py @@ -34,6 +34,8 @@ def make_depreciation_entry(asset_name, date=None): date = today() asset = frappe.get_doc("Asset", asset_name) + validate_asset(asset) + fixed_asset_account, accumulated_depreciation_account, depreciation_expense_account = \ get_depreciation_accounts(asset) @@ -101,6 +103,10 @@ def make_depreciation_entry(asset_name, date=None): return asset +def validate_asset(asset): + if asset.status not in ['Submitted', 'Partially Depreciated']: + frappe.throw(_("Cannot depreciate {0} Asset").format(asset.status)) + def get_depreciation_accounts(asset): fixed_asset_account = accumulated_depreciation_account = depreciation_expense_account = None From 73243c8ac315e11d567a6051d5549de279d9d68b Mon Sep 17 00:00:00 2001 From: GangaManoj Date: Fri, 14 Jan 2022 17:40:59 +0530 Subject: [PATCH 2/2] fix: Hide Make Depreciation Entry if the Asset is not in the Submitted or Partially Depreciated state --- erpnext/assets/doctype/asset/asset.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js index 93781d9e0ef..6b2109bf7c9 100644 --- a/erpnext/assets/doctype/asset/asset.js +++ b/erpnext/assets/doctype/asset/asset.js @@ -78,6 +78,7 @@ frappe.ui.form.on('Asset', { frappe.ui.form.trigger("Asset", "is_existing_asset"); frm.toggle_display("next_depreciation_date", frm.doc.docstatus < 1); frm.events.make_schedules_editable(frm); + frm.trigger("toggle_make_depreciation_entry"); if (frm.doc.docstatus==1) { if (in_list(["Submitted", "Partially Depreciated", "Fully Depreciated"], frm.doc.status)) { @@ -141,6 +142,18 @@ frappe.ui.form.on('Asset', { } }, + toggle_make_depreciation_entry: function(frm) { + if (frm.doc.calculate_depreciation){ + if (in_list(["Submitted", "Partially Depreciated"], frm.doc.status)){ + frm.fields_dict['schedules'].grid.set_column_disp('make_depreciation_entry', true); + } else { + frm.fields_dict['schedules'].grid.set_column_disp('make_depreciation_entry', false); + } + + frm.refresh_field('schedules'); + } + }, + toggle_reference_doc: function(frm) { if (frm.doc.purchase_receipt && frm.doc.purchase_invoice && frm.doc.docstatus === 1) { frm.set_df_property('purchase_invoice', 'read_only', 1);