fix: Handling circular linking while cancelling asset capitalization

This commit is contained in:
Nabin Hait
2024-02-08 15:47:14 +05:30
parent ae4c90766a
commit f2d094d1ab
4 changed files with 8 additions and 3 deletions

View File

@@ -322,7 +322,7 @@ frappe.ui.form.on('Asset', {
}, },
make_schedules_editable: function(frm) { make_schedules_editable: function(frm) {
if (frm.doc.finance_books.length) { if (frm.doc.finance_books && frm.doc.finance_books.length) {
var is_manual_hence_editable = frm.doc.finance_books.filter(d => d.depreciation_method == "Manual").length > 0 var is_manual_hence_editable = frm.doc.finance_books.filter(d => d.depreciation_method == "Manual").length > 0
? true : false; ? true : false;
var is_shift_hence_editable = frm.doc.finance_books.filter(d => d.shift_based).length > 0 var is_shift_hence_editable = frm.doc.finance_books.filter(d => d.shift_based).length > 0

View File

@@ -508,7 +508,7 @@ def modify_depreciation_schedule_for_asset_repairs(asset):
def reverse_depreciation_entry_made_after_disposal(asset, date): def reverse_depreciation_entry_made_after_disposal(asset, date):
if not asset.calculate_depreciation: if not asset.calculate_depreciation or not asset.get("schedules"):
return return
row = -1 row = -1

View File

@@ -7,6 +7,7 @@ frappe.provide("erpnext.assets");
erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.stock.StockController { erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.stock.StockController {
setup() { setup() {
this.setup_posting_date_time_check(); this.setup_posting_date_time_check();
this.frm.ignore_doctypes_on_cancel_all = ["Asset Movement"];
} }
onload() { onload() {

View File

@@ -77,6 +77,7 @@ class AssetCapitalization(StockController):
"Stock Ledger Entry", "Stock Ledger Entry",
"Repost Item Valuation", "Repost Item Valuation",
"Asset", "Asset",
"Asset Movement"
) )
self.cancel_target_asset() self.cancel_target_asset()
self.update_stock_ledger() self.update_stock_ledger()
@@ -86,8 +87,11 @@ class AssetCapitalization(StockController):
def cancel_target_asset(self): def cancel_target_asset(self):
if self.entry_type == "Capitalization" and self.target_asset: if self.entry_type == "Capitalization" and self.target_asset:
asset_doc = frappe.get_doc("Asset", self.target_asset) asset_doc = frappe.get_doc("Asset", self.target_asset)
asset_doc.db_set("capitalized_in", None)
if asset_doc.docstatus == 1: if asset_doc.docstatus == 1:
asset_doc.cancel() asset_doc.cancel()
elif asset_doc.docstatus == 0:
asset_doc.delete()
def set_title(self): def set_title(self):
self.title = self.target_asset_name or self.target_item_name or self.target_item_code self.title = self.target_asset_name or self.target_item_name or self.target_item_code