feat: progress bar, account name field

This commit is contained in:
Dany Robert
2021-12-10 08:45:47 +00:00
parent b7cc20eac0
commit 7554f11260
4 changed files with 57 additions and 38 deletions

View File

@@ -3,25 +3,17 @@
frappe.ui.form.on('Ledger Merge', { frappe.ui.form.on('Ledger Merge', {
setup: function(frm) { 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; if (ledger_merge !== frm.doc.name) return;
frm.refresh(); frm.refresh();
}); });
frappe.realtime.on('data_import_progress', data => { frappe.realtime.on('ledger_merge_progress', data => {
if (data.data_import !== frm.doc.name) return; if (data.ledger_merge !== frm.doc.name) return;
let message = __('Merging {0} of {1}', [data.current, data.total]); let message = __('Merging {0} of {1}', [data.current, data.total]);
let percent = Math.floor((data.current * 100) / data.total); let percent = Math.floor((data.current * 100) / data.total);
frm.dashboard.show_progress(__('Merge Progress'), percent, message); frm.dashboard.show_progress(__('Merge Progress'), percent, message);
frm.page.set_indicator(__('In Progress'), 'orange'); 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) { frm.set_query("account", function(doc) {
@@ -61,10 +53,15 @@ frappe.ui.form.on('Ledger Merge', {
}, },
after_save: function(frm) { after_save: function(frm) {
frm.trigger('update_primary_action'); setTimeout(() => {
frm.trigger('update_primary_action');
}, 750);
}, },
update_primary_action: function(frm) { update_primary_action: function(frm) {
console.log(!frm.is_new());
console.log(frm.is_dirty());
console.log("-");
if (frm.is_dirty()) { if (frm.is_dirty()) {
frm.enable_save(); frm.enable_save();
return; return;

View File

@@ -1,6 +1,6 @@
{ {
"actions": [], "actions": [],
"autoname": "format:{account} merger on {creation}", "autoname": "format:{account_name} merger on {creation}",
"creation": "2021-12-09 15:38:04.556584", "creation": "2021-12-09 15:38:04.556584",
"doctype": "DocType", "doctype": "DocType",
"editable_grid": 1, "editable_grid": 1,
@@ -9,6 +9,7 @@
"section_break_1", "section_break_1",
"root_type", "root_type",
"account", "account",
"account_name",
"column_break_3", "column_break_3",
"company", "company",
"status", "status",
@@ -68,11 +69,21 @@
"options": "\nAsset\nLiability\nIncome\nExpense\nEquity", "options": "\nAsset\nLiability\nIncome\nExpense\nEquity",
"reqd": 1, "reqd": 1,
"set_only_once": 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, "hide_toolbar": 1,
"links": [], "links": [],
"modified": "2021-12-09 18:35:30.720538", "modified": "2021-12-09 23:41:11.097097",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Accounts", "module": "Accounts",
"name": "Ledger Merge", "name": "Ledger Merge",

View File

@@ -43,27 +43,28 @@ def start_merge(docname):
successful_merges = 0 successful_merges = 0
total = len(ledger_merge.merge_accounts) total = len(ledger_merge.merge_accounts)
for row in ledger_merge.merge_accounts: for row in ledger_merge.merge_accounts:
try: if not row.merged:
merge_account(row.account, ledger_merge.account, 0, ledger_merge.root_type, ledger_merge.company) try:
row.db_set('merged', 1) merge_account(row.account, ledger_merge.account, 0, ledger_merge.root_type, ledger_merge.company)
frappe.db.commit() row.db_set('merged', 1)
successful_merges += 1 frappe.db.commit()
frappe.publish_realtime("ledger_merge_progress", { successful_merges += 1
"ledger_merge": ledger_merge.name, frappe.publish_realtime("ledger_merge_progress", {
"current": successful_merges, "ledger_merge": ledger_merge.name,
"total": total "current": successful_merges,
} "total": total
) }
except Exception: )
frappe.db.rollback() except Exception:
ledger_merge.db_set("status", "Error") frappe.db.rollback()
frappe.log_error(title=ledger_merge.name) ledger_merge.db_set("status", "Error")
finally: frappe.log_error(title=ledger_merge.name)
if successful_merges == total: finally:
ledger_merge.db_set('status', 'Success') if successful_merges == total:
elif successful_merges > 0: ledger_merge.db_set('status', 'Success')
ledger_merge.db_set('status', 'Partial Success') elif successful_merges > 0:
else: ledger_merge.db_set('status', 'Partial Success')
ledger_merge.db_set('status', 'Error') else:
ledger_merge.db_set('status', 'Error')
frappe.publish_realtime("ledger_merge_refresh", {"ledger_merge": ledger_merge.name}) frappe.publish_realtime("ledger_merge_refresh", {"ledger_merge": ledger_merge.name})

View File

@@ -7,11 +7,12 @@
"engine": "InnoDB", "engine": "InnoDB",
"field_order": [ "field_order": [
"account", "account",
"account_name",
"merged" "merged"
], ],
"fields": [ "fields": [
{ {
"columns": 8, "columns": 4,
"fieldname": "account", "fieldname": "account",
"fieldtype": "Link", "fieldtype": "Link",
"in_list_view": 1, "in_list_view": 1,
@@ -27,12 +28,21 @@
"in_list_view": 1, "in_list_view": 1,
"label": "Merged", "label": "Merged",
"read_only": 1 "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, "index_web_pages_for_search": 1,
"istable": 1, "istable": 1,
"links": [], "links": [],
"modified": "2021-12-09 15:50:09.047183", "modified": "2021-12-09 23:19:15.193921",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Accounts", "module": "Accounts",
"name": "Ledger Merge Accounts", "name": "Ledger Merge Accounts",