Merge branch 'develop'
diff --git a/accounts/doctype/account/account.py b/accounts/doctype/account/account.py
index cae2028..0640ad9 100644
--- a/accounts/doctype/account/account.py
+++ b/accounts/doctype/account/account.py
@@ -211,6 +211,9 @@
 		
 		# Validate properties before merging
 		if merge:
+			if not webnotes.conn.exists("Account", new):
+				webnotes.throw(_("Account ") + new +_(" does not exists"))
+				
 			val = list(webnotes.conn.get_value("Account", new_account, 
 				["group_or_ledger", "debit_or_credit", "is_pl_account"]))
 			
diff --git a/config.json b/config.json
index f1f433e..45f8e27 100644
--- a/config.json
+++ b/config.json
@@ -1,6 +1,6 @@
 {
  "app_name": "ERPNext", 
- "app_version": "3.3.4", 
+ "app_version": "3.3.5", 
  "base_template": "app/portal/templates/base.html", 
  "modules": {
   "Accounts": {
diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py
index 01f1d9f..8dbfef7 100644
--- a/stock/doctype/item/item.py
+++ b/stock/doctype/item/item.py
@@ -246,6 +246,9 @@
 	def before_rename(self, olddn, newdn, merge=False):
 		if merge:
 			# Validate properties before merging
+			if not webnotes.conn.exists("Item", newdn):
+				webnotes.throw(_("Item ") + newdn +_(" does not exists"))
+			
 			field_list = ["stock_uom", "is_stock_item", "has_serial_no", "has_batch_no"]
 			new_properties = [cstr(d) for d in webnotes.conn.get_value("Item", newdn, field_list)]
 			if new_properties != [cstr(self.doc.fields[fld]) for fld in field_list]:
diff --git a/stock/doctype/warehouse/warehouse.py b/stock/doctype/warehouse/warehouse.py
index 3559960..8b1b5b5 100644
--- a/stock/doctype/warehouse/warehouse.py
+++ b/stock/doctype/warehouse/warehouse.py
@@ -84,6 +84,9 @@
 		new_warehouse = get_name_with_abbr(newdn, self.doc.company)
 
 		if merge:
+			if not webnotes.conn.exists("Warehouse", newdn):
+				webnotes.throw(_("Warehouse ") + newdn +_(" does not exists"))
+				
 			if self.doc.company != webnotes.conn.get_value("Warehouse", new_warehouse, "company"):
 				webnotes.throw(_("Both Warehouse must belong to same Company"))
 				
diff --git a/stock/report/stock_ledger/stock_ledger.py b/stock/report/stock_ledger/stock_ledger.py
index 034884b..b2bc64f 100644
--- a/stock/report/stock_ledger/stock_ledger.py
+++ b/stock/report/stock_ledger/stock_ledger.py
@@ -3,7 +3,6 @@
 
 from __future__ import unicode_literals
 import webnotes
-from webnotes import _
 
 def execute(filters=None):
 	columns = get_columns()
@@ -33,13 +32,6 @@
 		"Batch:Link/Batch:100", "Serial #:Link/Serial No:100", "Company:Link/Company:100"]
 	
 def get_stock_ledger_entries(filters):
-	if not filters.get("company"):
-		webnotes.throw(_("Company is mandatory"))
-	if not filters.get("from_date"):
-		webnotes.throw(_("From Date is mandatory"))
-	if not filters.get("to_date"):
-		webnotes.throw(_("To Date is mandatory"))
-		
 	return webnotes.conn.sql("""select concat_ws(" ", posting_date, posting_time) as date,
 			item_code, warehouse, actual_qty, qty_after_transaction, 
 			stock_value, voucher_type, voucher_no, batch_no, serial_no, company
diff --git a/stock/report/stock_projected_qty/stock_projected_qty.js b/stock/report/stock_projected_qty/stock_projected_qty.js
index a0ad755..8c25e5d 100644
--- a/stock/report/stock_projected_qty/stock_projected_qty.js
+++ b/stock/report/stock_projected_qty/stock_projected_qty.js
@@ -7,9 +7,7 @@
 			"fieldname":"company",
 			"label": wn._("Company"),
 			"fieldtype": "Link",
-			"options": "Company",
-			"default": wn.defaults.get_user_default("company"),
-			"reqd": 1
+			"options": "Company"
 		},
 		{
 			"fieldname":"warehouse",
diff --git a/stock/report/stock_projected_qty/stock_projected_qty.py b/stock/report/stock_projected_qty/stock_projected_qty.py
index 0572f79..d335ebf 100644
--- a/stock/report/stock_projected_qty/stock_projected_qty.py
+++ b/stock/report/stock_projected_qty/stock_projected_qty.py
@@ -13,7 +13,7 @@
 			projected_qty, item.re_order_level, item.re_order_qty
 		from `tabBin` bin, 
 			(select name, company from tabWarehouse 
-				where company=%(company)s {warehouse_conditions}) wh,
+				{warehouse_conditions}) wh,
 			(select name, item_name, description, stock_uom, item_group, 
 				brand, re_order_level, re_order_qty 
 				from `tabItem` {item_conditions}) item
@@ -41,4 +41,10 @@
 	return "where {}".format(" and ".join(conditions)) if conditions else ""
 	
 def get_warehouse_conditions(filters):
-	return " and name=%(warehouse)s" if filters.get("warehouse") else ""
\ No newline at end of file
+	conditions = []
+	if filters.get("company"):
+		conditions.append("company=%(company)s")
+	if filters.get("warehouse"):
+		conditions.append("name=%(warehouse)s")
+		
+	return "where {}".format(" and ".join(conditions)) if conditions else ""
\ No newline at end of file