[fix] [minor] rejected warehouse in purchase receipt item now editable
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py
index 4d17db4..278becd 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -42,16 +42,46 @@
 	def get_bin_details(self, arg = ''):
 		return get_obj(dt='Purchase Common').get_bin_details(arg)
 
+	def validate(self):
+		super(DocType, self).validate()
+		
+		self.po_required()
+
+		if not self.doc.status:
+			self.doc.status = "Draft"
+
+		import utilities
+		utilities.validate_status(self.doc.status, ["Draft", "Submitted", "Cancelled"])
+
+		self.validate_with_previous_doc()
+		self.validate_rejected_warehouse()
+		self.validate_accepted_rejected_qty()
+		self.validate_inspection()
+		self.validate_uom_is_integer("uom", ["qty", "received_qty"])
+		self.validate_uom_is_integer("stock_uom", "stock_qty")
+		self.validate_challan_no()
+
+		pc_obj = get_obj(dt='Purchase Common')
+		pc_obj.validate_for_items(self)
+		pc_obj.get_prevdoc_date(self)
+		self.check_for_stopped_status(pc_obj)
+
+		# sub-contracting
+		self.validate_for_subcontracting()
+		self.update_raw_materials_supplied("pr_raw_material_details")
+		
+		self.update_valuation_rate("purchase_receipt_details")
+
+	def validate_rejected_warehouse(self):
+		for d in self.doclist.get({"parentfield": "purchase_receipt_details"}):
+			if flt(d.rejected_qty) and not d.rejected_warehouse:
+				d.rejected_warehouse = self.doc.rejected_warehouse
+				if not d.rejected_warehouse:
+					webnotes.throw(_("Rejected Warehouse is mandatory against regected item"))		
 
 	# validate accepted and rejected qty
 	def validate_accepted_rejected_qty(self):
 		for d in getlist(self.doclist, "purchase_receipt_details"):
-
-			# If Reject Qty than Rejected warehouse is mandatory
-			if flt(d.rejected_qty) and (not self.doc.rejected_warehouse):
-				msgprint("Rejected Warehouse is necessary if there are rejections.")
-				raise Exception
-
 			if not flt(d.received_qty) and flt(d.qty):
 				d.received_qty = flt(d.qty) - flt(d.rejected_qty)
 
@@ -110,40 +140,6 @@
 					 msgprint("Purchse Order No. required against item %s"%d.item_code)
 					 raise Exception
 
-	def validate(self):
-		super(DocType, self).validate()
-		
-		self.po_required()
-
-		if not self.doc.status:
-			self.doc.status = "Draft"
-
-		import utilities
-		utilities.validate_status(self.doc.status, ["Draft", "Submitted", "Cancelled"])
-
-		self.validate_with_previous_doc()
-		self.validate_accepted_rejected_qty()
-		self.validate_inspection()
-		self.validate_uom_is_integer("uom", ["qty", "received_qty"])
-		self.validate_uom_is_integer("stock_uom", "stock_qty")
-		self.validate_challan_no()
-
-		pc_obj = get_obj(dt='Purchase Common')
-		pc_obj.validate_for_items(self)
-		pc_obj.get_prevdoc_date(self)
-		self.check_for_stopped_status(pc_obj)
-
-		# sub-contracting
-		self.validate_for_subcontracting()
-		self.update_raw_materials_supplied("pr_raw_material_details")
-		
-		self.update_valuation_rate("purchase_receipt_details")
-		
-	def on_update(self):
-		if self.doc.rejected_warehouse:
-			for d in getlist(self.doclist,'purchase_receipt_details'):
-				d.rejected_warehouse = self.doc.rejected_warehouse
-
 	def update_stock(self):
 		sl_entries = []
 		stock_items = self.get_stock_items()
@@ -161,7 +157,7 @@
 				
 				if flt(d.rejected_qty) > 0:
 					sl_entries.append(self.get_sl_entries(d, {
-						"warehouse": self.doc.rejected_warehouse,
+						"warehouse": d.rejected_warehouse,
 						"actual_qty": flt(d.rejected_qty) * flt(d.conversion_factor),
 						"serial_no": cstr(d.rejected_serial_no).strip(),
 						"incoming_rate": d.valuation_rate
diff --git a/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt b/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
index ec3c8e3..ce49168 100755
--- a/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
+++ b/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:10", 
   "docstatus": 0, 
-  "modified": "2013-08-07 14:45:23", 
+  "modified": "2013-09-20 11:36:55", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -310,7 +310,7 @@
   "doctype": "DocField", 
   "fieldname": "rejected_warehouse", 
   "fieldtype": "Link", 
-  "hidden": 1, 
+  "hidden": 0, 
   "label": "Rejected Warehouse", 
   "no_copy": 1, 
   "oldfieldname": "rejected_warehouse", 
@@ -318,7 +318,7 @@
   "options": "Warehouse", 
   "print_hide": 1, 
   "print_width": "100px", 
-  "read_only": 1, 
+  "read_only": 0, 
   "width": "100px"
  }, 
  {