diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js index 290e53ff852..02e66682f10 100644 --- a/erpnext/assets/doctype/asset/asset.js +++ b/erpnext/assets/doctype/asset/asset.js @@ -546,15 +546,22 @@ frappe.ui.form.on("Asset", { }, set_finance_book: function (frm) { + let item_code = frm.doc.item_code; + let net_purchase_amount = frm.doc.net_purchase_amount; + frappe.call({ method: "erpnext.assets.doctype.asset.asset.get_item_details", args: { - item_code: frm.doc.item_code, + item_code: item_code, asset_category: frm.doc.asset_category, - net_purchase_amount: frm.doc.net_purchase_amount, + net_purchase_amount: net_purchase_amount, }, callback: function (r, rt) { - if (r.message) { + if ( + r.message && + frm.doc.item_code === item_code && + frm.doc.net_purchase_amount === net_purchase_amount + ) { frm.set_value("finance_books", r.message); } }, @@ -752,10 +759,12 @@ frappe.ui.form.on("Asset", { }, net_purchase_amount: function (frm) { - if (frm.doc.finance_books) { + if (frm.doc.finance_books && frm.doc.finance_books.length) { frm.doc.finance_books.forEach((d) => { frm.events.set_depreciation_rate(frm, d); }); + } else if (frm.doc.item_code && frm.doc.calculate_depreciation && frm.doc.net_purchase_amount) { + frm.trigger("set_finance_book"); } },