sales order - allow same item to enter multiple times. Throws warning
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index ad90557..ec3f038 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -5,7 +5,7 @@
 import frappe
 import frappe.utils
 from frappe.utils import cstr, flt, getdate, comma_and
-from frappe import _
+from frappe import _ , msgprint
 from frappe.model.mapper import get_mapped_doc
 
 from erpnext.controllers.selling_controller import SellingController
@@ -34,32 +34,23 @@
 				frappe.msgprint(_("Warning: Sales Order {0} already exists against same Purchase Order number").format(so[0][0]))
 
 	def validate_for_items(self):
-		check_list, flag = [], 0
-		chk_dupl_itm = []
+		check_list = []
 		for d in self.get('items'):
-			e = [d.item_code, d.description, d.warehouse, d.prevdoc_docname or '']
-			f = [d.item_code, d.description]
+			check_list.append(cstr(d.item_code))
 
 			if frappe.db.get_value("Item", d.item_code, "is_stock_item") == 'Yes':
 				if not d.warehouse:
 					frappe.throw(_("Reserved warehouse required for stock item {0}").format(d.item_code))
 
-				if e in check_list:
-					frappe.throw(_("Item {0} has been entered twice").format(d.item_code))
-				else:
-					check_list.append(e)
-			else:
-				if f in chk_dupl_itm:
-					frappe.throw(_("Item {0} has been entered twice").format(d.item_code))
-				else:
-					chk_dupl_itm.append(f)
-
 			# used for production plan
 			d.transaction_date = self.transaction_date
 
 			tot_avail_qty = frappe.db.sql("select projected_qty from `tabBin` \
 				where item_code = %s and warehouse = %s", (d.item_code,d.warehouse))
 			d.projected_qty = tot_avail_qty and flt(tot_avail_qty[0][0]) or 0
+		unique_chk_list = set(check_list)
+		if len(unique_chk_list) != len(check_list):
+			frappe.msgprint(_("Warning:Same item has been entered multiple times."))
 
 	def validate_sales_mntc_quotation(self):
 		for d in self.get('items'):