mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-04 04:39:11 +00:00
feat: progress bar, account name field
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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})
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
Reference in New Issue
Block a user