diff --git a/accounts/doctype/journal_voucher/journal_voucher.txt b/accounts/doctype/journal_voucher/journal_voucher.txt
index b30c4db..09c6148 100644
--- a/accounts/doctype/journal_voucher/journal_voucher.txt
+++ b/accounts/doctype/journal_voucher/journal_voucher.txt
@@ -2,9 +2,9 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2013-01-17 12:30:11", 
+  "creation": "2013-01-18 10:46:42", 
   "modified_by": "Administrator", 
-  "modified": "2013-01-17 14:27:43"
+  "modified": "2013-01-18 17:44:58"
  }, 
  {
   "autoname": "naming_series:", 
@@ -28,6 +28,7 @@
   "read": 1, 
   "doctype": "DocPerm", 
   "parenttype": "DocType", 
+  "report": 1, 
   "parentfield": "permissions"
  }, 
  {
@@ -102,8 +103,8 @@
  }, 
  {
   "print_hide": 0, 
-  "oldfieldtype": "Table", 
   "allow_on_submit": 1, 
+  "oldfieldtype": "Table", 
   "doctype": "DocField", 
   "label": "Entries", 
   "oldfieldname": "entries", 
@@ -461,26 +462,13 @@
   "permlevel": 1
  }, 
  {
-  "print_hide": 1, 
-  "no_copy": 1, 
-  "oldfieldtype": "Link", 
-  "doctype": "DocField", 
-  "label": "Supplier Account", 
-  "oldfieldname": "supplier_account", 
-  "options": "Account", 
-  "fieldname": "supplier_account", 
-  "fieldtype": "Link", 
-  "hidden": 0, 
-  "permlevel": 0
- }, 
- {
   "amend": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "role": "Accounts User", 
   "cancel": 1, 
+  "role": "Accounts User", 
   "permlevel": 0
  }, 
  {
@@ -489,8 +477,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "role": "Accounts User", 
   "cancel": 0, 
+  "role": "Accounts User", 
   "permlevel": 1
  }, 
  {
@@ -499,8 +487,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "role": "Accounts Manager", 
   "cancel": 0, 
+  "role": "Accounts Manager", 
   "permlevel": 1
  }, 
  {
@@ -509,8 +497,8 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "role": "Accounts Manager", 
   "cancel": 1, 
+  "role": "Accounts Manager", 
   "permlevel": 0
  }, 
  {
@@ -519,8 +507,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "role": "Auditor", 
   "cancel": 0, 
+  "role": "Auditor", 
   "permlevel": 0
  }, 
  {
@@ -529,8 +517,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "role": "Auditor", 
   "cancel": 0, 
+  "role": "Auditor", 
   "permlevel": 1
  }
 ]
\ No newline at end of file
diff --git a/hr/doctype/appraisal/appraisal.py b/hr/doctype/appraisal/appraisal.py
index 82fb77b..849e48a 100644
--- a/hr/doctype/appraisal/appraisal.py
+++ b/hr/doctype/appraisal/appraisal.py
@@ -29,7 +29,15 @@
 	def __init__(self, doc, doclist=[]):
 		self.doc = doc
 		self.doclist = doclist
-	
+
+	def validate(self):
+		if not self.doc.status:
+			self.doc.status = "Draft"
+
+		self.validate_dates()
+		self.validate_existing_appraisal()
+		self.calculate_total()
+
 	def get_employee_name(self):
 		emp_nm = sql("select employee_name from `tabEmployee` where name=%s", self.doc.employee)
 		emp_nm= emp_nm and emp_nm[0][0] or ''
@@ -47,25 +55,19 @@
 			raise Exception
 	
 	def validate_existing_appraisal(self):
-		chk = sql("select name from `tabAppraisal` where employee=%s and (status='Submitted' or status='Completed') and ((start_date>=%s and start_date<=%s) or (end_date>=%s and end_date<=%s))",(self.doc.employee,self.doc.start_date,self.doc.end_date,self.doc.start_date,self.doc.end_date))
+		chk = sql("""select name from `tabAppraisal` where employee=%s 
+			and (status='Submitted' or status='Completed') 
+			and ((start_date>=%s and start_date<=%s) 
+			or (end_date>=%s and end_date<=%s))""",(self.doc.employee,self.doc.start_date,self.doc.end_date,self.doc.start_date,self.doc.end_date))
 		if chk:
 			msgprint("You have already created Appraisal "\
 				+cstr(chk[0][0])+" in the current date range for employee "\
 				+cstr(self.doc.employee_name))
 			raise Exception
