From 441a1e1b8ad9f7001bd939c84d1e683e5a3d58d0 Mon Sep 17 00:00:00 2001 From: Zarrar Date: Fri, 16 Feb 2018 14:44:42 +0530 Subject: [PATCH] Validate Bank name in Setup wizard on the same slide (#12968) * validate bank name before moving on to next slide * Update setup_wizard.js --- .../chart_of_accounts/chart_of_accounts.py | 20 +++++++++++++++- erpnext/public/js/setup_wizard.js | 24 +++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py b/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py index dc98db141e..91db378fdc 100644 --- a/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py +++ b/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py @@ -175,4 +175,22 @@ def build_account_tree(tree, parent, all_accounts): tree[child.account_name]["root_type"] = child.root_type # call recursively to build a subtree for current account - build_account_tree(tree[child.account_name], child, all_accounts) \ No newline at end of file + build_account_tree(tree[child.account_name], child, all_accounts) + +@frappe.whitelist() +def validate_bank_account(coa, bank_account): + accounts = [] + chart = get_chart(coa) + + if chart: + def _get_account_names(account_master): + for account_name, child in account_master.items(): + if account_name not in ["account_number", "account_type", + "root_type", "is_group", "tax_rate"]: + accounts.append(account_name) + + _get_account_names(child) + + _get_account_names(chart) + + return (bank_account in accounts) \ No newline at end of file diff --git a/erpnext/public/js/setup_wizard.js b/erpnext/public/js/setup_wizard.js index 2652f9510b..2e4485796f 100644 --- a/erpnext/public/js/setup_wizard.js +++ b/erpnext/public/js/setup_wizard.js @@ -137,11 +137,35 @@ erpnext.setup.slides_settings = [ }, validate: function () { + let me = this; + let exist; + // validate fiscal year start and end dates if (this.values.fy_start_date == 'Invalid date' || this.values.fy_end_date == 'Invalid date') { frappe.msgprint(__("Please enter valid Financial Year Start and End Dates")); return false; } + + // Validate bank name + if(me.values.bank_account){ + frappe.call({ + async: false, + method: "erpnext.accounts.doctype.account.chart_of_accounts.chart_of_accounts.validate_bank_account", + args: { + "coa": me.values.chart_of_accounts, + "bank_account": me.values.bank_account + }, + callback: function (r) { + if(r.message){ + exist = r.message; + me.get_field("bank_account").set_value(""); + frappe.msgprint(__(`Account ${me.values.bank_account} already exists, enter a different name for your bank account`)); + } + } + }); + return !exist; // Return False if exist = true + } + return true; },