From f9fb92ebb02256a76b809e9d6bffd9e24e8eca0b Mon Sep 17 00:00:00 2001 From: Anurag Mishra <32095923+Anurag810@users.noreply.github.com> Date: Mon, 5 Aug 2019 10:18:37 +0530 Subject: [PATCH] feat: validate cwip accoutns in journal entry (#18519) --- erpnext/accounts/general_ledger.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py index 9a014840eb..be1448df3a 100644 --- a/erpnext/accounts/general_ledger.py +++ b/erpnext/accounts/general_ledger.py @@ -93,6 +93,7 @@ def check_if_in_list(gle, gl_map, dimensions=None): def save_entries(gl_map, adv_adj, update_outstanding, from_repost=False): if not from_repost: validate_account_for_perpetual_inventory(gl_map) + validate_cwip_accounts(gl_map) round_off_debit_credit(gl_map) @@ -123,6 +124,16 @@ def validate_account_for_perpetual_inventory(gl_map): frappe.throw(_("Account: {0} can only be updated via Stock Transactions") .format(entry.account), StockAccountInvalidTransaction) +def validate_cwip_accounts(gl_map): + if not cint(frappe.db.get_value("Asset Settings", None, "disable_cwip_accounting")) \ + and gl_map[0].voucher_type == "Journal Entry": + cwip_accounts = [d[0] for d in frappe.db.sql("""select name from tabAccount + where account_type = 'Capital Work in Progress' and is_group=0""")] + + for entry in gl_map: + if entry.account in cwip_accounts: + frappe.throw(_("Account: {0} is capital Work in progress and can not be updated by Journal Entry").format(entry.account)) + def round_off_debit_credit(gl_map): precision = get_field_precision(frappe.get_meta("GL Entry").get_field("debit"), currency=frappe.get_cached_value('Company', gl_map[0].company, "default_currency"))