-		
-	def validate(self):
-		if not self.doc.status:
-			self.doc.status = "Draft"
-
-		self.validate_dates()
-		self.validate_existing_appraisal()
-		self.calculate_total()
 	
 	def calculate_total(self):
 		total, total_w  = 0, 0
 		for d in getlist(self.doclist, 'appraisal_details'):
-			
 			if d.score:
 				d.score_earned = flt(d.score) * flt(d.per_weightage) / 100
 				total = total + d.score_earned
@@ -74,9 +76,12 @@
 		if int(total_w) != 100:
 			msgprint("Total weightage assigned should be 100%. It is :" + str(total_w) + "%", 
 				raise_exception=1)
+
+		if webnotes.conn.get_default("employee", webnotes.session.user) != self.doc.employee:
 		
-		if total==0:
-			msgprint("Total can't be zero. You must atleast give some points!", raise_exception=1)
+			if total==0:
+				msgprint("Total can't be zero. You must atleast give some points!", raise_exception=1)
+
 		self.doc.total_score = total
 			
 	def on_submit(self):
diff --git a/manufacturing/doctype/production_planning_tool/production_planning_tool.txt b/manufacturing/doctype/production_planning_tool/production_planning_tool.txt
index d4a0d94..dc1eb51 100644
--- a/manufacturing/doctype/production_planning_tool/production_planning_tool.txt
+++ b/manufacturing/doctype/production_planning_tool/production_planning_tool.txt
@@ -2,9 +2,9 @@
  {
   "owner": "jai@webnotestech.com", 
   "docstatus": 0, 
-  "creation": "2013-01-16 14:48:56", 
+  "creation": "2013-01-19 10:23:35", 
   "modified_by": "Administrator", 
-  "modified": "2013-01-17 11:39:55"
+  "modified": "2013-01-19 10:55:55"
  }, 
  {
   "read_only": 1, 
@@ -31,8 +31,8 @@
   "submit": 0, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "report": 0, 
   "parenttype": "DocType", 
+  "report": 0, 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
@@ -70,9 +70,9 @@
  {
   "doctype": "DocField", 
   "label": "Company", 
-  "reqd": 1, 
   "fieldname": "company", 
   "fieldtype": "Link", 
+  "reqd": 1, 
   "options": "Company"
  }, 
  {
@@ -161,9 +161,9 @@
   "default": "1", 
   "doctype": "DocField", 
   "label": "Use Multi-Level BOM", 
-  "reqd": 0, 
   "fieldname": "use_multi_level_bom", 
-  "fieldtype": "Check"
+  "fieldtype": "Check", 
+  "reqd": 0
  }, 
  {
   "doctype": "DocField", 
@@ -181,9 +181,9 @@
  }, 
  {
   "doctype": "DocField", 
+  "label": "Materials Requirement Planning (MRP)", 
   "fieldname": "sb5", 
-  "fieldtype": "Section Break", 
-  "options": "Simple"
+  "fieldtype": "Section Break"
  }, 
  {
   "description": "Download a report containing all raw materials with their latest inventory status", 
@@ -214,6 +214,10 @@
   "options": "raise_purchase_request"
  }, 
  {
+  "role": "System Manager", 
+  "doctype": "DocPerm"
+ }, 
+ {
   "role": "Manufacturing User", 
   "doctype": "DocPerm"
  }, 
diff --git a/patches/january_2013/change_patch_structure.py b/patches/january_2013/change_patch_structure.py
index 37c4f08..1370cdd 100644
--- a/patches/january_2013/change_patch_structure.py
+++ b/patches/january_2013/change_patch_structure.py
@@ -2,11 +2,12 @@
 
 def execute():
 	webnotes.reload_doc("core", "doctype", "patch_log")
-	for d in webnotes.conn.sql("""select patch from __PatchLog"""):
-		webnotes.doc({
-			"doctype": "Patch Log",
-			"patch": d[0]
-		}).insert()
+	if webnotes.conn.table_exists("__PatchLog"):
+		for d in webnotes.conn.sql("""select patch from __PatchLog"""):
+			webnotes.doc({
+				"doctype": "Patch Log",
+				"patch": d[0]
+			}).insert()
 	
-	webnotes.conn.commit()
-	webnotes.conn.sql("drop table __PatchLog")
\ No newline at end of file
+		webnotes.conn.commit()
+		webnotes.conn.sql("drop table __PatchLog")
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 16310ea..2788093 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -151,5 +151,6 @@
 	"patches.january_2013.change_patch_structure",
 	"patches.january_2013.update_country_info",
 	"patches.january_2013.remove_tds_entry_from_gl_mapper",
+	"patches.january_2013.update_number_format",
 	"patches.january_2013.purchase_price_list",
 ]
