fix in pricing rule
diff --git a/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
index 9e7744e..a28db32 100644
--- a/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
+++ b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
@@ -10,6 +10,16 @@
 	def test_pricing_rule_for_discount(self):
 		from erpnext.stock.get_item_details import get_item_details
 		from frappe import MandatoryError
+
+		test_record = [{
+			"doctype": "Pricing Rule", 
+			"apply_on": "Item Code", 
+			"item_code": "_Test Item", 
+			"price_or_discount": "Discount Percentage", 
+			"price": 0, 
+			"discount_percentage": 10, 
+		}]
+		frappe.bean(copy=test_record).insert()
 		
 		args = frappe._dict({
 			"item_code": "_Test Item",
@@ -28,7 +38,7 @@
 		details = get_item_details(args)
 		self.assertEquals(details.get("discount_percentage"), 10)
 		
-		prule = frappe.bean(copy=test_records[0])
+		prule = frappe.bean(copy=test_record)
 		prule.doc.applicable_for = "Customer"
 		self.assertRaises(MandatoryError, prule.insert)
 		prule.doc.customer = "_Test Customer"
@@ -37,7 +47,7 @@
 		details = get_item_details(args)
 		self.assertEquals(details.get("discount_percentage"), 20)
 		
-		prule = frappe.bean(copy=test_records[0])
+		prule = frappe.bean(copy=test_record)
 		prule.doc.apply_on = "Item Group"
 		prule.doc.item_group = "All Item Groups"
 		prule.doc.discount_percentage = 15
@@ -47,9 +57,7 @@
 		details = get_item_details(args)
 		self.assertEquals(details.get("discount_percentage"), 10)
 		
-
-		
-		prule = frappe.bean(copy=test_records[0])
+		prule = frappe.bean(copy=test_record)
 		prule.doc.applicable_for = "Campaign"
 		prule.doc.campaign = "_Test Campaign"
 		prule.doc.discount_percentage = 5
@@ -68,15 +76,4 @@
 		details = get_item_details(args)
 		self.assertEquals(details.get("discount_percentage"), 15)
 		
-		frappe.db.sql("delete from `tabPricing Rule`")
-
-test_records = [
-	[{
-		"doctype": "Pricing Rule", 
-		"apply_on": "Item Code", 
-		"item_code": "_Test Item", 
-		"price_or_discount": "Discount Percentage", 
-		"price": 0, 
-		"discount_percentage": 10, 
-	}],
-]
\ No newline at end of file
+		frappe.db.sql("delete from `tabPricing Rule`")
\ No newline at end of file
diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py
index b5e6740..e86b113 100644
--- a/erpnext/stock/doctype/item/test_item.py
+++ b/erpnext/stock/doctype/item/test_item.py
@@ -43,9 +43,7 @@
 		}
 		
 		make_test_records("Item Price")
-		
-		frappe.db.sql("delete from `tabPricing Rule`")
-		
+				
 		details = get_item_details({
 			"item_code": "_Test Item",
 			"company": "_Test Company",
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 4c3725a..fe596c4 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -253,7 +253,6 @@
 	for rule_for in ["price", "discount_percentage"]:
 		pricing_rules = filter(lambda x: x[rule_for] > 0.0, all_pricing_rules)
 		pricing_rules = filter_pricing_rules(args_dict, pricing_rules, rule_for)
-
 		if pricing_rules:
 			if rule_for == "discount_percentage":
 				out["discount_percentage"] = pricing_rules[-1]["discount_percentage"]
@@ -265,17 +264,17 @@
 				out["pricing_rule_for_price"] = pricing_rules[-1]["name"]
 	
 def get_pricing_rules(args_dict):
-	def _get_tree_conditions(doctype):
+	def _get_tree_conditions(doctype, allow_blank=True):
 		field = frappe.scrub(doctype)
 		condition = ""
 		if args_dict.get(field):
 			lft, rgt = frappe.db.get_value(doctype, args_dict[field], ["lft", "rgt"])
 			parent_groups = frappe.db.sql_list("""select name from `tab%s` 
-				where lft<=%s and rgt>=%s""" % 
-				(doctype, '%s', '%s'), (lft, rgt))
+				where lft<=%s and rgt>=%s""" % (doctype, '%s', '%s'), (lft, rgt))
 				
 			if parent_groups:
-				condition = " ifnull("+field+", '') in ('" + "', '".join(parent_groups)+"', '')"
+				if allow_blank: parent_groups.append('')
+				condition = " ifnull("+field+", '') in ('" + "', '".join(parent_groups)+"')"
 
 		return condition
 				
@@ -303,7 +302,7 @@
 		where (item_code=%(item_code)s or {item_group_condition} or brand=%(brand)s) 
 			and docstatus < 2 and ifnull(disable, 0) = 0 {conditions}
 		order by priority desc, name desc""".format(
-			item_group_condition=_get_tree_conditions("Item Group"), conditions=conditions), 
+			item_group_condition=_get_tree_conditions("Item Group", False), conditions=conditions), 
 			args_dict, as_dict=1)
 
 def filter_pricing_rules(args_dict, pricing_rules, price_or_discount):