diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 97848a3..29fde39 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -636,49 +636,6 @@
 
 		self.make_gl_entries(is_cancel=1)
 
-	# Get Warehouse
-	def get_warehouse(self):
-		w = webnotes.conn.sql("select warehouse from `tabPOS Setting` where ifnull(user,'') = '%s' and company = '%s'" % (session['user'], self.doc.company))
-		w = w and w[0][0] or ''
-		if not w:
-			ps = webnotes.conn.sql("select name, warehouse from `tabPOS Setting` where ifnull(user,'') = '' and company = '%s'" % self.doc.company)
-			if not ps:
-				msgprint("To make POS entry, please create POS Setting from Setup --> Accounts --> POS Setting and refresh the system.")
-				raise Exception
-			elif not ps[0][1]:
-				msgprint("Please enter warehouse in POS Setting")
-			else:
-				w = ps[0][1]
-		return w
-
-	# on update
-	def on_update(self):
-		# Set default warehouse from pos setting
-		#----------------------------------------
-		if cint(self.doc.is_pos) == 1:
-			self.set_actual_qty()
-			w = self.get_warehouse()
-			if w:
-				for d in getlist(self.doclist, 'entries'):
-					if not d.warehouse:
-						d.warehouse = cstr(w)
-
-			if flt(self.doc.paid_amount) == 0:
-				if self.doc.cash_bank_account: 
-					webnotes.conn.set(self.doc, 'paid_amount', 
-						(flt(self.doc.grand_total) - flt(self.doc.write_off_amount)))
-				else:
-					# show message that the amount is not paid
-					webnotes.conn.set(self.doc,'paid_amount',0)
-					webnotes.msgprint("Note: Payment Entry not created since 'Cash/Bank Account' was not specified.")
-
-		else:
-			webnotes.conn.set(self.doc,'paid_amount',0)
-
-		webnotes.conn.set(self.doc,'outstanding_amount',flt(self.doc.grand_total) - flt(self.doc.total_advance) - flt(self.doc.paid_amount) - flt(self.doc.write_off_amount))
-
-	#-------------------------------------------------------------------------------------
-
 	def set_default_recurring_values(self):
 		from webnotes.utils import cstr
 
diff --git a/erpnext/accounts/doctype/tds_detail/tds_detail.txt b/erpnext/accounts/doctype/tds_detail/tds_detail.txt
index c248e73..b15e346 100644
--- a/erpnext/accounts/doctype/tds_detail/tds_detail.txt
+++ b/erpnext/accounts/doctype/tds_detail/tds_detail.txt
@@ -3,30 +3,30 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-27 14:35:48',
-		'docstatus': 0,
-		'modified': '2012-03-27 14:35:48',
-		'modified_by': u'Administrator',
-		'owner': u'wasim@webnotestech.com'
+		u'creation': '2012-07-03 13:29:51',
+		u'docstatus': 0,
+		u'modified': '2012-09-17 11:08:28',
+		u'modified_by': u'Administrator',
+		u'owner': u'wasim@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
 		'colour': u'White:FFF',
-		'doctype': 'DocType',
+		u'doctype': u'DocType',
 		'istable': 1,
 		'module': u'Accounts',
-		'name': '__common__',
+		u'name': u'__common__',
 		'section_style': u'Simple',
 		'server_code_error': u' ',
 		'show_in_menu': 0,
-		'version': 2
+		'version': 1
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': u'DocField',
-		'name': '__common__',
+		u'doctype': u'DocField',
+		u'name': u'__common__',
 		'parent': u'TDS Detail',
 		'parentfield': u'fields',
 		'parenttype': u'DocType',
@@ -36,54 +36,24 @@
 
 	# These values are common for all DocPerm
 	{
-		'doctype': u'DocPerm',
-		'name': '__common__',
+		u'doctype': u'DocPerm',
+		u'name': u'__common__',
 		'parent': u'TDS Detail',
 		'parentfield': u'permissions',
 		'parenttype': u'DocType',
-		'read': 1
+		'read': 1,
+		'role': u'System Manager'
 	},
 
 	# DocType, TDS Detail
 	{
-		'doctype': 'DocType',
-		'name': u'TDS Detail'
-	},
-
-	# DocPerm
-	{
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'All',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'All'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'System Manager'
+		u'doctype': u'DocType',
+		u'name': u'TDS Detail'
 	},
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'tds_category',
 		'fieldtype': u'Select',
 		'label': u'TDS Category',
@@ -94,7 +64,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'special_tds_rate_applicable',
 		'fieldtype': u'Select',
 		'label': u'Special TDS Rate Applicable',
@@ -105,7 +75,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'special_tds_rate',
 		'fieldtype': u'Currency',
 		'label': u'Special TDS Rate(Section-197)\t',
@@ -115,11 +85,24 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'special_tds_limit',
 		'fieldtype': u'Currency',
 		'label': u'Special TDS Limit',
 		'oldfieldname': u'special_tds_limit',
 		'oldfieldtype': u'Currency'
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.py b/erpnext/buying/doctype/purchase_common/purchase_common.py
index b8424ab..a1a41ca 100644
--- a/erpnext/buying/doctype/purchase_common/purchase_common.py
+++ b/erpnext/buying/doctype/purchase_common/purchase_common.py
@@ -265,6 +265,11 @@
 				else:
 					# if no last purchase found, reset all values to 0
 					d.purchase_ref_rate = d.purchase_rate = d.import_ref_rate = d.import_rate = d.discount_rate = 0
+					
+					item_last_purchase_rate = webnotes.conn.get_value("Item",
+						d.item_code, "last_purchase_rate")
+					if item_last_purchase_rate:
+						d.purchase_ref_rate = item_last_purchase_rate
 			
 	def get_last_purchase_details(self, item_code, doc_name):
 		import webnotes