\ No newline at end of file
diff --git a/setup/doctype/currency/currency.js b/setup/doctype/currency/currency.js
index cd42c18..9a18372 100644
--- a/setup/doctype/currency/currency.js
+++ b/setup/doctype/currency/currency.js
@@ -1,3 +1,2 @@
 cur_frm.cscript.refresh = function(doc) {
-	cur_frm.set_intro(doc.__islocal ? "" : "There is nothing to edit.")
 }
\ No newline at end of file
diff --git a/setup/doctype/currency/currency.txt b/setup/doctype/currency/currency.txt
index fd75525..c8dbb62 100644
--- a/setup/doctype/currency/currency.txt
+++ b/setup/doctype/currency/currency.txt
@@ -2,9 +2,9 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2013-01-17 12:30:28", 
+  "creation": "2013-01-19 10:23:31", 
   "modified_by": "Administrator", 
-  "modified": "2013-01-17 16:24:59"
+  "modified": "2013-01-19 11:10:45"
  }, 
  {
   "read_only": 0, 
@@ -27,8 +27,12 @@
   "name": "__common__", 
   "parent": "Currency", 
   "read": 1, 
+  "create": 1, 
+  "submit": 0, 
   "doctype": "DocPerm", 
+  "write": 1, 
   "parenttype": "DocType", 
+  "report": 1, 
   "permlevel": 0, 
   "parentfield": "permissions"
  }, 
@@ -64,17 +68,26 @@
   "fieldtype": "Data"
  }, 
  {
+  "doctype": "DocField", 
+  "label": "Number Format", 
+  "fieldname": "number_format", 
+  "fieldtype": "Data"
+ }, 
+ {
+  "cancel": 1, 
+  "role": "Accounts Manager", 
+  "doctype": "DocPerm"
+ }, 
+ {
   "amend": 0, 
-  "create": 1, 
   "doctype": "DocPerm", 
-  "submit": 0, 
-  "write": 1, 
-  "report": 1, 
-  "role": "System Manager", 
+  "role": "Sales Master Manager", 
   "cancel": 1
  }, 
  {
-  "role": "All", 
-  "doctype": "DocPerm"
+  "amend": 0, 
+  "doctype": "DocPerm", 
+  "role": "Purchase Master Manager", 
+  "cancel": 0
  }
 ]
\ No newline at end of file
diff --git a/startup/install.py b/startup/install.py
index e24f815..00b7b84 100644
--- a/startup/install.py
+++ b/startup/install.py
@@ -94,7 +94,8 @@
 				"currency_name": country.currency,
 				"fraction": country.currency_fraction,
 				"symbol": country.currency_symbol,
-				"fraction_units": country.currency_fraction_units
+				"fraction_units": country.currency_fraction_units,
+				"number_format": country.number_format
 			}).insert()
 
 def import_defaults():
diff --git a/stock/doctype/item/item.js b/stock/doctype/item/item.js
index ab8fb43..6c2c882 100644
--- a/stock/doctype/item/item.js
+++ b/stock/doctype/item/item.js
@@ -36,20 +36,6 @@
 	if(!doc.description) cur_frm.set_value("description", doc.item_code);
 }
 
