fix get_server_fields in stock_entry.js
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js
index 73259e3..840c55d 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.js
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.js
@@ -350,7 +350,7 @@
 			'cost_center'		: d.cost_center,
 			'company'		: cur_frm.doc.company
 		};
-		return get_server_fields('get_item_details', {arg: JSON.stringify(args)},
+		return get_server_fields('get_item_details', JSON.stringify(args),
 			'mtn_details', doc, cdt, cdn, 1);
 	}
 
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 2e3942e..076628e 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -11,8 +11,6 @@
 from erpnext.stock.utils import get_incoming_rate
 from erpnext.stock.stock_ledger import get_previous_sle
 from erpnext.controllers.queries import get_match_cond
-import json
-
 
 class NotUpdateStockError(frappe.ValidationError): pass
 class StockOverReturnError(frappe.ValidationError): pass
@@ -340,23 +338,22 @@
 			"planned_qty": (self.docstatus==1 and -1 or 1 ) * flt(self.fg_completed_qty)
 		})
 
-	def get_item_details(self, arg):
-		arg = json.loads(arg)
+	def get_item_details(self, args):
 		item = frappe.db.sql("""select stock_uom, description, item_name,
 			expense_account, buying_cost_center from `tabItem`
 			where name = %s and (ifnull(end_of_life,'')='' or end_of_life > now())""",
-			(arg.get('item_code')), as_dict = 1)
+			(args.get('item_code')), as_dict = 1)
 		if not item:
-			frappe.throw(_("Item {0} is not active or end of life has been reached").format(arg.get("item_code")))
+			frappe.throw(_("Item {0} is not active or end of life has been reached").format(args.get("item_code")))
 
 		ret = {
 			'uom'			      	: item and item[0]['stock_uom'] or '',
 			'stock_uom'			  	: item and item[0]['stock_uom'] or '',
 			'description'		  	: item and item[0]['description'] or '',
 			'item_name' 		  	: item and item[0]['item_name'] or '',
-			'expense_account'		: item and item[0]['expense_account'] or arg.get("expense_account") \
-				or frappe.db.get_value("Company", arg.get("company"), "default_expense_account"),
-			'cost_center'			: item and item[0]['buying_cost_center'] or arg.get("cost_center"),
+			'expense_account'		: item and item[0]['expense_account'] or args.get("expense_account") \
+				or frappe.db.get_value("Company", args.get("company"), "default_expense_account"),
+			'cost_center'			: item and item[0]['buying_cost_center'] or args.get("cost_center"),
 			'qty'					: 0,
 			'transfer_qty'			: 0,
 			'conversion_factor'		: 1,
@@ -364,7 +361,7 @@
 			'actual_qty'			: 0,
 			'incoming_rate'			: 0
 		}
-		stock_and_rate = arg.get('warehouse') and self.get_warehouse_details(json.dumps(arg)) or {}
+		stock_and_rate = args.get('warehouse') and self.get_warehouse_details(args) or {}
 		ret.update(stock_and_rate)
 		return ret
 
@@ -383,7 +380,6 @@
 		return ret
 
 	def get_warehouse_details(self, args):
-		args = json.loads(args)
 		ret = {}
 		if args.get('warehouse') and args.get('item_code'):
 			args.update({