diff --git a/erpnext/patches/patch_list.py b/erpnext/patches/patch_list.py
index 9109b8e..5a38c5b 100644
--- a/erpnext/patches/patch_list.py
+++ b/erpnext/patches/patch_list.py
@@ -513,11 +513,6 @@
 	},
 	{
 		'patch_module': 'patches.july_2012',
-		'patch_file': 'unicode_conf',
-		'description': "appends from __future__ import unicode_literals to py files if necessary"
-	},
-	{
-		'patch_module': 'patches.july_2012',
 		'patch_file': 'sync_trial_balance',
 		'description': "sync trial balance"
 	},
@@ -577,4 +572,12 @@
 		'patch_module': 'patches.september_2012',
 		'patch_file': 'reload_criteria_stock_ledger',
 	},
+	{
+		'patch_module': 'patches.september_2012',
+		'patch_file': 'all_permissions_patch',
+	},
+	{
+		'patch_module': 'patches.september_2012',
+		'patch_file': 'customer_permission_patch',
+	},
 ]
diff --git a/erpnext/patches/september_2012/all_permissions_patch.py b/erpnext/patches/september_2012/all_permissions_patch.py
new file mode 100644
index 0000000..ab06b71
--- /dev/null
+++ b/erpnext/patches/september_2012/all_permissions_patch.py
@@ -0,0 +1,24 @@
+from __future__ import unicode_literals
+import webnotes
+def execute():
+	web_cache_perms()
+	stock_perms()
+	project_perms()
+	account_perms()
+	
+def web_cache_perms():
+	webnotes.conn.sql("""update `tabDocPerm`
+		set role='Guest' where parent='Web Cache' and role='All' and permlevel=0""")
+		
+def project_perms():
+	webnotes.conn.sql("""delete from `tabDocPerm`
+		where parent in ('Task', 'Project Activity') and role='All'""")
+
+def stock_perms():
+	webnotes.conn.sql("""delete from `tabDocPerm`
+		where parent in ('Landed Cost Master', 'Landed Cost Wizard', 
+		'Sales and Purchase Return Tool') and role='All' and permlevel=0""")
+		
+def account_perms():
+	# since it is a child doctype, it does not need permissions
+	webnotes.conn.sql("""delete from tabDocPerm where parent='TDS Detail'""")
diff --git a/erpnext/patches/september_2012/customer_permission_patch.py b/erpnext/patches/september_2012/customer_permission_patch.py
new file mode 100644
index 0000000..a820cbe
--- /dev/null
+++ b/erpnext/patches/september_2012/customer_permission_patch.py
@@ -0,0 +1,29 @@
+from __future__ import unicode_literals
+def execute():
+	from webnotes.model.doc import Document
+	perms = []
+	# create permissions for permlevel 2 assigned to "Credit Days" and "Credit Limit"
+	# 2 Accounts Manager r,w
+	# 2 System Manager r,w
+	perms.append([2, "Accounts Manager", 1, 1, 0, 0])
+	perms.append([2, "System Manager", 1, 1, 0, 0])
+	perms.append([2, "All", 1, 0, 0, 0])
+
+	# read, write, create, cancel perm for Accounts Manager for permlevel 0
+	perms.append([0, "Accounts Manager", 1, 1, 1, 1])
+
+	# permlevel 1 read permission for 'All'
+	# 1 All r
+	perms.append([1, "All", 1, 0, 0, 0])
+
+	for p in perms:
+		d = Document("DocPerm", fielddata={
+			"parent": "Customer",
+			"parentfield": "permissions",
+			"permlevel": p[0],
+			"role": p[1],
+			"read": p[2],
+			"write": p[3],
+			"create": p[4],
+			"cancel": p[5]
+		}).save(1)
\ No newline at end of file
diff --git a/erpnext/projects/doctype/task/task.txt b/erpnext/projects/doctype/task/task.txt
index e5a5602..07a9343 100644
--- a/erpnext/projects/doctype/task/task.txt
+++ b/erpnext/projects/doctype/task/task.txt
@@ -3,11 +3,11 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-06-04 14:05:07',
-		'docstatus': 0,
-		'modified': '2012-08-08 14:01:34',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
+		u'creation': '2012-08-08 15:39:55',
+		u'docstatus': 0,
+		u'modified': '2012-09-17 10:58:32',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
@@ -17,10 +17,10 @@
 		'autoname': u'TASK.#####',
 		'colour': u'White:FFF',
 		'default_print_format': u'Standard',
-		'doctype': 'DocType',
+		u'doctype': u'DocType',
 		'document_type': u'Master',
 		'module': u'Projects',
-		'name': '__common__',
+		u'name': u'__common__',
 		'section_style': u'Tray',
 		'server_code_error': u' ',
 		'show_in_menu': 0,
