diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index 78584fa..8e512e8 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -2,8 +2,10 @@
 // License: GNU General Public License v3. See license.txt
 
 frappe.provide("erpnext");
-frappe.require("assets/erpnext/js/controllers/taxes_and_totals.js");
-frappe.require("assets/erpnext/js/utils.js");
+frappe.require([
+	"assets/erpnext/js/controllers/taxes_and_totals.js",
+	"assets/erpnext/js/utils.js",
+	"assets/erpnext/js/utils/item_selector.js"]);
 
 erpnext.TransactionController = erpnext.taxes_and_totals.extend({
 	onload: function() {
@@ -309,8 +311,8 @@
 
 		if (this.frm.doc.posting_date) var date = this.frm.doc.posting_date;
 		else var date = this.frm.doc.transaction_date;
-		
-		if (frappe.meta.get_docfield(this.frm.doctype, "shipping_address") && 
+
+		if (frappe.meta.get_docfield(this.frm.doctype, "shipping_address") &&
 			in_list(['Purchase Order', 'Purchase Receipt', 'Purchase Invoice'], this.frm.doctype)){
 				erpnext.utils.get_shipping_address(this.frm, function(){
 					set_party_account(set_pricing);
diff --git a/erpnext/stock/dashboard/item_dashboard.js b/erpnext/stock/dashboard/item_dashboard.js
index 86cc0f2..e7e89ce 100644
--- a/erpnext/stock/dashboard/item_dashboard.js
+++ b/erpnext/stock/dashboard/item_dashboard.js
@@ -124,7 +124,7 @@
 	}
 
 	if(rate) {
-		dialog.get_field('rate').set_value('rate');
+		dialog.get_field('rate').set_value(rate);
 		dialog.get_field('rate').df.hidden = 0;
 		dialog.get_field('rate').refresh();
 	}
@@ -136,7 +136,7 @@
 	}
 
 	dialog.set_primary_action(__('Submit'), function() {
-		values = dialog.get_values();
+		var values = dialog.get_values();
 		if(!values) {
 			return;
 		}
@@ -159,4 +159,18 @@
 			},
 		});
 	});
+
+	$('<p><a class="link-open">' + __("Add more items or open form") + '</a></p>')
+		.appendTo(dialog.body)
+		.find('.link-open')
+		.on('click', function() {
+			var doc = frappe.new_doc('Stock Entry');
+			doc.from_warehouse = dialog.get_value('source');
+			doc.to_warehouse = dialog.get_value('target');
+			row = frappe.model.add_child(doc, 'items');
+			row.item_code = dialog.get_value('item_code');
+			row.qty = dialog.get_value('qty');
+			row.basic_rate = dialog.get_value('rate');
+			frappe.set_route('Form', doc.doctype, doc.name);
+		});
 }
\ No newline at end of file
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js
index 46f8c70..1696b02 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.js
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.js
@@ -1,7 +1,10 @@
 // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors // License: GNU General Public License v3. See license.txt
 
-frappe.require("assets/erpnext/js/controllers/stock_controller.js");
-frappe.require("assets/erpnext/js/utils.js");
+frappe.require([
+	"assets/erpnext/js/controllers/stock_controller.js",
+	"assets/erpnext/js/utils.js",
+	"assets/erpnext/js/utils/item_selector.js"]);
+
 frappe.provide("erpnext.stock");
 
 erpnext.stock.StockEntry = erpnext.stock.StockController.extend({
