From 7554f112600c1e35aff4523d038827f306be4881 Mon Sep 17 00:00:00 2001 From: Dany Robert Date: Fri, 10 Dec 2021 08:45:47 +0000 Subject: [PATCH] feat: progress bar, account name field --- .../doctype/ledger_merge/ledger_merge.js | 21 ++++----- .../doctype/ledger_merge/ledger_merge.json | 15 ++++++- .../doctype/ledger_merge/ledger_merge.py | 45 ++++++++++--------- .../ledger_merge_accounts.json | 14 +++++- 4 files changed, 57 insertions(+), 38 deletions(-) diff --git a/erpnext/accounts/doctype/ledger_merge/ledger_merge.js b/erpnext/accounts/doctype/ledger_merge/ledger_merge.js index 6a768ca9726..ffc4ac43d39 100644 --- a/erpnext/accounts/doctype/ledger_merge/ledger_merge.js +++ b/erpnext/accounts/doctype/ledger_merge/ledger_merge.js @@ -3,25 +3,17 @@ frappe.ui.form.on('Ledger Merge', { setup: function(frm) { - frappe.realtime.on('data_import_refresh', ({ ledger_merge }) => { + frappe.realtime.on('ledger_merge_refresh', ({ ledger_merge }) => { if (ledger_merge !== frm.doc.name) return; frm.refresh(); }); - frappe.realtime.on('data_import_progress', data => { - if (data.data_import !== frm.doc.name) return; + frappe.realtime.on('ledger_merge_progress', data => { + if (data.ledger_merge !== frm.doc.name) return; let message = __('Merging {0} of {1}', [data.current, data.total]); let percent = Math.floor((data.current * 100) / data.total); frm.dashboard.show_progress(__('Merge Progress'), percent, message); frm.page.set_indicator(__('In Progress'), 'orange'); - - // hide progress when complete - if (data.current === data.total) { - setTimeout(() => { - frm.dashboard.hide(); - frm.refresh(); - }, 2000); - } }); frm.set_query("account", function(doc) { @@ -61,10 +53,15 @@ frappe.ui.form.on('Ledger Merge', { }, after_save: function(frm) { - frm.trigger('update_primary_action'); + setTimeout(() => { + frm.trigger('update_primary_action'); + }, 750); }, update_primary_action: function(frm) { + console.log(!frm.is_new()); + console.log(frm.is_dirty()); + console.log("-"); if (frm.is_dirty()) { frm.enable_save(); return; diff --git a/erpnext/accounts/doctype/ledger_merge/ledger_merge.json b/erpnext/accounts/doctype/ledger_merge/ledger_merge.json index b3652bbabd8..641b462a292 100644 --- a/erpnext/accounts/doctype/ledger_merge/ledger_merge.json +++ b/erpnext/accounts/doctype/ledger_merge/ledger_merge.json @@ -1,6 +1,6 @@ { "actions": [], - "autoname": "format:{account} merger on {creation}", + "autoname": "format:{account_name} merger on {creation}", "creation": "2021-12-09 15:38:04.556584", "doctype": "DocType", "editable_grid": 1, @@ -9,6 +9,7 @@ "section_break_1", "root_type", "account", + "account_name", "column_break_3", "company", "status", @@ -68,11 +69,21 @@ "options": "\nAsset\nLiability\nIncome\nExpense\nEquity", "reqd": 1, "set_only_once": 1 + }, + { + "depends_on": "account", + "fetch_from": "account.account_name", + "fetch_if_empty": 1, + "fieldname": "account_name", + "fieldtype": "Data", + "label": "Account Name", + "read_only": 1, + "reqd": 1 } ], "hide_toolbar": 1, "links": [], - "modified": "2021-12-09 18:35:30.720538", + "modified": "2021-12-09 23:41:11.097097", "modified_by": "Administrator", "module": "Accounts", "name": "Ledger Merge", diff --git a/erpnext/accounts/doctype/ledger_merge/ledger_merge.py b/erpnext/accounts/doctype/ledger_merge/ledger_merge.py index 48ac1e7622b..a23f5658410 100644 --- a/erpnext/accounts/doctype/ledger_merge/ledger_merge.py +++ b/erpnext/accounts/doctype/ledger_merge/ledger_merge.py @@ -43,27 +43,28 @@ def start_merge(docname): successful_merges = 0 total = len(ledger_merge.merge_accounts) for row in ledger_merge.merge_accounts: - try: - merge_account(row.account, ledger_merge.account, 0, ledger_merge.root_type, ledger_merge.company) - row.db_set('merged', 1) - frappe.db.commit() - successful_merges += 1 - frappe.publish_realtime("ledger_merge_progress", { - "ledger_merge": ledger_merge.name, - "current": successful_merges, - "total": total - } - ) - except Exception: - frappe.db.rollback() - ledger_merge.db_set("status", "Error") - frappe.log_error(title=ledger_merge.name) - finally: - if successful_merges == total: - ledger_merge.db_set('status', 'Success') - elif successful_merges > 0: - ledger_merge.db_set('status', 'Partial Success') - else: - ledger_merge.db_set('status', 'Error') + if not row.merged: + try: + merge_account(row.account, ledger_merge.account, 0, ledger_merge.root_type, ledger_merge.company) + row.db_set('merged', 1) + frappe.db.commit() + successful_merges += 1 + frappe.publish_realtime("ledger_merge_progress", { + "ledger_merge": ledger_merge.name, + "current": successful_merges, + "total": total + } + ) + except Exception: + frappe.db.rollback() + ledger_merge.db_set("status", "Error") + frappe.log_error(title=ledger_merge.name) + finally: + if successful_merges == total: + ledger_merge.db_set('status', 'Success') + elif successful_merges > 0: + ledger_merge.db_set('status', 'Partial Success') + else: + ledger_merge.db_set('status', 'Error') frappe.publish_realtime("ledger_merge_refresh", {"ledger_merge": ledger_merge.name}) diff --git a/erpnext/accounts/doctype/ledger_merge_accounts/ledger_merge_accounts.json b/erpnext/accounts/doctype/ledger_merge_accounts/ledger_merge_accounts.json index f5dab369a75..524e4808920 100644 --- a/erpnext/accounts/doctype/ledger_merge_accounts/ledger_merge_accounts.json +++ b/erpnext/accounts/doctype/ledger_merge_accounts/ledger_merge_accounts.json @@ -7,11 +7,12 @@ "engine": "InnoDB", "field_order": [ "account", + "account_name", "merged" ], "fields": [ { - "columns": 8, + "columns": 4, "fieldname": "account", "fieldtype": "Link", "in_list_view": 1, @@ -27,12 +28,21 @@ "in_list_view": 1, "label": "Merged", "read_only": 1 + }, + { + "columns": 4, + "fetch_from": "account.account_name", + "fieldname": "account_name", + "fieldtype": "Data", + "label": "Account Name", + "read_only": 1, + "reqd": 1 } ], "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2021-12-09 15:50:09.047183", + "modified": "2021-12-09 23:19:15.193921", "modified_by": "Administrator", "module": "Accounts", "name": "Ledger Merge Accounts",