chore: better err msg on cancelling JE for asset scrap [dev] (#35850)

chore: better err msg on cancelling JE for asset scrap
This commit is contained in:
Anand Baburajan 2023-06-22 22:32:06 +05:30 committed by GitHub
parent f4f8df6cfe
commit f37484c6fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 5 deletions

View File

@ -8,7 +8,7 @@ frappe.provide("erpnext.journal_entry");
frappe.ui.form.on("Journal Entry", { frappe.ui.form.on("Journal Entry", {
setup: function(frm) { setup: function(frm) {
frm.add_fetch("bank_account", "account", "account"); frm.add_fetch("bank_account", "account", "account");
frm.ignore_doctypes_on_cancel_all = ['Sales Invoice', 'Purchase Invoice', 'Journal Entry', "Repost Payment Ledger", 'Asset Depreciation Schedule']; frm.ignore_doctypes_on_cancel_all = ['Sales Invoice', 'Purchase Invoice', 'Journal Entry', "Repost Payment Ledger", 'Asset', 'Asset Movement', 'Asset Depreciation Schedule'];
}, },
refresh: function(frm) { refresh: function(frm) {

View File

@ -326,12 +326,10 @@ class JournalEntry(AccountsController):
d.db_update() d.db_update()
def unlink_asset_reference(self): def unlink_asset_reference(self):
if self.voucher_type != "Depreciation Entry":
return
for d in self.get("accounts"): for d in self.get("accounts"):
if ( if (
d.reference_type == "Asset" self.voucher_type == "Depreciation Entry"
and d.reference_type == "Asset"
and d.reference_name and d.reference_name
and d.account_type == "Depreciation" and d.account_type == "Depreciation"
and d.debit and d.debit
@ -370,6 +368,15 @@ class JournalEntry(AccountsController):
else: else:
asset.db_set("value_after_depreciation", asset.value_after_depreciation + d.debit) asset.db_set("value_after_depreciation", asset.value_after_depreciation + d.debit)
asset.set_status() asset.set_status()
elif self.voucher_type == "Journal Entry" and d.reference_type == "Asset" and d.reference_name:
journal_entry_for_scrap = frappe.db.get_value(
"Asset", d.reference_name, "journal_entry_for_scrap"
)
if journal_entry_for_scrap == self.name:
frappe.throw(
_("Journal Entry for Asset scrapping cannot be cancelled. Please restore the Asset.")
)
def unlink_inter_company_jv(self): def unlink_inter_company_jv(self):
if ( if (