diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py
index 4e9ef0b..3a24147 100644
--- a/erpnext/accounts/general_ledger.py
+++ b/erpnext/accounts/general_ledger.py
@@ -163,7 +163,10 @@
 						.format(account), StockAccountInvalidTransaction)
 
 			elif account_bal != stock_bal:
-				diff = flt(stock_bal - account_bal)
+				precision = get_field_precision(frappe.get_meta("GL Entry").get_field("debit"),
+					currency=frappe.get_cached_value('Company',  gl_map[0].company,  "default_currency"))
+
+				diff = flt(stock_bal - account_bal, precision)
 				error_reason = _("Stock Value ({0}) and Account Balance ({1}) are out of sync for account {2} and it's linked warehouses.").format(
 					stock_bal, account_bal, frappe.bold(account))
 				error_resolution = _("Please create adjustment Journal Entry for amount {0} ").format(frappe.bold(diff))
@@ -182,7 +185,7 @@
 					raise_exception=StockValueAndAccountBalanceOutOfSync,
 					title=_('Values Out Of Sync'),
 					primary_action={
-						'label': 'Make JV',
+						'label': 'Make Journal Entry',
 						'client_action': 'erpnext.route_to_adjustment_jv',
 						'args': journal_entry_args
 					})
diff --git a/erpnext/public/js/controllers/accounts.js b/erpnext/public/js/controllers/accounts.js
index eb99192..f4eaad5 100644
--- a/erpnext/public/js/controllers/accounts.js
+++ b/erpnext/public/js/controllers/accounts.js
@@ -355,20 +355,4 @@
 		out += '</table></td></tr></table></div>';
 	}
 	return out;
-}
-
-erpnext.route_to_adjustment_jv = (args) => {
-	frappe.model.with_doctype('Journal Entry', () => {
-		// route to adjustment Journal Entry to handle Account Balance and Stock Value mismatch
-		let journal_entry = frappe.model.get_new_doc('Journal Entry');
-
-		args.accounts.forEach((je_account) => {
-			let child_row = frappe.model.add_child(journal_entry, "accounts");
-			child_row.account = je_account.account;
-			child_row.debit_in_account_currency = je_account.debit_in_account_currency;
-			child_row.credit_in_account_currency = je_account.credit_in_account_currency;
-			child_row.party_type = "" ;
-		});
-		frappe.set_route('Form','Journal Entry', journal_entry.name);
-	});
 }
\ No newline at end of file
diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js
index 6f43d9e..d5a78d4 100755
--- a/erpnext/public/js/utils.js
+++ b/erpnext/public/js/utils.js
@@ -74,6 +74,22 @@
 			);
 		});
 	},
+
+	route_to_adjustment_jv: (args) => {
+		frappe.model.with_doctype('Journal Entry', () => {
+			// route to adjustment Journal Entry to handle Account Balance and Stock Value mismatch
+			let journal_entry = frappe.model.get_new_doc('Journal Entry');
+
+			args.accounts.forEach((je_account) => {
+				let child_row = frappe.model.add_child(journal_entry, "accounts");
+				child_row.account = je_account.account;
+				child_row.debit_in_account_currency = je_account.debit_in_account_currency;
+				child_row.credit_in_account_currency = je_account.credit_in_account_currency;
+				child_row.party_type = "" ;
+			});
+			frappe.set_route('Form','Journal Entry', journal_entry.name);
+		});
+	}
 });
 
 