@@ -31,8 +31,8 @@
 
 	# These values are common for all DocField
 	{
-		'doctype': u'DocField',
-		'name': '__common__',
+		u'doctype': u'DocField',
+		u'name': u'__common__',
 		'parent': u'Task',
 		'parentfield': u'fields',
 		'parenttype': u'DocType',
@@ -41,60 +41,24 @@
 
 	# These values are common for all DocPerm
 	{
-		'doctype': u'DocPerm',
-		'name': '__common__',
+		u'doctype': u'DocPerm',
+		u'name': u'__common__',
 		'parent': u'Task',
 		'parentfield': u'permissions',
 		'parenttype': u'DocType',
-		'read': 1
+		'read': 1,
+		'role': u'Projects User'
 	},
 
 	# DocType, Task
 	{
-		'doctype': 'DocType',
-		'name': u'Task'
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'All',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'All',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Projects User',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Projects User'
+		u'doctype': u'DocType',
+		u'name': u'Task'
 	},
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'task_details',
 		'fieldtype': u'Section Break',
 		'label': u'Task Details',
@@ -105,7 +69,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'subject',
 		'fieldtype': u'Data',
 		'in_filter': 1,
@@ -117,7 +81,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'exp_start_date',
 		'fieldtype': u'Date',
 		'label': u'Expected Start Date',
@@ -128,7 +92,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'exp_end_date',
 		'fieldtype': u'Date',
 		'in_filter': 1,
@@ -141,7 +105,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'column_break0',
 		'fieldtype': u'Column Break',
 		'oldfieldtype': u'Column Break',
@@ -151,7 +115,7 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'project',
 		'fieldtype': u'Link',
 		'label': u'Project',
@@ -164,7 +128,7 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'status',
 		'fieldtype': u'Select',
 		'label': u'Status',
@@ -177,7 +141,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'priority',
 		'fieldtype': u'Select',
 		'in_filter': 1,
@@ -191,7 +155,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'section_break0',
 		'fieldtype': u'Section Break',
 		'oldfieldtype': u'Section Break',
@@ -200,7 +164,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'description',
 		'fieldtype': u'Text Editor',
 		'label': u'Details',
@@ -212,7 +176,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'time_and_budget',
 		'fieldtype': u'Section Break',
 		'label': u'Time and Budget',
@@ -221,7 +185,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'expected',
 		'fieldtype': u'Column Break',
 		'label': u'Expected',
@@ -231,7 +195,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'exp_total_hrs',
 		'fieldtype': u'Data',
 		'label': u'Total Hours (Expected)',
@@ -242,7 +206,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'allocated_budget',
 		'fieldtype': u'Currency',
 		'label': u'Allocated Budget',
@@ -252,7 +216,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'actual',
 		'fieldtype': u'Column Break',
 		'label': u'Actual',
@@ -262,7 +226,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'act_start_date',
 		'fieldtype': u'Date',
 		'label': u'Actual Start Date',
@@ -272,7 +236,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'act_end_date',
 		'fieldtype': u'Date',
 		'label': u'Actual End Date',
@@ -282,7 +246,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'act_total_hrs',
 		'fieldtype': u'Data',
 		'label': u'Total Hours (Actual)',
@@ -292,7 +256,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'actual_budget',
 		'fieldtype': u'Currency',
 		'label': u'Actual Budget',
@@ -302,7 +266,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'more_details',
 		'fieldtype': u'Section Break',
 		'label': u'More Details'
@@ -312,7 +276,7 @@
 	{
 		'colour': u'White:FFF',
 		'depends_on': u'eval:doc.status == "Closed" || doc.status == "Pending Review"',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'review_date',
 		'fieldtype': u'Date',
 		'hidden': 1,
@@ -325,12 +289,27 @@
 	{
 		'colour': u'White:FFF',
 		'depends_on': u'eval:doc.status == "Closed"',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'closing_date',
 		'fieldtype': u'Date',
 		'hidden': 1,
 		'label': u'Closing Date',
 		'oldfieldname': u'closing_date',
 		'oldfieldtype': u'Date'
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/customer/customer.txt b/erpnext/selling/doctype/customer/customer.txt
index 121fa32..f95121f 100644
--- a/erpnext/selling/doctype/customer/customer.txt
+++ b/erpnext/selling/doctype/customer/customer.txt
@@ -3,11 +3,11 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-07-18 16:07:05',
-		'docstatus': 0,
-		'modified': '2012-07-18 17:11:25',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
+		u'creation': '2012-07-18 20:34:41',
+		u'docstatus': 0,
+		u'modified': '2012-09-17 11:31:55',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
@@ -17,10 +17,10 @@
 		'allow_trash': 1,
 		'colour': u'White:FFF',
 		'default_print_format': u'Standard',
-		'doctype': 'DocType',
+		u'doctype': u'DocType',
 		'document_type': u'Master',
 		'module': u'Selling',
-		'name': '__common__',
+		u'name': u'__common__',
 		'search_fields': u'customer_name,customer_group,country,territory',
 		'section_style': u'Tabbed',
 		'server_code_error': u' ',
@@ -32,8 +32,8 @@
 
 	# These values are common for all DocField
 	{
-		'doctype': u'DocField',
-		'name': '__common__',
+		u'doctype': u'DocField',
+		u'name': u'__common__',
 		'parent': u'Customer',
 		'parentfield': u'fields',
 		'parenttype': u'DocType'
@@ -41,87 +41,25 @@
 
 	# These values are common for all DocPerm
 	{
-		'amend': 0,
-		'doctype': u'DocPerm',
-		'name': '__common__',
+		u'doctype': u'DocPerm',
+		u'name': u'__common__',
 		'parent': u'Customer',
 		'parentfield': u'permissions',
 		'parenttype': u'DocType',
-		'read': 1,
-		'submit': 0
+		'read': 1
 	},
 
 	# DocType, Customer
 	{
-		'doctype': 'DocType',
-		'name': u'Customer'
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Sales Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Sales Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Sales User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Sales User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Sales Master Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Sales Master Manager',
-		'write': 0
+		u'doctype': u'DocType',
+		u'name': u'Customer'
 	},
 
 	# DocField
 	{
 		'colour': u'White:FFF',
 		'description': u'Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'basic_info',
 		'fieldtype': u'Section Break',
 		'label': u'Basic Info',
@@ -132,7 +70,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'customer_name',
 		'fieldtype': u'Data',
 		'hidden': 0,
@@ -150,7 +88,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'customer_type',
 		'fieldtype': u'Select',
 		'label': u'Customer Type',
@@ -163,7 +101,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'naming_series',
 		'fieldtype': u'Select',
 		'label': u'Series',
@@ -177,7 +115,7 @@
 	{
 		'colour': u'White:FFF',
 		'description': u'Fetch lead which will be converted into customer.',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'lead_name',
 		'fieldtype': u'Link',
 		'hidden': 0,
@@ -195,7 +133,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'column_break0',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
@@ -206,7 +144,7 @@
 	{
 		'colour': u'White:FFF',
 		'description': u'<a href="#!Sales Browser/Customer Group">To manage Customer Groups, click here</a>',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'customer_group',
 		'fieldtype': u'Link',
 		'hidden': 0,
@@ -226,7 +164,7 @@
 	{
 		'colour': u'White:FFF',
 		'description': u'<a href="#!Sales Browser/Territory">To manage Territory, click here</a>',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'territory',
 		'fieldtype': u'Link',
 		'label': u'Territory',
@@ -242,7 +180,7 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'address_contacts',
 		'fieldtype': u'Section Break',
 		'label': u'Address & Contacts',
@@ -253,7 +191,7 @@
 	{
 		'colour': u'White:FFF',
 		'depends_on': u'eval:doc.__islocal',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'address_desc',
 		'fieldtype': u'HTML',
 		'label': u'Address Desc',
@@ -264,7 +202,7 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'address_html',
 		'fieldtype': u'HTML',
 		'label': u'Address HTML',
@@ -273,7 +211,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'column_break1',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
@@ -284,7 +222,7 @@
 	{
 		'colour': u'White:FFF',
 		'depends_on': u'eval:doc.__islocal',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'contact_desc',
 		'fieldtype': u'HTML',
 		'label': u'Contact Desc',
@@ -295,7 +233,7 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'contact_html',
 		'fieldtype': u'HTML',
 		'label': u'Contact HTML',
@@ -305,7 +243,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'communication_history',
 		'fieldtype': u'Section Break',
 		'label': u'Communication History',
@@ -314,7 +252,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'communication_html',
 		'fieldtype': u'HTML',
 		'label': u'Communication HTML',
@@ -324,7 +262,7 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'more_info',
 		'fieldtype': u'Section Break',
 		'label': u'More Info',
@@ -334,7 +272,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'column_break2',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
@@ -345,7 +283,7 @@
 	{
 		'colour': u'White:FFF',
 		'description': u'To create an Account Head under a different company, select the company and save customer.',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'company',
 		'fieldtype': u'Link',
 		'in_filter': 1,
@@ -360,7 +298,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'default_price_list',
 		'fieldtype': u'Link',
 		'label': u'Default Price List',
@@ -372,7 +310,7 @@
 	{
 		'colour': u'White:FFF',
 		'description': u'This currency will get fetched in Sales transactions of this customer',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'default_currency',
 		'fieldtype': u'Select',
 		'label': u'Default Currency',
@@ -385,7 +323,7 @@
 	{
 		'colour': u'White:FFF',
 		'description': u"Your Customer's TAX registration numbers (if applicable) or any general information",
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'customer_details',
 		'fieldtype': u'Text',
 		'label': u'Customer Details',
@@ -396,7 +334,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'column_break3',
 		'fieldtype': u'Column Break',
 		'permlevel': 0,
@@ -405,29 +343,29 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'credit_days',
 		'fieldtype': u'Int',
 		'label': u'Credit Days',
 		'oldfieldname': u'credit_days',
 		'oldfieldtype': u'Int',
-		'permlevel': 0
+		'permlevel': 2
 	},
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'credit_limit',
 		'fieldtype': u'Currency',
 		'label': u'Credit Limit',
 		'oldfieldname': u'credit_limit',
 		'oldfieldtype': u'Currency',
-		'permlevel': 0
+		'permlevel': 2
 	},
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'website',
 		'fieldtype': u'Data',
 		'label': u'Website',
@@ -436,7 +374,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'sales_team_section_break',
 		'fieldtype': u'Section Break',
 		'label': u'Sales Team',
@@ -446,7 +384,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'default_sales_partner',
 		'fieldtype': u'Link',
 		'label': u'Default Sales Partner',
@@ -458,7 +396,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'default_commission_rate',
 		'fieldtype': u'Currency',
 		'label': u'Default Commission Rate',
@@ -469,7 +407,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'sales_team',
 		'fieldtype': u'Table',
 		'label': u'Sales Team Details',
@@ -483,7 +421,7 @@
 	{
 		'colour': u'White:FFF',
 		'depends_on': u'eval:!doc.__islocal',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'transaction_history',
 		'fieldtype': u'Section Break',
 		'label': u'Transaction History',
@@ -494,7 +432,7 @@
 	{
 		'colour': u'White:FFF',
 		'depends_on': u'eval:!doc.__islocal',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'history_html',
 		'fieldtype': u'HTML',
 		'label': u'History HTML',
@@ -504,12 +442,93 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'trash_reason',
 		'fieldtype': u'Small Text',
 		'label': u'Trash Reason',
 		'oldfieldname': u'trash_reason',
 		'oldfieldtype': u'Small Text',
 		'permlevel': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 1,
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Master Manager',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 2,
+		'role': u'Accounts Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 2,
+		'role': u'System Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 2,
+		'role': u'All'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/startup/report_data_map.py b/erpnext/startup/report_data_map.py
index 45c9412..8e6761a 100644
--- a/erpnext/startup/report_data_map.py
+++ b/erpnext/startup/report_data_map.py
@@ -14,6 +14,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+from __future__ import unicode_literals
 data_map = {
 	"Account": {
 		"columns": ["name", "parent_account", "lft", "rgt", "debit_or_credit", "is_pl_account",
diff --git a/erpnext/stock/doctype/landed_cost_master/landed_cost_master.txt b/erpnext/stock/doctype/landed_cost_master/landed_cost_master.txt
index f84eafe..7271b68 100644
--- a/erpnext/stock/doctype/landed_cost_master/landed_cost_master.txt
+++ b/erpnext/stock/doctype/landed_cost_master/landed_cost_master.txt
@@ -3,11 +3,11 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-27 14:36:34',
-		'docstatus': 0,
-		'modified': '2012-03-27 14:36:34',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
+		u'creation': '2012-07-03 13:29:45',
+		u'docstatus': 0,
+		u'modified': '2012-09-17 10:53:26',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
@@ -15,19 +15,19 @@
 		'_last_update': u'1309508838',
 		'autoname': u'field:title',
 		'colour': u'White:FFF',
-		'doctype': 'DocType',
+		u'doctype': u'DocType',
 		'document_type': u'Master',
 		'module': u'Stock',
-		'name': '__common__',
+		u'name': u'__common__',
 		'section_style': u'Simple',
 		'server_code_error': u' ',
-		'version': 2
+		'version': 1
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': u'DocField',
-		'name': '__common__',
+		u'doctype': u'DocField',
+		u'name': u'__common__',
 		'parent': u'Landed Cost Master',
 		'parentfield': u'fields',
 		'parenttype': u'DocType'
@@ -35,8 +35,8 @@
 
 	# These values are common for all DocPerm
 	{
-		'doctype': u'DocPerm',
-		'name': '__common__',
+		u'doctype': u'DocPerm',
+		u'name': u'__common__',
 		'parent': u'Landed Cost Master',
 		'parentfield': u'permissions',
 		'parenttype': u'DocType',
@@ -45,75 +45,13 @@
 
 	# DocType, Landed Cost Master
 	{
-		'doctype': 'DocType',
-		'name': u'Landed Cost Master'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'All'
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Purchase Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Purchase User',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'All'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'System Manager'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Purchase User'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Purchase Manager'
+		u'doctype': u'DocType',
+		u'name': u'Landed Cost Master'
 	},
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'trash_reason',
 		'fieldtype': u'Small Text',
 		'label': u'Trash Reason',
@@ -124,7 +62,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'title',
 		'fieldtype': u'Data',
 		'label': u'Title',
@@ -135,7 +73,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'landed_cost_details',
 		'fieldtype': u'Section Break',
 		'label': u'Landed Cost Items',
@@ -145,7 +83,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'landed_cost',
 		'fieldtype': u'Table',
 		'label': u'Landed Cost',
@@ -153,5 +91,60 @@
 		'oldfieldtype': u'Table',
 		'options': u'Landed Cost Master Detail',
 		'permlevel': 0
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'System Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase User',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All'
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'System Manager'
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Purchase User'
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Purchase Manager'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt b/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt
index c8db02e..0b91c94 100644
--- a/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt
+++ b/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt
@@ -3,11 +3,11 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-27 14:36:34',
-		'docstatus': 0,
-		'modified': '2012-03-27 14:36:34',
-		'modified_by': u'Administrator',
-		'owner': u'wasim@webnotestech.com'
+		u'creation': '2012-07-03 13:29:45',
+		u'docstatus': 0,
+		u'modified': '2012-09-17 10:54:21',
+		u'modified_by': u'Administrator',
+		u'owner': u'wasim@webnotestech.com'
 	},
 
 	# These values are common for all DocType
@@ -15,20 +15,20 @@
 		'_last_update': u'1321441191',
 		'colour': u'White:FFF',
 		'default_print_format': u'Standard',
-		'doctype': 'DocType',
+		u'doctype': u'DocType',
 		'issingle': 1,
 		'module': u'Stock',
-		'name': '__common__',
+		u'name': u'__common__',
 		'section_style': u'Simple',
 		'server_code_error': u' ',
 		'show_in_menu': 1,
-		'version': 35
+		'version': 1
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': u'DocField',
-		'name': '__common__',
+		u'doctype': u'DocField',
+		u'name': u'__common__',
 		'parent': u'Landed Cost Wizard',
 		'parentfield': u'fields',
 		'parenttype': u'DocType',
@@ -37,8 +37,8 @@
 
 	# These values are common for all DocPerm
 	{
-		'doctype': u'DocPerm',
-		'name': '__common__',
+		u'doctype': u'DocPerm',
+		u'name': u'__common__',
 		'parent': u'Landed Cost Wizard',
 		'parentfield': u'permissions',
 		'parenttype': u'DocType',
@@ -47,79 +47,13 @@
 
 	# DocType, Landed Cost Wizard
 	{
-		'doctype': 'DocType',
-		'name': u'Landed Cost Wizard'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'All',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Purchase Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Purchase User',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'All'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'System Manager'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Purchase User'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Purchase Manager'
+		u'doctype': u'DocType',
+		u'name': u'Landed Cost Wizard'
 	},
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'process',
 		'fieldtype': u'HTML',
 		'label': u'Process',
@@ -128,7 +62,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'section_break0',
 		'fieldtype': u'Section Break',
 		'options': u'Simple'
@@ -136,7 +70,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'from_pr_date',
 		'fieldtype': u'Date',
 		'label': u'From PR Date',
@@ -145,7 +79,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'to_pr_date',
 		'fieldtype': u'Date',
 		'label': u'To PR Date',
@@ -154,7 +88,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'currency',
 		'fieldtype': u'Select',
 		'label': u'Currency',
@@ -164,7 +98,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'get_purchase_receipt',
 		'fieldtype': u'Button',
 		'label': u'Get Purchase Receipt',
@@ -173,7 +107,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'lc_pr_details',
 		'fieldtype': u'Table',
 		'label': u'Landed Cost Purchase Receipts',
@@ -182,7 +116,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'section_break1',
 		'fieldtype': u'Section Break',
 		'options': u'Simple'
@@ -190,7 +124,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'landed_cost',
 		'fieldtype': u'Link',
 		'label': u'Select Landed Cost Items Master',
@@ -200,7 +134,7 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'get_details',
 		'fieldtype': u'Button',
 		'label': u'Get Details',
@@ -209,7 +143,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'landed_cost_details',
 		'fieldtype': u'Table',
 		'label': u'Landed Cost Items',
@@ -218,10 +152,68 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'update_pr',
 		'fieldtype': u'Button',
 		'label': u'Update PR',
 		'options': u'update_landed_cost'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase Manager',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'System Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase User',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All'
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'System Manager'
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Purchase User'
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Purchase Manager'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.txt b/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.txt
index c5d4d6d..8bec19e 100644
--- a/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.txt
+++ b/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.txt
@@ -3,34 +3,34 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-27 14:36:36',
-		'docstatus': 0,
-		'modified': '2012-03-27 14:36:36',
-		'modified_by': u'Administrator',
-		'owner': u'wasim@webnotestech.com'
+		u'creation': '2012-07-03 13:29:45',
+		u'docstatus': 0,
+		u'modified': '2012-09-17 10:55:11',
+		u'modified_by': u'Administrator',
+		u'owner': u'wasim@webnotestech.com'
 	},
 
 	# These values are common for all DocType
 	{
 		'colour': u'White:FFF',
-		'doctype': 'DocType',
+		u'doctype': u'DocType',
 		'is_transaction_doc': 0,
 		'issingle': 1,
 		'istable': 0,
 		'menu_index': 1,
 		'module': u'Stock',
-		'name': '__common__',
+		u'name': u'__common__',
 		'parent_node': u'Materials',
 		'section_style': u'Simple',
 		'server_code_error': u' ',
 		'show_in_menu': 1,
-		'version': 46
+		'version': 1
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': u'DocField',
-		'name': '__common__',
+		u'doctype': u'DocField',
+		u'name': u'__common__',
 		'parent': u'Sales and Purchase Return Tool',
 		'parentfield': u'fields',
 		'parenttype': u'DocType'
@@ -38,8 +38,8 @@
 
 	# These values are common for all DocPerm
 	{
-		'doctype': u'DocPerm',
-		'name': '__common__',
+		u'doctype': u'DocPerm',
+		u'name': u'__common__',
 		'parent': u'Sales and Purchase Return Tool',
 		'parentfield': u'permissions',
 		'parenttype': u'DocType',
@@ -48,197 +48,13 @@
 
 	# DocType, Sales and Purchase Return Tool
 	{
-		'doctype': 'DocType',
-		'name': u'Sales and Purchase Return Tool'
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'All',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'System Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'All'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'System Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Accounts Manager'
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Purchase Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Purchase User',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Sales Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Sales User',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Accounts User',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Accounts Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Accounts User'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Sales User'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Sales Manager'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Purchase User'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Purchase Manager'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material User',
-		'submit': 0,
-		'write': 1
+		u'doctype': u'DocType',
+		u'name': u'Sales and Purchase Return Tool'
 	},
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'return_date',
 		'fieldtype': u'Date',
 		'label': u'Return Date',
@@ -251,7 +67,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'return_type',
 		'fieldtype': u'Select',
 		'label': u'Return Type',
@@ -266,7 +82,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'delivery_note_no',
 		'fieldtype': u'Link',
 		'hidden': 1,
@@ -281,7 +97,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'sales_invoice_no',
 		'fieldtype': u'Link',
 		'hidden': 1,
@@ -292,7 +108,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'purchase_receipt_no',
 		'fieldtype': u'Link',
 		'hidden': 1,
@@ -306,7 +122,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'cust_supp',
 		'fieldtype': u'Data',
 		'hidden': 1,
@@ -317,7 +133,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'cust_supp_name',
 		'fieldtype': u'Data',
 		'hidden': 1,
@@ -328,7 +144,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'cust_supp_address',
 		'fieldtype': u'Small Text',
 		'hidden': 1,
@@ -340,7 +156,7 @@
 	# DocField
 	{
 		'colour': u'White:FFF',
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'get_items',
 		'fieldtype': u'Button',
 		'hidden': 1,
@@ -352,7 +168,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'return_details',
 		'fieldtype': u'Table',
 		'hidden': 1,
@@ -366,7 +182,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'make_stock_entry',
 		'fieldtype': u'Button',
 		'hidden': 1,
@@ -378,7 +194,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'make_excise_invoice',
 		'fieldtype': u'Button',
 		'hidden': 1,
@@ -390,7 +206,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'make_credit_note',
 		'fieldtype': u'Button',
 		'hidden': 1,
@@ -402,7 +218,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'make_debit_note',
 		'fieldtype': u'Button',
 		'hidden': 1,
@@ -410,5 +226,180 @@
 		'oldfieldtype': u'Button',
 		'permlevel': 0,
 		'trigger': u'Client'
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'All'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'System Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts Manager'
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Purchase User',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Sales User',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Accounts User',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'System Manager',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Accounts User'
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales User'
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Sales Manager'
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Purchase User'
+	},
+
+	# DocPerm
+	{
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Purchase Manager'
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material Manager',
+		'submit': 0,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 0,
+		u'doctype': u'DocPerm',
+		'permlevel': 1,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 0
+	},
+
+	# DocPerm
+	{
+		'amend': 0,
+		'cancel': 0,
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Material User',
+		'submit': 0,
+		'write': 1
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/utilities/cleanup_data.py b/erpnext/utilities/cleanup_data.py
index f433790..d826613 100644
--- a/erpnext/utilities/cleanup_data.py
+++ b/erpnext/utilities/cleanup_data.py
@@ -108,15 +108,22 @@
 
 
 
-def reset_series():
-	# Reset series
-	webnotes.conn.sql("""update tabSeries set current = 0 where name not in \
-		('Ann/', 'BSD', 'DEF', 'DF', 'EV', 'Event Updates/', 'FileData-', \
-		'FL', 'FMD/', 'GLM Detail', 'Login Page/', 'MDI', 'MDR', 'MI', 'MIR', \
-		'PERM', 'PR', 'SRCH/C/', 'TD', 'TIC/', 'TMD/', 'TW', 'UR', '_FEED', \
+def reset_all_series():
+	# Reset master series
+	webnotes.conn.sql("""update tabSeries set current = 0 where name not in 
+		('Ann/', 'BSD', 'DEF', 'DF', 'EV', 'Event Updates/', 'FileData-', 
+		'FL', 'FMD/', 'GLM Detail', 'Login Page/', 'MDI', 'MDR', 'MI', 'MIR', 
+		'PERM', 'PR', 'SRCH/C/', 'TD', 'TIC/', 'TMD/', 'TW', 'UR', '_FEED', 
 		'_SRCH', '_TRIGGER', '__NSO', 'CustomField', 'Letter')
 	""")
 	print "Series updated"
+		
+def reset_transaction_series():
+	webnotes.conn.sql("""update tabSeries set current = 0 where name in 
+		('JV', 'INV', 'BILL', 'SO', 'DN', 'PO', 'LEAD', 'ENQUIRY', 'ENQ', 'CI',
+		 'IN', 'PS', 'IDT', 'QAI', 'QTN', 'STE', 'SQTN', 'SUP', 'TDSP', 'SR', 
+		'POS', 'LAP', 'LAL', 'EXP')""")
+	print "Series updated"
 
 
 def delete_main_masters():
@@ -185,12 +192,11 @@
 	# delete
 	delete_transactions()
 	
-	if cleanup_type == '1':	
-		print '\n', '*' * 10 + 'NOTE' + '*' * 10, '\n'
-		print "To reset series of the transactions go to Setup --> Numbering Series\n"
+	if cleanup_type == '1':
+		reset_transaction_series()
 	else:
 		delete_masters()
-		reset_series()
+		reset_all_series()
 		delete_main_masters()
 		reset_global_defaults()
 
diff --git a/erpnext/website/doctype/web_cache/web_cache.txt b/erpnext/website/doctype/web_cache/web_cache.txt
index 98a4891..3514f66 100644
--- a/erpnext/website/doctype/web_cache/web_cache.txt
+++ b/erpnext/website/doctype/web_cache/web_cache.txt
@@ -3,26 +3,26 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-06-21 12:01:17',
-		'docstatus': 0,
-		'modified': '2012-06-21 17:25:52',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
+		u'creation': '2012-07-12 22:19:44',
+		u'docstatus': 0,
+		u'modified': '2012-09-17 10:48:17',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'doctype': 'DocType',
+		u'doctype': u'DocType',
 		'document_type': u'System',
 		'module': u'Website',
-		'name': '__common__',
+		u'name': u'__common__',
 		'version': 1
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': u'DocField',
-		'name': '__common__',
+		u'doctype': u'DocField',
+		u'name': u'__common__',
 		'parent': u'Web Cache',
 		'parentfield': u'fields',
 		'parenttype': u'DocType',
@@ -31,8 +31,8 @@
 
 	# These values are common for all DocPerm
 	{
-		'doctype': u'DocPerm',
-		'name': '__common__',
+		u'doctype': u'DocPerm',
+		u'name': u'__common__',
 		'parent': u'Web Cache',
 		'parentfield': u'permissions',
 		'parenttype': u'DocType',
@@ -43,34 +43,13 @@
 
 	# DocType, Web Cache
 	{
-		'doctype': 'DocType',
-		'name': u'Web Cache'
-	},
-
-	# DocPerm
-	{
-		'create': 0,
-		'doctype': u'DocPerm',
-		'role': u'All'
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'role': u'Website Manager'
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'role': u'Blogger'
+		u'doctype': u'DocType',
+		u'name': u'Web Cache'
 	},
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'doc_type',
 		'fieldtype': u'Link',
 		'in_filter': 1,
@@ -81,7 +60,7 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'doc_name',
 		'fieldtype': u'Data',
 		'in_filter': 0,
@@ -91,9 +70,30 @@
 
 	# DocField
 	{
-		'doctype': u'DocField',
+		u'doctype': u'DocField',
 		'fieldname': u'html',
 		'fieldtype': u'Long Text',
 		'label': u'HTML'
+	},
+
+	# DocPerm
+	{
+		'create': 0,
+		u'doctype': u'DocPerm',
+		'role': u'Guest'
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'role': u'Website Manager'
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		u'doctype': u'DocPerm',
+		'role': u'Blogger'
 	}
 ]
\ No newline at end of file
diff --git a/public/js/all-app.js b/public/js/all-app.js
index 908ac40..4f5eaab 100644
--- a/public/js/all-app.js
+++ b/public/js/all-app.js
@@ -255,7 +255,7 @@
 /*
  *	lib/js/wn/ui/listing.js
  */
-wn.provide('wn.ui');wn.ui.Listing=Class.extend({init:function(opts){this.opts=opts||{};this.page_length=20;this.start=0;this.data=[];if(opts){this.make();}},prepare_opts:function(){if(this.opts.new_doctype){if(wn.boot.profile.can_read.indexOf(this.opts.new_doctype)==-1){this.opts.new_doctype=null;}else{this.opts.new_doctype=get_doctype_label(this.opts.new_doctype);}}
+wn.provide('wn.ui');wn.ui.Listing=Class.extend({init:function(opts){this.opts=opts||{};this.page_length=20;this.start=0;this.data=[];if(opts){this.make();}},prepare_opts:function(){if(this.opts.new_doctype){if(wn.boot.profile.can_create.indexOf(this.opts.new_doctype)==-1){this.opts.new_doctype=null;}else{this.opts.new_doctype=get_doctype_label(this.opts.new_doctype);}}
 if(!this.opts.no_result_message){this.opts.no_result_message='Nothing to show'}},make:function(opts){if(opts){this.opts=opts;}
 this.prepare_opts();$.extend(this,this.opts);$(this.parent).html(repl('\
    <div class="wnlist">\
@@ -1010,8 +1010,9 @@
 +data[opts.content]+'">'+data[opts.content]+'</a>',data));}
 else if(opts.template){$(parent).append(repl(opts.template,data));}
 else if(data[opts.content]){if(opts.type=="date"){data[opts.content]=wn.datetime.str_to_user(data[opts.content])}
-$(parent).append(repl('<span title="%(title)s"> %(content)s</span>',{"title":opts.title||opts.content,"content":data[opts.content]}));}},render:function(row,data){var me=this;this.prepare_data(data);rowhtml='';$.each(this.columns,function(i,v){rowhtml+=repl('<td style="width: %(width)s"></td>',v);});var tr=$(row).html('<table><tbody><tr>'+rowhtml+'</tr></tbody></table>').find('tr').get(0);$.each(this.columns,function(i,v){me.render_column(data,tr.cells[i],v);});},prepare_data:function(data){data.fullname=wn.user_info(data.owner).fullname;data.avatar=wn.user_info(data.owner).image;this.prepare_when(data,data.modified);if(data.docstatus==0||data.docstatus==null){data.docstatus_icon='icon-pencil';data.docstatus_title='Editable';}else if(data.docstatus==1){data.docstatus_icon='icon-lock';data.docstatus_title='Submitted';}else if(data.docstatus==2){data.docstatus_icon='icon-remove';data.docstatus_title='Cancelled';}
-for(key in data){if(data[key]==null){data[key]='';}}},prepare_when:function(data,date_str){if(!date_str)date_str=data.modified;data.when=dateutil.str_to_user(date_str).split(' ')[0];var diff=dateutil.get_diff(dateutil.get_today(),date_str.split(' ')[0]);if(diff==0){data.when=dateutil.comment_when(date_str);}
+$(parent).append(repl('<span title="%(title)s"> %(content)s</span>',{"title":opts.title||opts.content,"content":data[opts.content]}));}},render:function(row,data){var me=this;this.prepare_data(data);rowhtml='';$.each(this.columns,function(i,v){rowhtml+=repl('<td style="width: %(width)s"></td>',v);});var tr=$(row).html('<table><tbody><tr>'+rowhtml+'</tr></tbody></table>').find('tr').get(0);$.each(this.columns,function(i,v){me.render_column(data,tr.cells[i],v);});},prepare_data:function(data){data.fullname=wn.user_info(data.owner).fullname;data.avatar=wn.user_info(data.owner).image;if(data.modified)
+this.prepare_when(data,data.modified);if(data.docstatus==0||data.docstatus==null){data.docstatus_icon='icon-pencil';data.docstatus_title='Editable';}else if(data.docstatus==1){data.docstatus_icon='icon-lock';data.docstatus_title='Submitted';}else if(data.docstatus==2){data.docstatus_icon='icon-remove';data.docstatus_title='Cancelled';}
+for(key in data){if(data[key]==null){data[key]='';}}},prepare_when:function(data,date_str){if(!date_str)date_str=data.modified;data.when=(dateutil.str_to_user(date_str)).split(' ')[0];var diff=dateutil.get_diff(dateutil.get_today(),date_str.split(' ')[0]);if(diff==0){data.when=dateutil.comment_when(date_str);}
 if(diff==1){data.when='Yesterday'}
 if(diff==2){data.when='2 days ago'}},add_user_tags:function(parent,data){var me=this;if(data._user_tags){if($(parent).html().length>0){$(parent).append('<br />');}
 $.each(data._user_tags.split(','),function(i,t){if(t){$('<span class="label label-info" style="cursor: pointer; line-height: 200%">'
diff --git a/public/js/all-web.js b/public/js/all-web.js
index 81aaaaa..535762f 100644
--- a/public/js/all-web.js
+++ b/public/js/all-web.js
@@ -142,7 +142,7 @@
 /*
  *	lib/js/wn/ui/listing.js
  */
-wn.provide('wn.ui');wn.ui.Listing=Class.extend({init:function(opts){this.opts=opts||{};this.page_length=20;this.start=0;this.data=[];if(opts){this.make();}},prepare_opts:function(){if(this.opts.new_doctype){if(wn.boot.profile.can_read.indexOf(this.opts.new_doctype)==-1){this.opts.new_doctype=null;}else{this.opts.new_doctype=get_doctype_label(this.opts.new_doctype);}}
+wn.provide('wn.ui');wn.ui.Listing=Class.extend({init:function(opts){this.opts=opts||{};this.page_length=20;this.start=0;this.data=[];if(opts){this.make();}},prepare_opts:function(){if(this.opts.new_doctype){if(wn.boot.profile.can_create.indexOf(this.opts.new_doctype)==-1){this.opts.new_doctype=null;}else{this.opts.new_doctype=get_doctype_label(this.opts.new_doctype);}}
 if(!this.opts.no_result_message){this.opts.no_result_message='Nothing to show'}},make:function(opts){if(opts){this.opts=opts;}
 this.prepare_opts();$.extend(this,this.opts);$(this.parent).html(repl('\
    <div class="wnlist">\
