From 73b038084b43a02f614f8148eb2353f4cf78c4fa Mon Sep 17 00:00:00 2001 From: Navin-S-R Date: Mon, 12 Jan 2026 18:18:22 +0530 Subject: [PATCH] fix: prevent manual cancellation of the linked Revaluation Journal Entry --- .../doctype/journal_entry/journal_entry.py | 18 ++++++++++++++++++ .../asset_value_adjustment.py | 1 + 2 files changed, 19 insertions(+) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 5b877e84283..1c10208378a 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -184,6 +184,9 @@ class JournalEntry(AccountsController): else: return self._submit() + def before_cancel(self): + pass + def cancel(self): if len(self.accounts) > 100: queue_submission(self, "_cancel") @@ -305,6 +308,7 @@ class JournalEntry(AccountsController): ) self.make_gl_entries(1) JournalTaxWithholding(self).on_cancel() + self.has_asset_adjustment_entry() self.unlink_advance_entry_reference() self.unlink_asset_reference() self.unlink_inter_company_jv() @@ -554,6 +558,20 @@ class JournalEntry(AccountsController): ) frappe.db.set_value("Journal Entry", self.name, "inter_company_journal_entry_reference", "") + def has_asset_adjustment_entry(self): + if self.flags.get("via_asset_value_adjustment"): + return + + asset_value_adjustment = frappe.db.get_value( + "Asset Value Adjustment", {"docstatus": 1, "journal_entry": self.name}, "name" + ) + if asset_value_adjustment: + frappe.throw( + _( + "Cannot cancel this document as it is linked with the submitted Asset Value Adjustment {0}. Please cancel the Asset Value Adjustment to continue." + ).format(frappe.utils.get_link_to_form("Asset Value Adjustment", asset_value_adjustment)) + ) + def unlink_asset_adjustment_entry(self): AssetValueAdjustment = frappe.qb.DocType("Asset Value Adjustment") ( diff --git a/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py b/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py index 3b0a8a6459b..c033cda05b5 100644 --- a/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py +++ b/erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py @@ -175,6 +175,7 @@ class AssetValueAdjustment(Document): if revaluation_entry.docstatus == 1: # Ignore permissions to match Journal Entry submission behavior revaluation_entry.flags.ignore_permissions = True + revaluation_entry.flags.via_asset_value_adjustment = True revaluation_entry.cancel() def update_asset(self):