diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py
index 38f283c..4e9ef0b 100644
--- a/erpnext/accounts/general_ledger.py
+++ b/erpnext/accounts/general_ledger.py
@@ -163,16 +163,29 @@
 						.format(account), StockAccountInvalidTransaction)
 
 			elif account_bal != stock_bal:
-				error_reason = _("Account Balance ({0}) and Stock Value ({1}) is out of sync for account {2} and it's linked warehouses.").format(
-					account_bal, stock_bal, frappe.bold(account))
-				error_resolution = _("Please create adjustment Journal Entry for amount {0} ").format(frappe.bold(stock_bal - account_bal))
-				button_text = _("Make Adjustment Entry")
+				diff = flt(stock_bal - account_bal)
+				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))
+				stock_adjustment_account = frappe.db.get_value("Company",gl_map[0].company,"stock_adjustment_account")
 
-				frappe.throw("""{0}<br></br>{1}<br></br>
-					<div style="text-align:right;">
-					<button class="btn btn-primary" onclick="frappe.new_doc('Journal Entry')">{2}</button>
-					</div>""".format(error_reason, error_resolution, button_text),
-					StockValueAndAccountBalanceOutOfSync, title=_('Account Balance Out Of Sync'))
+				db_or_cr_warehouse_account =('credit_in_account_currency' if diff < 0 else 'debit_in_account_currency')
+				db_or_cr_stock_adjustment_account = ('debit_in_account_currency' if diff < 0 else 'credit_in_account_currency')
+
+				journal_entry_args = {
+				'accounts':[
+					{'account': account, db_or_cr_warehouse_account : abs(diff)},
+					{'account': stock_adjustment_account, db_or_cr_stock_adjustment_account : abs(diff) }]
+				}
+
+				frappe.msgprint(msg="""{0}<br></br>{1}<br></br>""".format(error_reason, error_resolution),
+					raise_exception=StockValueAndAccountBalanceOutOfSync,
+					title=_('Values Out Of Sync'),
+					primary_action={
+						'label': 'Make JV',
+						'client_action': 'erpnext.route_to_adjustment_jv',
+						'args': journal_entry_args
+					})
 
 def validate_cwip_accounts(gl_map):
 	cwip_enabled = cint(frappe.get_cached_value("Company",
diff --git a/erpnext/public/js/controllers/accounts.js b/erpnext/public/js/controllers/accounts.js
index 3dfc891..eb99192 100644
--- a/erpnext/public/js/controllers/accounts.js
+++ b/erpnext/public/js/controllers/accounts.js
@@ -64,7 +64,7 @@
 				}
 			})
 		}
-	}	
+	}
 });
 
 frappe.ui.form.on('Sales Invoice Payment', {
@@ -356,3 +356,19 @@
 	}
 	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
