From 31592b8f3ac16298d7c5f58c9d83bc764a3ea51b Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 23 Jan 2024 12:42:54 +0530 Subject: [PATCH 1/2] fix: cancellation of asset/asset capitalization --- erpnext/assets/doctype/asset/asset.py | 13 +++++-------- erpnext/assets/doctype/asset/depreciation.py | 2 ++ .../asset_capitalization/asset_capitalization.py | 1 + 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 73572499f2..67018106a7 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -519,14 +519,11 @@ class Asset(AccountsController): movement.cancel() def cancel_capitalization(self): - asset_capitalization = frappe.db.get_value( - "Asset Capitalization", - {"target_asset": self.name, "docstatus": 1, "entry_type": "Capitalization"}, - ) - - if asset_capitalization: - asset_capitalization = frappe.get_doc("Asset Capitalization", asset_capitalization) - asset_capitalization.cancel() + if self.capitalized_in: + self.capitalized_in = None + asset_capitalization = frappe.get_doc("Asset Capitalization", self.capitalized_in) + if asset_capitalization.docstatus == 1: + asset_capitalization.cancel() def delete_depreciation_entries(self): if self.calculate_depreciation: diff --git a/erpnext/assets/doctype/asset/depreciation.py b/erpnext/assets/doctype/asset/depreciation.py index a93af94664..df4593bb69 100644 --- a/erpnext/assets/doctype/asset/depreciation.py +++ b/erpnext/assets/doctype/asset/depreciation.py @@ -561,6 +561,8 @@ def modify_depreciation_schedule_for_asset_repairs(asset, notes): def reverse_depreciation_entry_made_after_disposal(asset, date): for row in asset.get("finance_books"): asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset.name, "Active", row.finance_book) + if not asset_depr_schedule_doc: + continue for schedule_idx, schedule in enumerate(asset_depr_schedule_doc.get("depreciation_schedule")): if schedule.schedule_date == date: diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py index cad74df51e..5e251a5658 100644 --- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py +++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py @@ -146,6 +146,7 @@ class AssetCapitalization(StockController): def cancel_target_asset(self): if self.entry_type == "Capitalization" and self.target_asset: asset_doc = frappe.get_doc("Asset", self.target_asset) + frappe.db.set_value("Asset", self.target_asset, "capitalized_in", None) if asset_doc.docstatus == 1: asset_doc.cancel() From 1a686cb66d92d595a64ed1dd41a96f579e0c6e8a Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 23 Jan 2024 12:46:15 +0530 Subject: [PATCH 2/2] fix: Use db_set to set a value in on_cancel --- erpnext/assets/doctype/asset/asset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 67018106a7..259857f554 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -520,7 +520,7 @@ class Asset(AccountsController): def cancel_capitalization(self): if self.capitalized_in: - self.capitalized_in = None + self.db_set("capitalized_in", None) asset_capitalization = frappe.get_doc("Asset Capitalization", self.capitalized_in) if asset_capitalization.docstatus == 1: asset_capitalization.cancel()