-cur_frm.cscript.hide_website_fields = function(doc) {
-	var website_fields_list = ['page_name', 'website_image', 'web_short_description',
-								'web_long_description'];
-	if (doc && cint(doc.show_in_website)) {
-		unhide_field(website_fields_list);
-	} else {
-		hide_field(website_fields_list);
-	}
-}
-
-cur_frm.cscript.show_in_website = function(doc, dt, dn) {
-	cur_frm.cscript.hide_website_fields(doc);
-}
-
 cur_frm.fields_dict['default_bom'].get_query = function(doc) {
    //var d = locals[this.doctype][this.docname];
    return 'SELECT DISTINCT `tabBOM`.`name` FROM `tabBOM` WHERE `tabBOM`.`item` = "' + doc.item_code + '"  AND ifnull(`tabBOM`.`is_active`, 0) = 0 and `tabBOM`.docstatus != 2 AND `tabBOM`.%(key)s LIKE "%s" ORDER BY `tabBOM`.`name` LIMIT 50'
diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py
index cca814f..748f01a 100644
--- a/stock/doctype/item/item.py
+++ b/stock/doctype/item/item.py
@@ -77,7 +77,12 @@
 
 	def update_website(self):
 		from website.utils import update_page_name
-		update_page_name(self.doc, self.doc.name + " " + self.doc.item_name)
+		if self.doc.name==self.doc.item_name:
+			page_name_from = self.doc.name
+		else:
+			page_name_from = self.doc.name + " " + self.doc.item_name
+
+		update_page_name(self.doc, page_name_from)
 		
 		from website.helpers.product import invalidate_cache_for
 		invalidate_cache_for(self.doc.item_group)
diff --git a/stock/doctype/item/item.txt b/stock/doctype/item/item.txt
index 9608367..c7e88cc 100644
--- a/stock/doctype/item/item.txt
+++ b/stock/doctype/item/item.txt
@@ -32,9 +32,10 @@
   "read": 1, 
   "submit": 0, 
   "doctype": "DocPerm", 
-  "amend": 0, 
   "parenttype": "DocType", 
   "report": 1, 
+  "permlevel": 0, 
+  "amend": 0, 
   "parentfield": "permissions"
  }, 
  {
@@ -423,6 +424,7 @@
   "permlevel": 1
  }, 
  {
+  "read_only": 1, 
   "no_copy": 1, 
   "oldfieldtype": "Currency", 
   "doctype": "DocField", 
@@ -431,7 +433,7 @@
   "fieldname": "last_purchase_rate", 
   "fieldtype": "Currency", 
   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
-  "permlevel": 1
+  "permlevel": 0
  }, 
  {
   "oldfieldtype": "Currency", 
@@ -776,11 +778,12 @@
  }, 
  {
   "description": "Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list.", 
-  "search_index": 1, 
+  "depends_on": "show_in_website", 
   "doctype": "DocField", 
   "label": "Weightage", 
   "fieldname": "weightage", 
   "fieldtype": "Int", 
+  "search_index": 1, 
   "permlevel": 0
  }, 
  {
@@ -864,35 +867,26 @@
   "permlevel": 0
  }, 
  {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "write": 0, 
+  "role": "Material Manager", 
+  "cancel": 0
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "write": 0, 
+  "role": "Material User", 
+  "cancel": 0
+ }, 
+ {
   "create": 1, 
   "doctype": "DocPerm", 
   "write": 1, 
-  "cancel": 1, 
   "role": "Material Master Manager", 
-  "permlevel": 0
- }, 
- {
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "write": 0, 
-  "cancel": 0, 
-  "role": "Material User", 
-  "permlevel": 0
- }, 
- {
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "write": 0, 
-  "cancel": 0, 
-  "role": "Material Master Manager", 
-  "permlevel": 1
- }, 
- {
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "write": 0, 
-  "cancel": 0, 
-  "role": "Material User", 
-  "permlevel": 1
+  "cancel": 1
  }
 ]
\ No newline at end of file
diff --git a/stock/doctype/stock_entry/stock_entry.py b/stock/doctype/stock_entry/stock_entry.py
index 00ae0e0..6d09045 100644
--- a/stock/doctype/stock_entry/stock_entry.py
+++ b/stock/doctype/stock_entry/stock_entry.py
@@ -17,10 +17,9 @@
 from __future__ import unicode_literals
 import webnotes
 
-from webnotes.utils import cstr, cint, flt, getdate, now, comma_or
-from webnotes.model import db_exists, delete_doc
+from webnotes.utils import cstr, cint, flt, comma_or
 from webnotes.model.doc import Document, addchild
-from webnotes.model.wrapper import getlist, copy_doclist
+from webnotes.model.wrapper import getlist
 from webnotes.model.code import get_obj
 from webnotes import msgprint, _
 from stock.utils import get_incoming_rate
@@ -51,6 +50,7 @@
 		self.validate_incoming_rate()
 		self.validate_bom()
 		self.validate_finished_goods()
+		self.validate_return_reference_doc()
 		
 	def on_submit(self):
 		self.update_serial_no(1)
