mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-01 11:19:09 +00:00
Merge pull request #51717 from frappe/mergify/bp/version-15-hotfix/pr-51666
fix(asset value adjustment): skip cancelling revaluation journal entry if already cancelled (backport #51666)
This commit is contained in:
@@ -177,6 +177,9 @@ class JournalEntry(AccountsController):
|
|||||||
else:
|
else:
|
||||||
return self._submit()
|
return self._submit()
|
||||||
|
|
||||||
|
def before_cancel(self):
|
||||||
|
self.has_asset_adjustment_entry()
|
||||||
|
|
||||||
def cancel(self):
|
def cancel(self):
|
||||||
if len(self.accounts) > 100:
|
if len(self.accounts) > 100:
|
||||||
queue_submission(self, "_cancel")
|
queue_submission(self, "_cancel")
|
||||||
@@ -447,12 +450,27 @@ class JournalEntry(AccountsController):
|
|||||||
)
|
)
|
||||||
frappe.db.set_value("Journal Entry", self.name, "inter_company_journal_entry_reference", "")
|
frappe.db.set_value("Journal Entry", self.name, "inter_company_journal_entry_reference", "")
|
||||||
|
|
||||||
def unlink_asset_adjustment_entry(self):
|
def has_asset_adjustment_entry(self):
|
||||||
frappe.db.sql(
|
if self.flags.get("via_asset_value_adjustment"):
|
||||||
""" update `tabAsset Value Adjustment`
|
return
|
||||||
set journal_entry = null where journal_entry = %s""",
|
|
||||||
self.name,
|
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 <b>{0}</b>. 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")
|
||||||
|
(
|
||||||
|
frappe.qb.update(AssetValueAdjustment)
|
||||||
|
.set(AssetValueAdjustment.journal_entry, None)
|
||||||
|
.where(AssetValueAdjustment.journal_entry == self.name)
|
||||||
|
).run()
|
||||||
|
|
||||||
def validate_party(self):
|
def validate_party(self):
|
||||||
for d in self.get("accounts"):
|
for d in self.get("accounts"):
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ class AssetValueAdjustment(Document):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def on_cancel(self):
|
def on_cancel(self):
|
||||||
frappe.get_doc("Journal Entry", self.journal_entry).cancel()
|
self.cancel_asset_revaluation_entry()
|
||||||
self.update_asset()
|
self.update_asset()
|
||||||
add_asset_activity(
|
add_asset_activity(
|
||||||
self.asset,
|
self.asset,
|
||||||
@@ -159,6 +159,16 @@ class AssetValueAdjustment(Document):
|
|||||||
|
|
||||||
self.db_set("journal_entry", je.name)
|
self.db_set("journal_entry", je.name)
|
||||||
|
|
||||||
|
def cancel_asset_revaluation_entry(self):
|
||||||
|
if not self.journal_entry:
|
||||||
|
return
|
||||||
|
|
||||||
|
revaluation_entry = frappe.get_doc("Journal Entry", self.journal_entry)
|
||||||
|
if revaluation_entry.docstatus == 1:
|
||||||
|
revaluation_entry.flags.ignore_permissions = True
|
||||||
|
revaluation_entry.flags.via_asset_value_adjustment = True
|
||||||
|
revaluation_entry.cancel()
|
||||||
|
|
||||||
def update_asset(self, asset_value=None):
|
def update_asset(self, asset_value=None):
|
||||||
difference_amount = self.difference_amount if self.docstatus == 1 else -1 * self.difference_amount
|
difference_amount = self.difference_amount if self.docstatus == 1 else -1 * self.difference_amount
|
||||||
asset = self.update_asset_value_after_depreciation(difference_amount)
|
asset = self.update_asset_value_after_depreciation(difference_amount)
|
||||||
|
|||||||
Reference in New Issue
Block a user