fix: COA Importer showing blank validations

(cherry picked from commit 0660d6ed01e0668ce828cf9bae9790aead874233)
This commit is contained in:
Deepesh Garg 2021-10-05 12:20:14 +05:30 committed by mergify-bot
parent 3132dcd94a
commit 020f94532b
2 changed files with 49 additions and 49 deletions

View File

@ -10,6 +10,15 @@ frappe.ui.form.on('Chart of Accounts Importer', {
// make company mandatory // make company mandatory
frm.set_df_property('company', 'reqd', frm.doc.company ? 0 : 1); frm.set_df_property('company', 'reqd', frm.doc.company ? 0 : 1);
frm.set_df_property('import_file_section', 'hidden', frm.doc.company ? 0 : 1); frm.set_df_property('import_file_section', 'hidden', frm.doc.company ? 0 : 1);
if (frm.doc.import_file) {
frappe.run_serially([
() => generate_tree_preview(frm),
() => create_import_button(frm),
() => frm.set_df_property('chart_preview', 'hidden', 0)
]);
}
frm.set_df_property('chart_preview', 'hidden', frm.set_df_property('chart_preview', 'hidden',
$(frm.fields_dict['chart_tree'].wrapper).html()!="" ? 0 : 1); $(frm.fields_dict['chart_tree'].wrapper).html()!="" ? 0 : 1);
}, },
@ -72,13 +81,6 @@ frappe.ui.form.on('Chart of Accounts Importer', {
if (!frm.doc.import_file) { if (!frm.doc.import_file) {
frm.page.set_indicator(""); frm.page.set_indicator("");
$(frm.fields_dict['chart_tree'].wrapper).empty(); // empty wrapper on removing file $(frm.fields_dict['chart_tree'].wrapper).empty(); // empty wrapper on removing file
} else {
frappe.run_serially([
() => validate_coa(frm),
() => generate_tree_preview(frm),
() => create_import_button(frm),
() => frm.set_df_property('chart_preview', 'hidden', 0),
]);
} }
}, },
@ -104,26 +106,24 @@ frappe.ui.form.on('Chart of Accounts Importer', {
}); });
var create_import_button = function(frm) { var create_import_button = function(frm) {
if (frm.page.show_import_button) { frm.page.set_primary_action(__("Import"), function () {
frm.page.set_primary_action(__("Import"), function () { return frappe.call({
return frappe.call({ method: "erpnext.accounts.doctype.chart_of_accounts_importer.chart_of_accounts_importer.import_coa",
method: "erpnext.accounts.doctype.chart_of_accounts_importer.chart_of_accounts_importer.import_coa", args: {
args: { file_name: frm.doc.import_file,
file_name: frm.doc.import_file, company: frm.doc.company
company: frm.doc.company },
}, freeze: true,
freeze: true, freeze_message: __("Creating Accounts..."),
freeze_message: __("Creating Accounts..."), callback: function(r) {
callback: function(r) { if (!r.exc) {
if (!r.exc) { clearInterval(frm.page["interval"]);
clearInterval(frm.page["interval"]); frm.page.set_indicator(__('Import Successful'), 'blue');
frm.page.set_indicator(__('Import Successful'), 'blue'); create_reset_button(frm);
create_reset_button(frm);
}
} }
}); }
}).addClass('btn btn-primary'); });
} }).addClass('btn btn-primary');
}; };
var create_reset_button = function(frm) { var create_reset_button = function(frm) {
@ -137,7 +137,6 @@ var create_reset_button = function(frm) {
var validate_coa = function(frm) { var validate_coa = function(frm) {
if (frm.doc.import_file) { if (frm.doc.import_file) {
let parent = __('All Accounts'); let parent = __('All Accounts');
return frappe.call({ return frappe.call({
'method': 'erpnext.accounts.doctype.chart_of_accounts_importer.chart_of_accounts_importer.get_coa', 'method': 'erpnext.accounts.doctype.chart_of_accounts_importer.chart_of_accounts_importer.get_coa',
'args': { 'args': {
@ -157,25 +156,23 @@ var validate_coa = function(frm) {
}; };
var generate_tree_preview = function(frm) { var generate_tree_preview = function(frm) {
if (frm.doc.import_file) { let parent = __('All Accounts');
let parent = __('All Accounts'); $(frm.fields_dict['chart_tree'].wrapper).empty(); // empty wrapper to load new data
$(frm.fields_dict['chart_tree'].wrapper).empty(); // empty wrapper to load new data
// generate tree structure based on the csv data // generate tree structure based on the csv data
return new frappe.ui.Tree({ return new frappe.ui.Tree({
parent: $(frm.fields_dict['chart_tree'].wrapper), parent: $(frm.fields_dict['chart_tree'].wrapper),
label: parent, label: parent,
expandable: true, expandable: true,
method: 'erpnext.accounts.doctype.chart_of_accounts_importer.chart_of_accounts_importer.get_coa', method: 'erpnext.accounts.doctype.chart_of_accounts_importer.chart_of_accounts_importer.get_coa',
args: { args: {
file_name: frm.doc.import_file, file_name: frm.doc.import_file,
parent: parent, parent: parent,
doctype: 'Chart of Accounts Importer', doctype: 'Chart of Accounts Importer',
file_type: frm.doc.file_type file_type: frm.doc.file_type
}, },
onclick: function(node) { onclick: function(node) {
parent = node.value; parent = node.value;
} }
}); });
}
}; };

View File

@ -25,7 +25,9 @@ from erpnext.accounts.doctype.account.chart_of_accounts.chart_of_accounts import
class ChartofAccountsImporter(Document): class ChartofAccountsImporter(Document):
pass def validate(self):
if self.import_file:
get_coa('Chart of Accounts Importer', 'All Accounts', file_name=self.import_file, for_validate=1)
def validate_columns(data): def validate_columns(data):
if not data: if not data:
@ -34,7 +36,8 @@ def validate_columns(data):
no_of_columns = max([len(d) for d in data]) no_of_columns = max([len(d) for d in data])
if no_of_columns > 7: if no_of_columns > 7:
frappe.throw(_('More columns found than expected. Please compare the uploaded file with standard template')) frappe.throw(_('More columns found than expected. Please compare the uploaded file with standard template'),
title=(_("Wrong Template")))
@frappe.whitelist() @frappe.whitelist()
def validate_company(company): def validate_company(company):