@@ -85,6 +85,15 @@
 		validate_for_manufacture_repack = any([d.bom_no for d in self.doclist.get(
 			{"parentfield": "mtn_details"})])
 
+		if self.doc.purpose in source_mandatory and self.doc.purpose not in target_mandatory:
+			self.doc.to_warehouse = None
+			for d in getlist(self.doclist, 'mtn_details'):
+				d.t_warehouse = None
+		elif self.doc.purpose in target_mandatory and self.doc.purpose not in source_mandatory:
+			self.doc.from_warehouse = None
+			for d in getlist(self.doclist, 'mtn_details'):
+				d.s_warehouse = None
+
 		for d in getlist(self.doclist, 'mtn_details'):
 			if not d.s_warehouse and not d.t_warehouse:
 				d.s_warehouse = self.doc.from_warehouse
@@ -93,21 +102,13 @@
 			if not (d.s_warehouse or d.t_warehouse):
 				msgprint(_("Atleast one warehouse is mandatory"), raise_exception=1)
 			
-			if self.doc.purpose in source_mandatory:
-				if not d.s_warehouse:
-					msgprint(_("Row # ") + "%s: " % cint(d.idx)
-						+ _("Source Warehouse") + _(" is mandatory"), raise_exception=1)
-
-				if self.doc.purpose not in target_mandatory:
-					d.t_warehouse = None
+			if self.doc.purpose in source_mandatory and not d.s_warehouse:
+				msgprint(_("Row # ") + "%s: " % cint(d.idx)
+					+ _("Source Warehouse") + _(" is mandatory"), raise_exception=1)
 				
-			if self.doc.purpose in target_mandatory:
-				if not d.t_warehouse:
-					msgprint(_("Row # ") + "%s: " % cint(d.idx)
-						+ _("Target Warehouse") + _(" is mandatory"), raise_exception=1)
-						
-				if self.doc.purpose not in source_mandatory:
-					d.s_warehouse = None
+			if self.doc.purpose in target_mandatory and not d.t_warehouse:
+				msgprint(_("Row # ") + "%s: " % cint(d.idx)
+					+ _("Target Warehouse") + _(" is mandatory"), raise_exception=1)
 
 			if self.doc.purpose == "Manufacture/Repack":
 				if validate_for_manufacture_repack:
@@ -225,7 +226,28 @@
 					+ _("Quantity should be equal to Manufacturing Quantity. ")
 					+ _("To fetch items again, click on 'Get Items' button \
 						or update the Quantity manually."), raise_exception=1)
+						
+	def validate_return_reference_doc(self):
+		""" validate item with reference doc"""
+		ref_doctype = ref_docname = ""
+		if self.doc.purpose == "Sales Return" and \
+				(self.doc.delivery_note_no or self.doc.sales_invoice_no):
+			ref_doctype = self.doc.delivery_note_no and "Delivery Note" or "Sales Invoice"
+			ref_docname = self.doc.delivery_note_no or self.doc.sales_invoice_no
+		elif self.doc.purpose == "Purchase Return" and self.doc.purchase_receipt_no:
+			ref_doctype = "Purchase Receipt"
+			ref_docname = self.doc.purchase_receipt_no
+			
+		if ref_doctype and ref_docname:
+			for item in self.doclist.get({"parentfield": "mtn_details"}):
+				ref_exists = webnotes.conn.sql("""select name from `tab%s` 
+					where parent = %s and item_code = %s and docstatus=1""" % 
+					(ref_doctype + " Item", '%s', '%s'), (ref_docname, item.item_code))
 					
+				if not ref_exists:
+					msgprint(_("Item: '") + item.item_code + _("' does not exists in ") +
+						ref_doctype + ": " + ref_docname, raise_exception=1)
+			
 	def update_serial_no(self, is_submit):
 		"""Create / Update Serial No"""
 		from stock.utils import get_valid_serial_nos
diff --git a/website/helpers/contact.py b/website/helpers/contact.py
index df4510f..a9499ab 100644
--- a/website/helpers/contact.py
+++ b/website/helpers/contact.py
@@ -50,7 +50,7 @@
 		lead.ignore_permissions = True
 		lead.insert()
 	
-	make(content=message, sender=sender, 
+	make(content=message, sender=sender, subject=subject,
 		doctype="Lead", name=lead.doc.name, lead=lead.doc.name)
 
 	
