feat: form updates and progressbar
diff --git a/erpnext/accounts/doctype/ledger_merge/ledger_merge.js b/erpnext/accounts/doctype/ledger_merge/ledger_merge.js
index ff69ddc..6a768ca 100644
--- a/erpnext/accounts/doctype/ledger_merge/ledger_merge.js
+++ b/erpnext/accounts/doctype/ledger_merge/ledger_merge.js
@@ -3,6 +3,27 @@
 
 frappe.ui.form.on('Ledger Merge', {
   setup: function(frm) {
+    frappe.realtime.on('data_import_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;
+			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) {
       if (!doc.company) frappe.throw(__('Please set Company'));
       if (!doc.root_type) frappe.throw(__('Please set Root Type'));
@@ -32,6 +53,7 @@
 
 	refresh: function(frm) {
     frm.page.hide_icon_group();
+    frm.trigger('set_merge_status');
 	},
 
   onload_post_render: function(frm) {
@@ -60,8 +82,15 @@
 	},
 
   start_merge: function(frm) {
-    console.log('Hi');
-    frm.trigger('set_merge_status');
+    frm.call({
+			method: 'form_start_merge',
+			args: { docname: frm.doc.name },
+			btn: frm.page.btn_primary
+		}).then(r => {
+			if (r.message === true) {
+				frm.disable_save();
+			}
+		});
   },
 
   set_merge_status: function(frm) {
@@ -72,6 +101,16 @@
 		});
     let message_args = [successful_records, frm.doc.merge_accounts.length];
     frm.dashboard.set_headline(__('Successfully merged {0} out of {1}.', message_args));
+  },
+
+  root_type: function(frm) {
+    frm.set_value('account', '');
+    frm.set_value('merge_accounts', []);
+  },
+
+  company: function(frm) {
+    frm.set_value('account', '');
+    frm.set_value('merge_accounts', []);
   }
 });