Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/accounts/doctype/account/account.js b/accounts/doctype/account/account.js
index 8535373..d35d6ce 100644
--- a/accounts/doctype/account/account.js
+++ b/accounts/doctype/account/account.js
@@ -23,6 +23,11 @@
 // Refresh
 // -----------------------------------------
 cur_frm.cscript.refresh = function(doc, cdt, cdn) {
+	if(doc.__islocal) {
+		msgprint("Please create new account from Chart of Accounts.");
+		throw "cannot create";
+	}
+
 	cur_frm.toggle_display('account_name', doc.__islocal);
 	
 	// hide fields if group
@@ -34,7 +39,7 @@
 		'is_pl_account', 'company'], false);
 
 	// read-only for root accounts
-  	root_acc = ['Application of Funds (Assets)','Expenses','Income','Source of Funds (Liabilities)'];
+  	root_acc = doc.parent ? false : true;
 	if(in_list(root_acc, doc.account_name)) {
 		cur_frm.perm = [[1,0,0], [1,0,0]];
 		cur_frm.set_intro("This is a root account and cannot be edited.");
@@ -48,7 +53,7 @@
 		cur_frm.cscript.account_type(doc, cdt, cdn);
 
 		// show / hide convert buttons
-		cur_frm.cscript.hide_unhide_group_ledger(doc);
+		cur_frm.cscript.add_toolbar_buttons(doc);
 	}
 }
 
@@ -76,7 +81,10 @@
 
 // Hide/unhide group or ledger
 // -----------------------------------------
-cur_frm.cscript.hide_unhide_group_ledger = function(doc) {
+cur_frm.cscript.add_toolbar_buttons = function(doc) {
+	cur_frm.add_custom_button('Chart of Accounts', 
+		function() { wn.set_route("Accounts Browser", "Account"); }, 'icon-list')
+
 	if (cstr(doc.group_or_ledger) == 'Group') {
 		cur_frm.add_custom_button('Convert to Ledger', 
 			function() { cur_frm.cscript.convert_to_ledger(); }, 'icon-retweet')
diff --git a/accounts/doctype/account/account.py b/accounts/doctype/account/account.py
index a717fd3..28191db 100644
--- a/accounts/doctype/account/account.py
+++ b/accounts/doctype/account/account.py
@@ -61,10 +61,13 @@
 			elif par and not self.doc.is_pl_account:
 				self.doc.is_pl_account = par[0][2]
 				self.doc.debit_or_credit = par[0][3]
-		elif self.doc.account_name not in ['Income','Source of Funds (Liabilities)',\
-		 	'Expenses','Application of Funds (Assets)']:
-			msgprint("Parent Account is mandatory", raise_exception=1)
 
+	def validate_max_root_accounts(self):
+		if webnotes.conn.sql("""select count(*) from tabAccount where
+			company=%s and ifnull(parent_account,'')='' and docstatus != 2""",
+			self.doc.company)[0][0] > 4:
+			webnotes.msgprint("One company cannot have more than 4 root Accounts",
+				raise_exception=1)
 	
 	# Account name must be unique
 	def validate_duplicate_account(self):
@@ -74,21 +77,10 @@
 				
 	def validate_root_details(self):
 		#does not exists parent
-		if self.doc.account_name in ['Income','Source of Funds', 'Expenses','Application of Funds'] and self.doc.parent_account:
-			msgprint("You can not assign parent for root account", raise_exception=1)
-
-		# Debit / Credit
-		if self.doc.account_name in ['Income','Source of Funds']:
-			self.doc.debit_or_credit = 'Credit'
-		elif self.doc.account_name in ['Expenses','Application of Funds']:
-			self.doc.debit_or_credit = 'Debit'
-				
-		# Is PL Account 
-		if self.doc.account_name in ['Income','Expenses']:
-			self.doc.is_pl_account = 'Yes'
-		elif self.doc.account_name in ['Source of Funds','Application of Funds']:
-			self.doc.is_pl_account = 'No'
-
+		if webnotes.conn.exists("Account", self.doc.name):
+			if not webnotes.conn.get_value("Account", self.doc.name, "parent_account"):
+				webnotes.msgprint("Root cannot be edited.", raise_exception=1)
+			
 	def convert_group_to_ledger(self):
 		if self.check_if_child_exists():
 			msgprint("Account: %s has existing child. You can not convert this account to ledger" % (self.doc.name), raise_exception=1)
@@ -144,6 +136,7 @@
 			
 	def on_update(self):
 		# update nsm
+		self.validate_max_root_accounts()
 		self.update_nsm_model()		
 
 	# Check user role for approval process
@@ -189,10 +182,13 @@
 	def on_rename(self,newdn,olddn):
 		company_abbr = sql("select tc.abbr from `tabAccount` ta, `tabCompany` tc where ta.company = tc.name and ta.name=%s", olddn)[0][0]
 		
-		newdnchk = newdn.split(" - ")	
+		parts = newdn.split(" - ")	
 
-		if newdnchk[-1].lower() != company_abbr.lower():
-			msgprint("Please add company abbreviation <b>%s</b>" %(company_abbr), raise_exception=1)
-		else:
-			account_name = " - ".join(newdnchk[:-1])
-			sql("update `tabAccount` set account_name = '%s' where name = '%s'" %(account_name,olddn))
+		if parts[-1].lower() != company_abbr.lower():
+			parts.append(company_abbr)
+
+		account_name = " - ".join(parts[:-1])
+		sql("update `tabAccount` set account_name = '%s' where name = '%s'" % \
+			(account_name,olddn))
+		
+		return " - ".join(parts)
diff --git a/accounts/doctype/account/account.txt b/accounts/doctype/account/account.txt
index b649c9a..2beb08a 100644
--- a/accounts/doctype/account/account.txt
+++ b/accounts/doctype/account/account.txt
@@ -1,396 +1,324 @@
-# DocType, Account
 [
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-07-03 13:30:50',
-		'docstatus': 0,
-		'modified': '2012-07-11 13:58:44',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': u'1325570645',
-		'allow_copy': 1,
-		'allow_trash': 1,
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'description': u'An **Account** is heading under which financial and business transactions are carried on. For example, \u201cTravel Expense\u201d is an account, \u201cCustomer Zoe\u201d, \u201cSupplier Mae\u201d are accounts. \n\n**Note:** ERPNext creates accounts for Customers and Suppliers automatically.\n\n### Groups and Ledgers\n\nThere are two main kinds of Accounts in ERPNext - Group and Ledger. Groups can have sub-groups and ledgers within them, whereas ledgers are the leaf nodes of your chart and cannot be further classified.\n\nAccounting Transactions can only be made against Ledger Accounts (not Groups)\n',
-		'doctype': 'DocType',
-		'document_type': u'Master',
-		'in_create': 1,
-		'module': u'Accounts',
-		'name': '__common__',
-		'search_fields': u'debit_or_credit, group_or_ledger',
-		'section_style': u'Tray',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Account',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'amend': 0,
-		'doctype': u'DocPerm',
-		'name': '__common__',
-		'parent': u'Account',
-		'parentfield': u'permissions',
-		'parenttype': u'DocType',
-		'read': 1,
-		'submit': 0
-	},
-
-	# DocType, Account
-	{
-		'doctype': 'DocType',
-		'name': u'Account'
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Auditor',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Auditor',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 2,
-		'role': u'Auditor',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Sales User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Purchase User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Accounts User',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Accounts Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Accounts User',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Accounts Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 2,
-		'role': u'Accounts Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'create': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 2,
-		'role': u'Accounts User',
-		'write': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'properties',
-		'fieldtype': u'Section Break',
-		'label': u'Account Details',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break0',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'account_name',
-		'fieldtype': u'Data',
-		'in_filter': 1,
-		'label': u'Account Name',
-		'no_copy': 1,
-		'oldfieldname': u'account_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'level',
-		'fieldtype': u'Int',
-		'hidden': 1,
-		'label': u'Level',
-		'oldfieldname': u'level',
-		'oldfieldtype': u'Int',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'default': u'Ledger',
-		'doctype': u'DocField',
-		'fieldname': u'group_or_ledger',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Group or Ledger',
-		'oldfieldname': u'group_or_ledger',
-		'oldfieldtype': u'Select',
-		'options': u'\nLedger\nGroup',
-		'permlevel': 1,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'debit_or_credit',
-		'fieldtype': u'Data',
-		'in_filter': 1,
-		'label': u'Debit or Credit',
-		'oldfieldname': u'debit_or_credit',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'is_pl_account',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Is PL Account',
-		'oldfieldname': u'is_pl_account',
-		'oldfieldtype': u'Select',
-		'options': u'Yes\nNo',
-		'permlevel': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'company',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Company',
-		'oldfieldname': u'company',
-		'oldfieldtype': u'Link',
-		'options': u'Company',
-		'permlevel': 1,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break1',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'parent_account',
-		'fieldtype': u'Link',
-		'label': u'Parent Account',
-		'oldfieldname': u'parent_account',
-		'oldfieldtype': u'Link',
-		'options': u'Account',
-		'permlevel': 0,
-		'search_index': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Setting Account Type helps in selecting this Account in transactions.',
-		'doctype': u'DocField',
-		'fieldname': u'account_type',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Account Type',
-		'oldfieldname': u'account_type',
-		'oldfieldtype': u'Select',
-		'options': u'\nFixed Asset Account\nBank or Cash\nExpense Account\nTax\nIncome Account\nChargeable',
-		'permlevel': 0,
-		'search_index': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Rate at which this tax is applied',
-		'doctype': u'DocField',
-		'fieldname': u'tax_rate',
-		'fieldtype': u'Currency',
-		'hidden': 0,
-		'label': u'Rate',
-		'oldfieldname': u'tax_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'If the account is frozen, entries are allowed for the "Account Manager" only.',
-		'doctype': u'DocField',
-		'fieldname': u'freeze_account',
-		'fieldtype': u'Select',
-		'label': u'Frozen',
-		'oldfieldname': u'freeze_account',
-		'oldfieldtype': u'Select',
-		'options': u'No\nYes',
-		'permlevel': 2
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'credit_days',
-		'fieldtype': u'Int',
-		'hidden': 1,
-		'label': u'Credit Days',
-		'oldfieldname': u'credit_days',
-		'oldfieldtype': u'Int',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'credit_limit',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'label': u'Credit Limit',
-		'oldfieldname': u'credit_limit',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'If this Account represents a Customer, Supplier or Employee, set it here.',
-		'doctype': u'DocField',
-		'fieldname': u'master_type',
-		'fieldtype': u'Select',
-		'label': u'Master Type',
-		'oldfieldname': u'master_type',
-		'oldfieldtype': u'Select',
-		'options': u'\nSupplier\nCustomer\nEmployee',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'master_name',
-		'fieldtype': u'Link',
-		'label': u'Master Name',
-		'oldfieldname': u'master_name',
-		'oldfieldtype': u'Link',
-		'permlevel': 0,
-		'trigger': u'Client'
-	}
+ {
+  "owner": "Administrator", 
+  "docstatus": 0, 
+  "creation": "2012-11-16 10:32:50", 
+  "modified_by": "Administrator", 
+  "modified": "2012-12-03 11:26:49"
+ }, 
+ {
+  "in_create": 1, 
+  "search_fields": "debit_or_credit, group_or_ledger", 
+  "module": "Accounts", 
+  "document_type": "Master", 
+  "description": "Heads (or groups) against which Accounting Entries are made and balances are maintained.", 
+  "name": "__common__", 
+  "default_print_format": "Standard", 
+  "allow_rename": 1, 
+  "doctype": "DocType", 
+  "allow_copy": 1
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Account", 
+  "doctype": "DocField", 
+  "parenttype": "DocType", 
+  "parentfield": "fields"
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Account", 
+  "amend": 0, 
+  "submit": 0, 
+  "doctype": "DocPerm", 
+  "read": 1, 
+  "parenttype": "DocType", 
+  "parentfield": "permissions"
+ }, 
+ {
+  "name": "Account", 
+  "doctype": "DocType"
+ }, 
+ {
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "Account Details", 
+  "fieldname": "properties", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break0", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Account Name", 
+  "oldfieldname": "account_name", 
+  "fieldname": "account_name", 
+  "fieldtype": "Data", 
+  "search_index": 1, 
+  "reqd": 1, 
+  "permlevel": 1, 
+  "in_filter": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Int", 
+  "doctype": "DocField", 
+  "label": "Level", 
+  "oldfieldname": "level", 
+  "fieldname": "level", 
+  "fieldtype": "Int", 
+  "hidden": 1, 
+  "permlevel": 1
+ }, 
+ {
+  "default": "Ledger", 
+  "oldfieldtype": "Select", 
+  "doctype": "DocField", 
+  "label": "Group or Ledger", 
+  "oldfieldname": "group_or_ledger", 
+  "permlevel": 1, 
+  "fieldname": "group_or_ledger", 
+  "fieldtype": "Select", 
+  "search_index": 1, 
+  "reqd": 1, 
+  "options": "\nLedger\nGroup", 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Debit or Credit", 
+  "oldfieldname": "debit_or_credit", 
+  "fieldname": "debit_or_credit", 
+  "fieldtype": "Data", 
+  "search_index": 1, 
+  "permlevel": 1, 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Select", 
+  "doctype": "DocField", 
+  "label": "Is PL Account", 
+  "oldfieldname": "is_pl_account", 
+  "options": "Yes\nNo", 
+  "fieldname": "is_pl_account", 
+  "fieldtype": "Select", 
+  "search_index": 1, 
+  "permlevel": 1, 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Company", 
+  "oldfieldname": "company", 
+  "options": "Company", 
+  "fieldname": "company", 
+  "fieldtype": "Link", 
+  "search_index": 1, 
+  "reqd": 1, 
+  "permlevel": 1, 
+  "in_filter": 1
+ }, 
+ {
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break1", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Parent Account", 
+  "oldfieldname": "parent_account", 
+  "trigger": "Client", 
+  "fieldname": "parent_account", 
+  "fieldtype": "Link", 
+  "search_index": 1, 
+  "options": "Account", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Setting Account Type helps in selecting this Account in transactions.", 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Account Type", 
+  "oldfieldname": "account_type", 
+  "permlevel": 0, 
+  "trigger": "Client", 
+  "fieldname": "account_type", 
+  "fieldtype": "Select", 
+  "search_index": 0, 
+  "in_filter": 1, 
+  "options": "\nFixed Asset Account\nBank or Cash\nExpense Account\nTax\nIncome Account\nChargeable"
+ }, 
+ {
+  "description": "Rate at which this tax is applied", 
+  "oldfieldtype": "Currency", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Rate", 
+  "oldfieldname": "tax_rate", 
+  "fieldname": "tax_rate", 
+  "fieldtype": "Currency", 
+  "reqd": 0, 
+  "hidden": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "description": "If the account is frozen, entries are allowed for the \"Account Manager\" only.", 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Frozen", 
+  "oldfieldname": "freeze_account", 
+  "options": "No\nYes", 
+  "fieldname": "freeze_account", 
+  "fieldtype": "Select", 
+  "permlevel": 2
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Int", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Credit Days", 
+  "oldfieldname": "credit_days", 
+  "fieldname": "credit_days", 
+  "fieldtype": "Int", 
+  "hidden": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Credit Limit", 
+  "oldfieldname": "credit_limit", 
+  "fieldname": "credit_limit", 
+  "fieldtype": "Currency", 
+  "hidden": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "description": "If this Account represents a Customer, Supplier or Employee, set it here.", 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Master Type", 
+  "oldfieldname": "master_type", 
+  "options": "\nSupplier\nCustomer\nEmployee", 
+  "fieldname": "master_type", 
+  "fieldtype": "Select", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Master Name", 
+  "oldfieldname": "master_name", 
+  "trigger": "Client", 
+  "fieldname": "master_name", 
+  "fieldtype": "Link", 
+  "options": "[Select]", 
+  "permlevel": 0
+ }, 
+ {
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "write": 1, 
+  "cancel": 0, 
+  "role": "Auditor", 
+  "permlevel": 0
+ }, 
+ {
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Auditor", 
+  "permlevel": 2
+ }, 
+ {
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Auditor", 
+  "permlevel": 1
+ }, 
+ {
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Sales User", 
+  "permlevel": 0
+ }, 
+ {
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Purchase User", 
+  "permlevel": 0
+ }, 
+ {
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "write": 1, 
+  "cancel": 0, 
+  "role": "Accounts User", 
+  "permlevel": 0
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "write": 1, 
+  "cancel": 1, 
+  "role": "Accounts Manager", 
+  "permlevel": 0
+ }, 
+ {
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Accounts User", 
+  "permlevel": 1
+ }, 
+ {
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Accounts Manager", 
+  "permlevel": 1
+ }, 
+ {
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "write": 1, 
+  "cancel": 0, 
+  "role": "Accounts Manager", 
+  "permlevel": 2
+ }, 
+ {
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Accounts User", 
+  "permlevel": 2
+ }
 ]
\ No newline at end of file
diff --git a/accounts/doctype/gl_control/gl_control.py b/accounts/doctype/gl_control/gl_control.py
index deb88f7..0eebf48 100644
--- a/accounts/doctype/gl_control/gl_control.py
+++ b/accounts/doctype/gl_control/gl_control.py
@@ -142,7 +142,7 @@
 	def save_entries(self, cancel, adv_adj, update_outstanding):
 		for le in self.entries:
 			# round off upto 2 decimal
-			le.debit, le.credit = round(le.debit, 2), round(le.credit, 2)
+			le.debit, le.credit = round(flt(le.debit), 2), round(flt(le.credit), 2)
 			
 			#toggle debit, credit if negative entry
 			if flt(le.debit) < 0 or flt(le.credit) < 0:
diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index e763440..4c426f3 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -498,7 +498,7 @@
 
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
 	if(cint(wn.boot.notification_settings.sales_invoice)) {
-		cur_frm.email_doc(wn.boot.notification_settings.sales_invoice);
+		cur_frm.email_doc(wn.boot.notification_settings.sales_invoice_message);
 	}
 }
 
diff --git a/accounts/page/accounts_browser/accounts_browser.html b/accounts/page/accounts_browser/accounts_browser.html
index de55f08..91a1e26 100644
--- a/accounts/page/accounts_browser/accounts_browser.html
+++ b/accounts/page/accounts_browser/accounts_browser.html
@@ -1,12 +1,18 @@
 <div class="layout-wrapper layout-wrapper-background">
 	<div class="appframe-area"></div>
-	<div class="layout-main-section">
+	<div class="layout-main">
 		<div class="tree-area"></div>
-	</div>
-	<div class="layout-side-section">
-		<div class="help">1. To add child nodes, explore tree and click on the node under which you want to add more nodes.<br><br>
-			2. Please do NOT create accounts (ledgers) for Customers and Suppliers. They are created directly from the Customer / Supplier masters.<br>
+		<hr>
+		<div class="well">
+			<h4>Quick Help</h4>
+			<ol>
+			<li>To add child nodes, explore tree and click on the node under which you want to add more nodes.
+			<li>Accounting Entries can be made against leaf nodes, called <b>Ledgers</b>. Entries against <b>Groups</b> are not allowed.
+			<li>Please do NOT create Account (Ledgers) for Customers and Suppliers. They are created directly from the Customer / Supplier masters.
+			<li><b>To create a Bank Account:</b> Go to the appropriate group (usually Application of Funds > Current Assets > Bank Accounts) and create a new Account Ledger (by clicking on Add Child) of type "Bank or Cash"
+			<li><b>To create a Tax Account:</b> Go to the appropriate group (usually Source of Funds > Current Liabilities > Taxes and Duties) and create a new Account Ledger (by clicking on Add Child) of type "Tax" and do mention the Tax rate.
+			</ol>
+			<p>Please setup your chart of accounts before you start Accounting Entries</p>
 		</div>
 	</div>
-	<div class="clear"></div>
 </div>
\ No newline at end of file
diff --git a/accounts/page/accounts_browser/accounts_browser.js b/accounts/page/accounts_browser/accounts_browser.js
index 323135b..2d59a46 100644
--- a/accounts/page/accounts_browser/accounts_browser.js
+++ b/accounts/page/accounts_browser/accounts_browser.js
@@ -38,6 +38,7 @@
 		.change(function() {
 			var ctype = wn.get_route()[1] || 'Account';
 			erpnext.account_chart = new erpnext.AccountsChart(ctype, $(this).val(), wrapper);
+			pscript.set_title(wrapper, ctype, $(this).val());
 		})
 		.appendTo(wrapper.appframe.$w.find('.appframe-toolbar'));
 		
@@ -52,18 +53,31 @@
 			wrapper.$company_select.val(sys_defaults.company || r[0]).change();
 		}
 	});
+	
+	// refresh on rename
+	$(document).bind('rename', function(event, dt, old_name, new_name) {
+		if(erpnext.account_chart.ctype==dt)
+			wrapper.$company_select.change();
+	});	
+}
+
+pscript.set_title = function(wrapper, ctype, val) {
+	if(val) {
+		wrapper.appframe.set_title('Chart of '+ctype+'s' + " - " + cstr(val));
+	} else {
+		wrapper.appframe.set_title('Chart of '+ctype+'s');
+	}
 }
 
 pscript['onshow_Accounts Browser'] = function(wrapper){
 	// set route
 	var ctype = wn.get_route()[1] || 'Account';
 
-	wrapper.appframe.set_title('Chart of '+ctype+'s');
-
 	if(erpnext.account_chart && erpnext.account_chart.ctype != ctype) {
 		wrapper.$company_select.change();
-	} 
-
+	}
+	
+	pscript.set_title(wrapper, ctype);
 }
 
 erpnext.AccountsChart = Class.extend({
@@ -71,6 +85,11 @@
 		$(wrapper).find('.tree-area').empty();
 		var me = this;
 		me.ctype = ctype;
+		me.can_create = wn.boot.profile.can_create.indexOf(this.ctype);
+		me.can_delete = wn.model.can_delete(this.ctype);
+		me.can_write = wn.boot.profile.can_write.indexOf(this.ctype);
+		
+		
 		me.company = company;
 		this.tree = new wn.ui.Tree({
 			parent: $(wrapper).find('.tree-area'), 
@@ -116,17 +135,24 @@
 		var node_links = [];
 		// edit
 		if (wn.boot.profile.can_read.indexOf(this.ctype) !== -1) {
-			node_links.push('<a href="#!Form/'+encodeURIComponent(this.ctype)+'/'
+			node_links.push('<a href="#Form/'+encodeURIComponent(this.ctype)+'/'
 				+encodeURIComponent(data.value)+'">Edit</a>');
 		}
 		if (data.expandable) {
-			if((wn.boot.profile.can_create.indexOf(this.ctype) !== -1) ||
-					(wn.boot.profile.in_create.indexOf(this.ctype) !== -1)) {
+			if(this.can_create) {
 				node_links.push('<a onclick="erpnext.account_chart.new_node();">Add Child</a>');
 			}
 		} else if (this.ctype === 'Account' && wn.boot.profile.can_read.indexOf("GL Entry") !== -1) {
 			node_links.push('<a onclick="erpnext.account_chart.show_ledger();">View Ledger</a>');
 		}
+
+		if (this.can_write !== -1) {
+			node_links.push('<a onclick="erpnext.account_chart.rename()">Rename</a>');
+		};
+	
+		if (this.can_delete !== -1) {
+			node_links.push('<a onclick="erpnext.account_chart.delete()">Delete</a>');
+		};
 		
 		link.toolbar.append(node_links.join(" | "));
 	},
@@ -135,6 +161,18 @@
 		var node = me.selected_node();
 		wn.set_route("general-ledger", "account=" + node.data('label'));
 	},
+	rename: function() {
+		var me = this;
+		var node = me.selected_node();
+		wn.model.rename_doc("Account", node.data('label'));
+	},
+	delete: function() {
+		var me = this;
+		var node = me.selected_node();
+		wn.model.delete_doc("Account", node.data('label'), function() {
+			node.parent().remove();
+		});
+	},
 	new_node: function() {
 		if(this.ctype=='Account') {
 			this.new_account();
@@ -216,6 +254,8 @@
 			$(fd.group_or_ledger.input).change();
 			$(fd.account_type.input).change();
 		}
+		
+		$(fd.group_or_ledger.input).val("Ledger").change();
 		d.show();
 	},
 	
diff --git a/buying/doctype/purchase_order/purchase_order.js b/buying/doctype/purchase_order/purchase_order.js
index e31cfd7..f53f4d2 100644
--- a/buying/doctype/purchase_order/purchase_order.js
+++ b/buying/doctype/purchase_order/purchase_order.js
@@ -220,6 +220,6 @@
 
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
 	if(cint(wn.boot.notification_settings.purchase_order)) {
-		cur_frm.email_doc(wn.boot.notification_settings.purchase_order);
+		cur_frm.email_doc(wn.boot.notification_settings.purchase_order_message);
 	}
 }
diff --git a/buying/doctype/purchase_order/purchase_order.txt b/buying/doctype/purchase_order/purchase_order.txt
index 61a30d7..95bc970 100644
--- a/buying/doctype/purchase_order/purchase_order.txt
+++ b/buying/doctype/purchase_order/purchase_order.txt
@@ -4,7 +4,7 @@
   "docstatus": 0, 
   "creation": "2012-08-06 20:00:37", 
   "modified_by": "Administrator", 
-  "modified": "2012-08-06 17:14:19"
+  "modified": "2012-08-06 17:14:18"
  }, 
  {
   "is_submittable": 1, 
diff --git a/buying/doctype/supplier/supplier.py b/buying/doctype/supplier/supplier.py
index 0e28f1f..0c9d056 100644
--- a/buying/doctype/supplier/supplier.py
+++ b/buying/doctype/supplier/supplier.py
@@ -107,8 +107,7 @@
 		#validation for Naming Series mandatory field...
 		if get_defaults()['supp_master_name'] == 'Naming Series':
 			if not self.doc.naming_series:
-				msgprint("Series is Mandatory.")
-				raise Exception
+				msgprint("Series is Mandatory.", raise_exception=1)
 	
 	def create_account_head(self):
 		if self.doc.company :
@@ -174,5 +173,11 @@
 			for rec in update_fields:
 				sql("update `tab%s` set supplier_name = '%s' where %s = '%s'" %(rec[0],newdn,rec[1],olddn))
 				
+		old_account = webnotes.conn.get_value("Account", {"master_type": "Supplier",
+			"master_name": olddn})
+				
 		#update master_name in doctype account
 		sql("update `tabAccount` set master_name = '%s', master_type = 'Supplier' where master_name = '%s'" %(newdn,olddn))
+		
+		from webnotes.model.rename_doc import rename_doc
+		rename_doc("Account", old_account, newdn)
diff --git a/buying/doctype/supplier/supplier.txt b/buying/doctype/supplier/supplier.txt
index a46927b..a8caadb 100644
--- a/buying/doctype/supplier/supplier.txt
+++ b/buying/doctype/supplier/supplier.txt
@@ -2,17 +2,19 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2012-11-02 17:17:04", 
+  "creation": "2012-12-03 10:31:02", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-30 10:53:32"
+  "modified": "2012-12-03 11:25:12"
  }, 
  {
   "autoname": "naming_series:", 
-  "name": "__common__", 
+  "description": "Supplier of Goods or Services.", 
+  "allow_rename": 1, 
   "search_fields": "supplier_name,supplier_type", 
   "module": "Buying", 
   "doctype": "DocType", 
-  "document_type": "Master"
+  "document_type": "Master", 
+  "name": "__common__"
  }, 
  {
   "name": "__common__", 
@@ -244,6 +246,26 @@
   "permlevel": 1
  }, 
  {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "role": "Purchase Manager", 
+  "cancel": 0, 
+  "permlevel": 1
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "role": "Purchase Manager", 
+  "cancel": 0, 
+  "permlevel": 0
+ }, 
+ {
   "doctype": "DocPerm", 
   "role": "Purchase Master Manager", 
   "permlevel": 1
@@ -257,25 +279,5 @@
   "role": "Purchase Master Manager", 
   "cancel": 1, 
   "permlevel": 0
- }, 
- {
-  "amend": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "submit": 0, 
-  "write": 0, 
-  "role": "Purchase Manager", 
-  "cancel": 0, 
-  "permlevel": 1
- }, 
- {
-  "amend": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "submit": 0, 
-  "write": 0, 
-  "role": "Purchase Manager", 
-  "cancel": 0, 
-  "permlevel": 0
  }
 ]
\ No newline at end of file
diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js
index 24cab01..eccacbd 100644
--- a/home/page/latest_updates/latest_updates.js
+++ b/home/page/latest_updates/latest_updates.js
@@ -1,4 +1,8 @@
 erpnext.updates = [
+	["3rd December 2012", [
+		"Rename Tool: Documents that can be renamed will have a 'Rename' option in the sidebar (wherever applicable).",
+		"Chart of Accounts: Ability to rename / delete from Chart of Accouns.",
+	]],
 	["30th November 2012", [
 		"Auto Notifications: System will prompt user with pre-set message for auto-notification.",
 		"Employee: Users with role Employee will only be able to see their Employee Records.",
diff --git a/hr/doctype/expense_claim/expense_claim.js b/hr/doctype/expense_claim/expense_claim.js
index d890102..466a8cf 100644
--- a/hr/doctype/expense_claim/expense_claim.js
+++ b/hr/doctype/expense_claim/expense_claim.js
@@ -247,7 +247,7 @@
 
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
 	if(cint(wn.boot.notification_settings.expense_claim)) {
-		cur_frm.email_doc(wn.boot.notification_settings.expense_claim);
+		cur_frm.email_doc(wn.boot.notification_settings.expense_claim_message);
 	}
 }
 
diff --git a/production/doctype/bom/bom.py b/production/doctype/bom/bom.py
index 25fccb8..0b634d7 100644
--- a/production/doctype/bom/bom.py
+++ b/production/doctype/bom/bom.py
@@ -237,14 +237,12 @@
 				# add operation in op list
 				self.op.append(cstr(d.operation_no))
 
-
-
 	def validate_materials(self):
 		""" Validate raw material entries """
 		check_list = []
 		for m in getlist(self.doclist, 'bom_materials'):
 			# check if operation no not in op table
-			if m.operation_no not in self.op:
+			if cstr(m.operation_no) not in self.op:
 				msgprint("""Operation no: %s against item: %s at row no: %s is not present 
 					at Operations table"""% (m.operation_no, m.item_code, m.idx), raise_exception = 1)
 		
diff --git a/projects/doctype/timesheet_detail/timesheet_detail.txt b/projects/doctype/timesheet_detail/timesheet_detail.txt
index dc4f105..88e2880 100644
--- a/projects/doctype/timesheet_detail/timesheet_detail.txt
+++ b/projects/doctype/timesheet_detail/timesheet_detail.txt
@@ -1,160 +1,129 @@
-# DocType, Timesheet Detail
 [
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-03-27 14:36:07',
-		'docstatus': 0,
-		'modified': '2012-03-27 14:36:07',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': u'TSD.#####',
-		'colour': u'White:FFF',
-		'doctype': 'DocType',
-		'module': u'Projects',
-		'name': '__common__',
-		'section_style': u'Simple',
-		'server_code_error': u' ',
-		'version': 15
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Timesheet Detail',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# DocType, Timesheet Detail
-	{
-		'doctype': 'DocType',
-		'name': u'Timesheet Detail'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'act_start_time',
-		'fieldtype': u'Time',
-		'label': u'Actual Start Time',
-		'oldfieldname': u'act_start_time',
-		'oldfieldtype': u'Time',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': u'160px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'act_end_time',
-		'fieldtype': u'Time',
-		'label': u'Actual End Time',
-		'oldfieldname': u'act_end_time',
-		'oldfieldtype': u'Time',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': u'160px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'activity_type',
-		'fieldtype': u'Link',
-		'label': u'Activity Type',
-		'options': u'Activity Type',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 0,
-		'width': u'200px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'other_details',
-		'fieldtype': u'Text',
-		'label': u'Additional Info',
-		'oldfieldname': u'other_details',
-		'oldfieldtype': u'Text',
-		'permlevel': 0,
-		'width': u'200px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'act_total_hrs',
-		'fieldtype': u'Data',
-		'label': u'Total Hours (Actual)',
-		'oldfieldname': u'act_total_hrs',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'customer_name',
-		'fieldtype': u'Link',
-		'label': u'Customer Name',
-		'oldfieldname': u'customer_name',
-		'oldfieldtype': u'Data',
-		'options': u'Customer',
-		'permlevel': 0,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'project_name',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Project',
-		'oldfieldname': u'project_name',
-		'oldfieldtype': u'Link',
-		'options': u'Project',
-		'permlevel': 0,
-		'reqd': 0,
-		'search_index': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'task_id',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Task Id',
-		'oldfieldname': u'task_id',
-		'oldfieldtype': u'Link',
-		'options': u'Task',
-		'permlevel': 0,
-		'search_index': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'task_name',
-		'fieldtype': u'Link',
-		'label': u'Task Name',
-		'oldfieldname': u'task_name',
-		'oldfieldtype': u'Link',
-		'permlevel': 0,
-		'reqd': 0,
-		'search_index': 0,
-		'width': u'250px'
-	}
+ {
+  "owner": "Administrator", 
+  "docstatus": 0, 
+  "creation": "2012-11-30 18:13:54", 
+  "modified_by": "Administrator", 
+  "modified": "2012-12-03 09:33:28"
+ }, 
+ {
+  "autoname": "TSD.#####", 
+  "name": "__common__", 
+  "doctype": "DocType", 
+  "module": "Projects"
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Timesheet Detail", 
+  "doctype": "DocField", 
+  "parenttype": "DocType", 
+  "parentfield": "fields"
+ }, 
+ {
+  "name": "Timesheet Detail", 
+  "doctype": "DocType"
+ }, 
+ {
+  "oldfieldtype": "Time", 
+  "doctype": "DocField", 
+  "label": "Actual Start Time", 
+  "oldfieldname": "act_start_time", 
+  "width": "160px", 
+  "fieldname": "act_start_time", 
+  "fieldtype": "Time", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Time", 
+  "doctype": "DocField", 
+  "label": "Actual End Time", 
+  "oldfieldname": "act_end_time", 
+  "width": "160px", 
+  "fieldname": "act_end_time", 
+  "fieldtype": "Time", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "search_index": 0, 
+  "doctype": "DocField", 
+  "label": "Activity Type", 
+  "width": "200px", 
+  "options": "Activity Type", 
+  "fieldname": "activity_type", 
+  "fieldtype": "Link", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Text", 
+  "doctype": "DocField", 
+  "label": "Additional Info", 
+  "oldfieldname": "other_details", 
+  "width": "200px", 
+  "fieldname": "other_details", 
+  "fieldtype": "Text", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Total Hours (Actual)", 
+  "oldfieldname": "act_total_hrs", 
+  "width": "100px", 
+  "fieldname": "act_total_hrs", 
+  "fieldtype": "Data", 
+  "permlevel": 1
+ }, 
+ {
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Customer Name", 
+  "oldfieldname": "customer_name", 
+  "width": "150px", 
+  "options": "Customer", 
+  "fieldname": "customer_name", 
+  "fieldtype": "Link", 
+  "permlevel": 0
+ }, 
+ {
+  "permlevel": 0, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Project", 
+  "oldfieldname": "project_name", 
+  "width": "150px", 
+  "fieldname": "project_name", 
+  "fieldtype": "Link", 
+  "search_index": 1, 
+  "reqd": 0, 
+  "options": "Project", 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Task Id", 
+  "oldfieldname": "task_id", 
+  "width": "150px", 
+  "options": "Task", 
+  "fieldname": "task_id", 
+  "fieldtype": "Link", 
+  "search_index": 1, 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Task Name", 
+  "oldfieldname": "task_name", 
+  "width": "250px", 
+  "fieldname": "task_name", 
+  "fieldtype": "Data", 
+  "search_index": 0, 
+  "reqd": 0, 
+  "permlevel": 0
+ }
 ]
\ No newline at end of file
diff --git a/selling/doctype/customer/customer.py b/selling/doctype/customer/customer.py
index fa16f45..03a8c7e 100644
--- a/selling/doctype/customer/customer.py
+++ b/selling/doctype/customer/customer.py
@@ -125,6 +125,7 @@
 				parent_account = self.get_receivables_group()
 				arg = {'account_name':self.doc.name,'parent_account': parent_account, 'group_or_ledger':'Ledger', 'company':self.doc.company,'account_type':'','tax_rate':'0','master_type':'Customer','master_name':self.doc.name,'address':self.doc.address}
 				# create
+				
 				ac = get_obj('GL Control').add_ac(cstr(arg))
 				msgprint("Account Head created for "+ac)
 		else :
@@ -236,5 +237,11 @@
 			for rec in update_fields:
 				sql("update `tab%s` set customer_name = '%s' where %s = '%s'" %(rec[0],newdn,rec[1],olddn))
 				
+		old_account = webnotes.conn.get_value("Account", {"master_type": "Customer",
+			"master_name": olddn})
+				
 		#update master_name in doctype account
 		sql("update `tabAccount` set master_name = '%s', master_type = 'Customer' where master_name = '%s'" %(newdn,olddn))
+		
+		from webnotes.model.rename_doc import rename_doc
+		rename_doc("Account", old_account, newdn)
diff --git a/selling/doctype/customer/customer.txt b/selling/doctype/customer/customer.txt
index 6b174d7..2bc9e89 100644
--- a/selling/doctype/customer/customer.txt
+++ b/selling/doctype/customer/customer.txt
@@ -2,19 +2,21 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2012-11-02 17:16:46", 
+  "creation": "2012-12-03 10:31:05", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-30 10:54:38"
+  "modified": "2012-12-03 11:25:29"
  }, 
  {
-  "autoname": "naming_series:", 
-  "name": "__common__", 
-  "default_print_format": "Standard", 
+  "description": "Buyer of Goods and Services.", 
   "allow_print": 0, 
   "search_fields": "customer_name,customer_group,country,territory", 
   "module": "Selling", 
-  "doctype": "DocType", 
-  "document_type": "Master"
+  "document_type": "Master", 
+  "autoname": "naming_series:", 
+  "name": "__common__", 
+  "default_print_format": "Standard", 
+  "allow_rename": 1, 
+  "doctype": "DocType"
  }, 
  {
   "name": "__common__", 
@@ -366,42 +368,52 @@
  }, 
  {
   "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Sales Manager", 
+  "permlevel": 1
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Sales Manager", 
+  "permlevel": 0
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Sales User", 
+  "permlevel": 1
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Sales User", 
+  "permlevel": 0
+ }, 
+ {
+  "amend": 0, 
   "create": 1, 
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 1, 
-  "role": "Sales Master Manager", 
   "cancel": 1, 
-  "permlevel": 0
- }, 
- {
-  "amend": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "submit": 0, 
-  "write": 0, 
   "role": "Sales Master Manager", 
-  "cancel": 0, 
-  "permlevel": 1
- }, 
- {
-  "amend": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "submit": 0, 
-  "write": 0, 
-  "role": "Sales Manager", 
-  "cancel": 0, 
-  "permlevel": 1
- }, 
- {
-  "amend": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "submit": 0, 
-  "write": 0, 
-  "role": "Sales Manager", 
-  "cancel": 0, 
   "permlevel": 0
  }, 
  {
@@ -410,18 +422,18 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "role": "Sales User", 
   "cancel": 0, 
+  "role": "Sales Master Manager", 
   "permlevel": 1
  }, 
  {
   "amend": 0, 
-  "create": 0, 
+  "create": 1, 
   "doctype": "DocPerm", 
   "submit": 0, 
-  "write": 0, 
-  "role": "Sales User", 
+  "write": 1, 
   "cancel": 0, 
+  "role": "Purchase User", 
   "permlevel": 0
  }, 
  {
diff --git a/selling/doctype/opportunity/opportunity.js b/selling/doctype/opportunity/opportunity.js
index 3da2ac8..67a6e24 100644
--- a/selling/doctype/opportunity/opportunity.js
+++ b/selling/doctype/opportunity/opportunity.js
@@ -94,8 +94,21 @@
 
 // customer
 cur_frm.cscript.customer = function(doc,dt,dn) {
-	if(doc.customer) get_server_fields('get_default_customer_address', JSON.stringify({customer: doc.customer}),'', doc, dt, dn, 1);
-	if(doc.customer) unhide_field(['customer_name','customer_address','contact_person','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
+	if(doc.customer) {
+		cur_frm.call({
+			method: "get_default_customer_address",
+			args: { customer: doc.customer },
+			callback: function(r) {
+				if(!r.exc) {
+					cur_frm.refresh();
+				}
+			}
+		});
+		
+		unhide_field(["customer_name", "customer_address", "contact_person",
+			"address_display", "contact_display", "contact_mobile", "contact_email",
+			"territory", "customer_group"]);
+	}
 }
 
 cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {		
diff --git a/selling/doctype/opportunity/opportunity.txt b/selling/doctype/opportunity/opportunity.txt
index 575cc10..47d79f2 100644
--- a/selling/doctype/opportunity/opportunity.txt
+++ b/selling/doctype/opportunity/opportunity.txt
@@ -2,19 +2,20 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2012-11-24 17:21:44", 
+  "creation": "2012-12-03 10:31:06", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-30 10:54:00"
+  "modified": "2012-12-03 13:57:32"
  }, 
  {
   "is_submittable": 1, 
   "autoname": "naming_series:", 
-  "name": "__common__", 
+  "description": "Potential Sales Deal", 
   "default_print_format": "Standard", 
   "search_fields": "status,transaction_date,customer,lead,enquiry_type,territory,company", 
   "module": "Selling", 
   "doctype": "DocType", 
-  "document_type": "Transaction"
+  "document_type": "Transaction", 
+  "name": "__common__"
  }, 
  {
   "name": "__common__", 
@@ -36,16 +37,6 @@
   "doctype": "DocType"
  }, 
  {
-  "description": "Enter customer enquiry for which you might raise a quotation in future", 
-  "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
-  "doctype": "DocField", 
-  "label": "Basic Info", 
-  "fieldname": "basic_info", 
-  "fieldtype": "Section Break", 
-  "permlevel": 0
- }, 
- {
   "description": "To manage multiple series please go to Setup > Manage Series", 
   "no_copy": 1, 
   "oldfieldtype": "Select", 
@@ -475,13 +466,23 @@
   "permlevel": 1
  }, 
  {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Sales Manager", 
+  "permlevel": 1
+ }, 
+ {
   "amend": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "role": "System Manager", 
   "cancel": 1, 
+  "role": "System Manager", 
   "permlevel": 0
  }, 
  {
@@ -495,8 +496,8 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "role": "Sales User", 
   "cancel": 1, 
+  "role": "Sales User", 
   "permlevel": 0
  }, 
  {
@@ -505,8 +506,8 @@
   "doctype": "DocPerm", 
   "submit": 0, 
   "write": 0, 
-  "role": "Sales User", 
   "cancel": 0, 
+  "role": "Sales User", 
   "permlevel": 1
  }, 
  {
@@ -515,18 +516,8 @@
   "doctype": "DocPerm", 
   "submit": 1, 
   "write": 1, 
-  "role": "Sales Manager", 
   "cancel": 1, 
-  "permlevel": 0
- }, 
- {
-  "amend": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "submit": 0, 
-  "write": 0, 
   "role": "Sales Manager", 
-  "cancel": 0, 
-  "permlevel": 1
+  "permlevel": 0
  }
 ]
\ No newline at end of file
diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js
index 6a3dfc4..288c1f4 100644
--- a/selling/doctype/sales_order/sales_order.js
+++ b/selling/doctype/sales_order/sales_order.js
@@ -369,6 +369,6 @@
 
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
 	if(cint(wn.boot.notification_settings.sales_order)) {
-		cur_frm.email_doc(wn.boot.notification_settings.sales_order);
+		cur_frm.email_doc(wn.boot.notification_settings.sales_order_message);
 	}
 }
diff --git a/setup/doctype/company/company.txt b/setup/doctype/company/company.txt
index 1502ed4..056508a 100644
--- a/setup/doctype/company/company.txt
+++ b/setup/doctype/company/company.txt
@@ -1,377 +1,307 @@
-# DocType, Company
 [
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-05-15 12:15:00',
-		'docstatus': 0,
-		'modified': '2012-08-10 12:15:45',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': u'1323855292',
-		'allow_trash': 1,
-		'autoname': u'field:company_name',
-		'colour': u'White:FFF',
-		'doctype': 'DocType',
-		'document_type': u'Master',
-		'module': u'Setup',
-		'name': '__common__',
-		'section_style': u'Tabbed',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Company',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': u'DocPerm',
-		'name': '__common__',
-		'parent': u'Company',
-		'parentfield': u'permissions',
-		'parenttype': u'DocType',
-		'read': 1
-	},
-
-	# DocType, Company
-	{
-		'doctype': 'DocType',
-		'name': u'Company'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'System Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'System Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'cancel': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'All'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'details',
-		'fieldtype': u'Section Break',
-		'label': u'Company Details',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'company_name',
-		'fieldtype': u'Data',
-		'label': u'Company',
-		'no_copy': 0,
-		'oldfieldname': u'company_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'cb0',
-		'fieldtype': u'Column Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.',
-		'doctype': u'DocField',
-		'fieldname': u'abbr',
-		'fieldtype': u'Data',
-		'label': u'Abbr',
-		'no_copy': 0,
-		'oldfieldname': u'abbr',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'default_settings',
-		'fieldtype': u'Section Break',
-		'label': u'Default Settings',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'default_currency',
-		'fieldtype': u'Select',
-		'label': u'Default Currency',
-		'options': u'link:Currency',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'depends_on': u'eval:!doc.__islocal',
-		'doctype': u'DocField',
-		'fieldname': u'default_bank_account',
-		'fieldtype': u'Link',
-		'label': u'Default Bank Account',
-		'no_copy': 1,
-		'oldfieldname': u'default_bank_account',
-		'oldfieldtype': u'Link',
-		'options': u'Account',
-		'permlevel': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'depends_on': u'eval:!doc.__islocal',
-		'doctype': u'DocField',
-		'fieldname': u'receivables_group',
-		'fieldtype': u'Link',
-		'label': u'Receivables Group',
-		'no_copy': 1,
-		'oldfieldname': u'receivables_group',
-		'oldfieldtype': u'Link',
-		'options': u'Account',
-		'permlevel': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'depends_on': u'eval:!doc.__islocal',
-		'doctype': u'DocField',
-		'fieldname': u'payables_group',
-		'fieldtype': u'Link',
-		'label': u'Payables Group',
-		'no_copy': 1,
-		'oldfieldname': u'payables_group',
-		'oldfieldtype': u'Link',
-		'options': u'Account',
-		'permlevel': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break0',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'depends_on': u'eval:!doc.__islocal',
-		'doctype': u'DocField',
-		'fieldname': u'credit_days',
-		'fieldtype': u'Int',
-		'label': u'Credit Days',
-		'oldfieldname': u'credit_days',
-		'oldfieldtype': u'Int',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'depends_on': u'eval:!doc.__islocal',
-		'doctype': u'DocField',
-		'fieldname': u'credit_limit',
-		'fieldtype': u'Currency',
-		'label': u'Credit Limit',
-		'oldfieldname': u'credit_limit',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'depends_on': u'eval:!doc.__islocal',
-		'doctype': u'DocField',
-		'fieldname': u'yearly_bgt_flag',
-		'fieldtype': u'Select',
-		'label': u'If Yearly Budget Exceeded',
-		'oldfieldname': u'yearly_bgt_flag',
-		'oldfieldtype': u'Select',
-		'options': u'\nWarn\nIgnore\nStop',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'depends_on': u'eval:!doc.__islocal',
-		'doctype': u'DocField',
-		'fieldname': u'monthly_bgt_flag',
-		'fieldtype': u'Select',
-		'label': u'If Monthly Budget Exceeded',
-		'oldfieldname': u'monthly_bgt_flag',
-		'oldfieldtype': u'Select',
-		'options': u'\nWarn\nIgnore\nStop',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'For reference only.',
-		'doctype': u'DocField',
-		'fieldname': u'company_info',
-		'fieldtype': u'Section Break',
-		'label': u'Company Info',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'address',
-		'fieldtype': u'Small Text',
-		'label': u'Address',
-		'oldfieldname': u'address',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break1',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'phone_no',
-		'fieldtype': u'Data',
-		'label': u'Phone No',
-		'oldfieldname': u'phone_no',
-		'oldfieldtype': u'Data',
-		'options': u'Phone',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'fax',
-		'fieldtype': u'Data',
-		'label': u'Fax',
-		'oldfieldname': u'fax',
-		'oldfieldtype': u'Data',
-		'options': u'Phone',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'email',
-		'fieldtype': u'Data',
-		'label': u'Email',
-		'oldfieldname': u'email',
-		'oldfieldtype': u'Data',
-		'options': u'Email',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'website',
-		'fieldtype': u'Data',
-		'label': u'Website',
-		'oldfieldname': u'website',
-		'oldfieldtype': u'Data',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Company registration numbers for your reference. Example: VAT Registration Numbers etc.',
-		'doctype': u'DocField',
-		'fieldname': u'registration_info',
-		'fieldtype': u'Section Break',
-		'label': u'Registration Info',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Company registration numbers for your reference. Tax numbers etc.',
-		'doctype': u'DocField',
-		'fieldname': u'registration_details',
-		'fieldtype': u'Code',
-		'label': u'Registration Details',
-		'oldfieldname': u'registration_details',
-		'oldfieldtype': u'Code',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'trash_reason',
-		'fieldtype': u'Small Text',
-		'label': u'Trash Reason',
-		'no_copy': 1,
-		'oldfieldname': u'trash_reason',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 1
-	}
+ {
+  "owner": "Administrator", 
+  "docstatus": 0, 
+  "creation": "2012-08-10 13:00:45", 
+  "modified_by": "Administrator", 
+  "modified": "2012-12-03 11:26:05"
+ }, 
+ {
+  "autoname": "field:company_name", 
+  "description": "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.", 
+  "allow_rename": 1, 
+  "doctype": "DocType", 
+  "module": "Setup", 
+  "document_type": "Master", 
+  "name": "__common__"
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Company", 
+  "doctype": "DocField", 
+  "parenttype": "DocType", 
+  "parentfield": "fields"
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Company", 
+  "read": 1, 
+  "doctype": "DocPerm", 
+  "parenttype": "DocType", 
+  "parentfield": "permissions"
+ }, 
+ {
+  "name": "Company", 
+  "doctype": "DocType"
+ }, 
+ {
+  "oldfieldtype": "Section Break", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Company Details", 
+  "fieldname": "details", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "no_copy": 0, 
+  "oldfieldtype": "Data", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Company", 
+  "oldfieldname": "company_name", 
+  "fieldname": "company_name", 
+  "fieldtype": "Data", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "cb0", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.", 
+  "no_copy": 0, 
+  "oldfieldtype": "Data", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Abbr", 
+  "oldfieldname": "abbr", 
+  "fieldname": "abbr", 
+  "fieldtype": "Data", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "Default Settings", 
+  "fieldname": "default_settings", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Default Currency", 
+  "options": "link:Currency", 
+  "fieldname": "default_currency", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Default Bank Account", 
+  "oldfieldname": "default_bank_account", 
+  "trigger": "Client", 
+  "fieldname": "default_bank_account", 
+  "fieldtype": "Link", 
+  "depends_on": "eval:!doc.__islocal", 
+  "options": "Account", 
+  "permlevel": 0
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Receivables Group", 
+  "oldfieldname": "receivables_group", 
+  "trigger": "Client", 
+  "fieldname": "receivables_group", 
+  "fieldtype": "Link", 
+  "depends_on": "eval:!doc.__islocal", 
+  "options": "Account", 
+  "permlevel": 0
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Payables Group", 
+  "oldfieldname": "payables_group", 
+  "trigger": "Client", 
+  "fieldname": "payables_group", 
+  "fieldtype": "Link", 
+  "depends_on": "eval:!doc.__islocal", 
+  "options": "Account", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Column Break", 
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break0", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Int", 
+  "doctype": "DocField", 
+  "label": "Credit Days", 
+  "oldfieldname": "credit_days", 
+  "fieldname": "credit_days", 
+  "fieldtype": "Int", 
+  "depends_on": "eval:!doc.__islocal", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Credit Limit", 
+  "oldfieldname": "credit_limit", 
+  "fieldname": "credit_limit", 
+  "fieldtype": "Currency", 
+  "depends_on": "eval:!doc.__islocal", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "If Yearly Budget Exceeded", 
+  "oldfieldname": "yearly_bgt_flag", 
+  "options": "\nWarn\nIgnore\nStop", 
+  "fieldname": "yearly_bgt_flag", 
+  "fieldtype": "Select", 
+  "depends_on": "eval:!doc.__islocal", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Select", 
+  "doctype": "DocField", 
+  "label": "If Monthly Budget Exceeded", 
+  "oldfieldname": "monthly_bgt_flag", 
+  "options": "\nWarn\nIgnore\nStop", 
+  "fieldname": "monthly_bgt_flag", 
+  "fieldtype": "Select", 
+  "depends_on": "eval:!doc.__islocal", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "For reference only.", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Company Info", 
+  "fieldname": "company_info", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Small Text", 
+  "doctype": "DocField", 
+  "label": "Address", 
+  "oldfieldname": "address", 
+  "fieldname": "address", 
+  "fieldtype": "Small Text", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Column Break", 
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break1", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Phone No", 
+  "oldfieldname": "phone_no", 
+  "options": "Phone", 
+  "fieldname": "phone_no", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Fax", 
+  "oldfieldname": "fax", 
+  "options": "Phone", 
+  "fieldname": "fax", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Email", 
+  "oldfieldname": "email", 
+  "options": "Email", 
+  "fieldname": "email", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Website", 
+  "oldfieldname": "website", 
+  "fieldname": "website", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Company registration numbers for your reference. Example: VAT Registration Numbers etc.", 
+  "oldfieldtype": "Section Break", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Registration Info", 
+  "width": "50%", 
+  "fieldname": "registration_info", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Company registration numbers for your reference. Tax numbers etc.", 
+  "oldfieldtype": "Code", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Registration Details", 
+  "oldfieldname": "registration_details", 
+  "fieldname": "registration_details", 
+  "fieldtype": "Code", 
+  "permlevel": 0
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Small Text", 
+  "doctype": "DocField", 
+  "label": "Trash Reason", 
+  "oldfieldname": "trash_reason", 
+  "fieldname": "trash_reason", 
+  "fieldtype": "Small Text", 
+  "permlevel": 1
+ }, 
+ {
+  "amend": 0, 
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 1, 
+  "role": "System Manager", 
+  "cancel": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "amend": 0, 
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 1, 
+  "role": "System Manager", 
+  "cancel": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "All", 
+  "cancel": 0, 
+  "permlevel": 1
+ }
 ]
\ No newline at end of file
diff --git a/setup/doctype/contact_control/contact_control.js b/setup/doctype/contact_control/contact_control.js
index b64b589..faadc6a 100755
--- a/setup/doctype/contact_control/contact_control.js
+++ b/setup/doctype/contact_control/contact_control.js
@@ -214,3 +214,30 @@
 		}
 	});
 }
+
+// Render List
+cur_frm.cscript.render_list = function(doc, doctype, wrapper, ListView, make_new_doc) {
+	wn.model.with_doctype(doctype, function(r) {
+		if((r && r['403']) || wn.boot.profile.all_read.indexOf(doctype)===-1) {
+			return;
+		}
+		var RecordListView = wn.views.RecordListView.extend({
+			default_docstatus: ['0', '1', '2'],
+			default_filters: [
+				[doctype, doc.doctype.toLowerCase().replace(" ", "_"), '=', doc.name],
+			],
+		});
+		
+		if (make_new_doc) {
+			RecordListView = RecordListView.extend({
+				make_new_doc: make_new_doc,
+			});
+		}
+		
+		var record_list_view = new RecordListView(doctype, wrapper, ListView);
+		if (!cur_frm[doctype.toLowerCase().replace(" ", "_") + "_list"]) {
+			cur_frm[doctype.toLowerCase().replace(" ", "_") + "_list"] = record_list_view;
+		}
+	});
+}
+
diff --git a/setup/page/setup/setup.html b/setup/page/setup/setup.html
index 1eca285..1b5e967 100644
--- a/setup/page/setup/setup.html
+++ b/setup/page/setup/setup.html
@@ -46,8 +46,8 @@
 				<span class="help">Un-trash items</span>
 			</p>
 			<p>
-				<b><a href="#!Form/Rename Tool/Rename Tool">Rename Master</a></b><br>
-				<span class="help">Rename a single master record</span>
+				<b>Rename Master</b><br>
+				<span class="help">Click on "Rename" on the sidebar of an item for renaming.</span>
 			</p>
 		</div>
 		<div class="setup-column">
diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js
index 10739d2..6227675 100644
--- a/stock/doctype/delivery_note/delivery_note.js
+++ b/stock/doctype/delivery_note/delivery_note.js
@@ -317,6 +317,6 @@
 
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
 	if(cint(wn.boot.notification_settings.delivery_note)) {
-		cur_frm.email_doc(wn.boot.notification_settings.delivery_note);
+		cur_frm.email_doc(wn.boot.notification_settings.delivery_note_message);
 	}
 }
\ No newline at end of file
diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py
index 92dc82b..41ae423 100644
--- a/stock/doctype/item/item.py
+++ b/stock/doctype/item/item.py
@@ -141,7 +141,7 @@
 					'is_purchase_item'			:'Is Purchase Item',
 					'is_pro_applicable'		 :'Is Pro Applicable'}
 		for d in fl:
-			if cstr(self.doc.fields[d]) != 'Yes':
+			if cstr(self.doc.fields.get(d)) != 'Yes':
 				self.check_for_active_boms(check = fl[d])
 		self.check_ref_rate_detail()
 		self.fill_customer_code()
diff --git a/stock/doctype/item/item.txt b/stock/doctype/item/item.txt
index 54c8ab6..bf84627 100644
--- a/stock/doctype/item/item.txt
+++ b/stock/doctype/item/item.txt
@@ -1,1016 +1,840 @@
-# DocType, Item
 [
-
-	# These values are common in all dictionaries
-	{
-		u'creation': '2012-10-26 16:49:39',
-		u'docstatus': 0,
-		u'modified': '2012-11-16 16:50:57',
-		u'modified_by': u'Administrator',
-		u'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': u'1329808172',
-		'allow_attach': 1,
-		'allow_trash': 1,
-		'autoname': u'field:item_code',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		u'doctype': u'DocType',
-		'document_type': u'Master',
-		'max_attachments': 1,
-		'module': u'Stock',
-		u'name': u'__common__',
-		'search_fields': u'item_name,description,item_group,customer_code',
-		'section_style': u'Tray',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'subject': u'%(item_name)s',
-		'tag_fields': u'item_group',
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		u'doctype': u'DocField',
-		u'name': u'__common__',
-		'parent': u'Item',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		u'doctype': u'DocPerm',
-		u'name': u'__common__',
-		'parent': u'Item',
-		'parentfield': u'permissions',
-		'parenttype': u'DocType',
-		'read': 1
-	},
-
-	# DocType, Item
-	{
-		u'doctype': u'DocType',
-		u'name': u'Item'
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'item',
-		'fieldtype': u'Section Break',
-		'label': u'Item',
-		'no_copy': 0,
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# 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
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Item will be saved by this name in the data base.',
-		u'doctype': u'DocField',
-		'fieldname': u'item_code',
-		'fieldtype': u'Data',
-		'in_filter': 0,
-		'label': u'Item Code',
-		'oldfieldname': u'item_code',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'item_name',
-		'fieldtype': u'Data',
-		'in_filter': 1,
-		'label': u'Item Name',
-		'oldfieldname': u'item_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'<a href="#!Sales Browser/Item Group">Manage Item Groups</a>',
-		u'doctype': u'DocField',
-		'fieldname': u'item_group',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Item Group',
-		'oldfieldname': u'item_group',
-		'oldfieldtype': u'Link',
-		'options': u'Item Group',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'brand',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'label': u'Brand',
-		'oldfieldname': u'brand',
-		'oldfieldtype': u'Link',
-		'options': u'Brand',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'barcode',
-		'fieldtype': u'Data',
-		'label': u'Barcode',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'column_break0',
-		'fieldtype': u'Column Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Text',
-		'in_filter': 0,
-		'label': u'Description',
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Text',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 0,
-		'width': u'300px'
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'description_html',
-		'fieldtype': u'Text',
-		'label': u'Description HTML',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Generates HTML to include image (1st attachment) in the description',
-		u'doctype': u'DocField',
-		'fieldname': u'add_image',
-		'fieldtype': u'Button',
-		'label': u'Add Image',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'inventory',
-		'fieldtype': u'Section Break',
-		'label': u'Inventory',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'Yes',
-		'description': u'Select "Yes" if you are maintaining stock of this item in your Inventory.',
-		u'doctype': u'DocField',
-		'fieldname': u'is_stock_item',
-		'fieldtype': u'Select',
-		'label': u'Is Stock Item',
-		'oldfieldname': u'is_stock_item',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Mandatory if Stock Item is "Yes"',
-		u'doctype': u'DocField',
-		'fieldname': u'default_warehouse',
-		'fieldtype': u'Link',
-		'label': u'Default Reserved Warehouse',
-		'oldfieldname': u'default_warehouse',
-		'oldfieldtype': u'Link',
-		'options': u'Warehouse',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Enter unit of measurement in which stock of this item is maintained in your warehouse.',
-		u'doctype': u'DocField',
-		'fieldname': u'stock_uom',
-		'fieldtype': u'Link',
-		'label': u'Default UoM',
-		'oldfieldname': u'stock_uom',
-		'oldfieldtype': u'Link',
-		'options': u'UOM',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Percentage variation in quantity to be allowed while receiving or delivering this item.',
-		u'doctype': u'DocField',
-		'fieldname': u'tolerance',
-		'fieldtype': u'Currency',
-		'label': u'Allowance Percent',
-		'oldfieldname': u'tolerance',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'The system will generate a Purchase Request automatically when stock quantity goes below re-order level in warehouse of type "Stores" or "Reserved Warehouse".',
-		u'doctype': u'DocField',
-		'fieldname': u're_order_level',
-		'fieldtype': u'Currency',
-		'label': u'Re-Order Level',
-		'oldfieldname': u're_order_level',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'The quantity for the Purchase Request when the stock goes below re-order level.',
-		u'doctype': u'DocField',
-		'fieldname': u're_order_qty',
-		'fieldtype': u'Currency',
-		'label': u'Re-Order Qty',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Send an email to users of role "Material Manager" and "Purchase Manager" when re-order level is crossed.',
-		u'doctype': u'DocField',
-		'fieldname': u'email_notify',
-		'fieldtype': u'Check',
-		'label': u'Notify by Email on Re-order',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'valuation_method',
-		'fieldtype': u'Select',
-		'label': u'Valuation Method',
-		'options': u'\nFIFO\nMoving Average',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'0.00',
-		'description': u'You can enter the minimum quantity of this item to be ordered.',
-		u'doctype': u'DocField',
-		'fieldname': u'min_order_qty',
-		'fieldtype': u'Currency',
-		'hidden': 0,
-		'label': u'Minimum Order Qty',
-		'oldfieldname': u'min_order_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'column_break1',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'No',
-		'description': u'Select "Yes" if this item is used for some internal purpose in your company.',
-		u'doctype': u'DocField',
-		'fieldname': u'is_asset_item',
-		'fieldtype': u'Select',
-		'label': u'Is Asset Item',
-		'oldfieldname': u'is_asset_item',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'No',
-		u'doctype': u'DocField',
-		'fieldname': u'has_batch_no',
-		'fieldtype': u'Select',
-		'label': u'Has Batch No',
-		'oldfieldname': u'has_batch_no',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'No',
-		'description': u'Selecting "Yes" will give a unique identity to each entity of this item which can be viewed in the Serial No master.',
-		u'doctype': u'DocField',
-		'fieldname': u'has_serial_no',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Has Serial No',
-		'oldfieldname': u'has_serial_no',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'warranty_period',
-		'fieldtype': u'Data',
-		'label': u'Warranty Period (in days)',
-		'oldfieldname': u'warranty_period',
-		'oldfieldtype': u'Data',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'end_of_life',
-		'fieldtype': u'Date',
-		'label': u'End of Life',
-		'oldfieldname': u'end_of_life',
-		'oldfieldtype': u'Date',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'description': u'Net Weight of each Item',
-		u'doctype': u'DocField',
-		'fieldname': u'net_weight',
-		'fieldtype': u'Float',
-		'label': u'Net Weight',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'weight_uom',
-		'fieldtype': u'Link',
-		'label': u'Weight UOM',
-		'options': u'UOM',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		u'doctype': u'DocField',
-		'fieldname': u'purchase_details',
-		'fieldtype': u'Section Break',
-		'label': u'Purchase Details',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'Yes',
-		'description': u'Selecting "Yes" will allow this item to appear in Purchase Order , Purchase Receipt.',
-		u'doctype': u'DocField',
-		'fieldname': u'is_purchase_item',
-		'fieldtype': u'Select',
-		'label': u'Is Purchase Item',
-		'oldfieldname': u'is_purchase_item',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Purchase Request when you select this item.',
-		u'doctype': u'DocField',
-		'fieldname': u'lead_time_days',
-		'fieldtype': u'Int',
-		'label': u'Lead Time Days',
-		'no_copy': 1,
-		'oldfieldname': u'lead_time_days',
-		'oldfieldtype': u'Int',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Default Purchase Account in which cost of the item will be debited.',
-		u'doctype': u'DocField',
-		'fieldname': u'purchase_account',
-		'fieldtype': u'Link',
-		'label': u'Default Expense Account',
-		'oldfieldname': u'purchase_account',
-		'oldfieldtype': u'Link',
-		'options': u'Account',
-		'permlevel': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Default Cost Center for tracking expense for this item.',
-		u'doctype': u'DocField',
-		'fieldname': u'cost_center',
-		'fieldtype': u'Link',
-		'label': u'Default Cost Center',
-		'oldfieldname': u'cost_center',
-		'oldfieldtype': u'Link',
-		'options': u'Cost Center',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Buying Cost will be updated from Purchase Orders and Purchase Receipts. <br>The buying cost will calculated by moving average method.',
-		u'doctype': u'DocField',
-		'fieldname': u'buying_cost',
-		'fieldtype': u'Currency',
-		'label': u'Buying Cost',
-		'no_copy': 1,
-		'oldfieldname': u'buying_cost',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		u'doctype': u'DocField',
-		'fieldname': u'last_purchase_rate',
-		'fieldtype': u'Currency',
-		'label': u'Last Purchase Rate',
-		'no_copy': 1,
-		'oldfieldname': u'last_purchase_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'standard_rate',
-		'fieldtype': u'Currency',
-		'label': u'Standard Rate',
-		'oldfieldname': u'standard_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'column_break2',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'uom_conversion_details',
-		'fieldtype': u'Table',
-		'label': u'UOM Conversion Details',
-		'oldfieldname': u'uom_conversion_details',
-		'oldfieldtype': u'Table',
-		'options': u'UOM Conversion Detail',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'manufacturer',
-		'fieldtype': u'Data',
-		'label': u'Manufacturer',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'manufacturer_part_no',
-		'fieldtype': u'Data',
-		'label': u'Manufacturer Part Number',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'item_supplier_details',
-		'fieldtype': u'Table',
-		'label': u'Item Supplier Details',
-		'options': u'Item Supplier',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'sales_details',
-		'fieldtype': u'Section Break',
-		'label': u'Sales Details',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'Yes',
-		'description': u'Selecting "Yes" will allow this item to figure in Sales Order, Delivery Note',
-		u'doctype': u'DocField',
-		'fieldname': u'is_sales_item',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Is Sales Item',
-		'oldfieldname': u'is_sales_item',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'No',
-		'description': u'Select "Yes" if this item represents some work like training, designing, consulting etc.',
-		u'doctype': u'DocField',
-		'fieldname': u'is_service_item',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Is Service Item',
-		'oldfieldname': u'is_service_item',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'No',
-		'description': u'Select "Yes" if this item is to be sent to a customer or received from a supplier as a sample. Delivery notes and Purchase Receipts will update stock levels but there will be no invoice against this item.',
-		u'doctype': u'DocField',
-		'fieldname': u'is_sample_item',
-		'fieldtype': u'Select',
-		'label': u'Allow Samples',
-		'oldfieldname': u'is_sample_item',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'max_discount',
-		'fieldtype': u'Currency',
-		'label': u'Max Discount (%)',
-		'oldfieldname': u'max_discount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'default_income_account',
-		'fieldtype': u'Link',
-		'label': u'Default Income Account',
-		'options': u'Account',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'default_sales_cost_center',
-		'fieldtype': u'Link',
-		'label': u'Cost Center',
-		'options': u'Cost Center',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'sales_rate',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'label': u'Sales Rate',
-		'oldfieldname': u'sales_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'column_break3',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Create a price list from Price List master and enter standard ref rates against each of them. On selection of a price list in Quotation, Sales Order or Delivery Note, corresponding ref rate will be fetched for this item.',
-		u'doctype': u'DocField',
-		'fieldname': u'ref_rate_details',
-		'fieldtype': u'Table',
-		'label': u'Item Prices',
-		'oldfieldname': u'ref_rate_details',
-		'oldfieldtype': u'Table',
-		'options': u'Item Price',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'description': u'For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes',
-		u'doctype': u'DocField',
-		'fieldname': u'item_customer_details',
-		'fieldtype': u'Table',
-		'label': u'Customer Codes',
-		'options': u'Item Customer Detail',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'item_tax_section_break',
-		'fieldtype': u'Section Break',
-		'label': u'Item Tax',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'item_tax',
-		'fieldtype': u'Table',
-		'label': u'Item Tax1',
-		'oldfieldname': u'item_tax',
-		'oldfieldtype': u'Table',
-		'options': u'Item Tax',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'inspection_criteria',
-		'fieldtype': u'Section Break',
-		'label': u'Inspection Criteria',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'default': u'No',
-		u'doctype': u'DocField',
-		'fieldname': u'inspection_required',
-		'fieldtype': u'Select',
-		'label': u'Inspection Required',
-		'no_copy': 0,
-		'oldfieldname': u'inspection_required',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'item_specification_details',
-		'fieldtype': u'Table',
-		'label': u'Item Quality Inspection Parameter',
-		'oldfieldname': u'item_specification_details',
-		'oldfieldtype': u'Table',
-		'options': u'Item Quality Inspection Parameter',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'manufacturing',
-		'fieldtype': u'Section Break',
-		'label': u'Manufacturing',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'No',
-		'description': u'Selecting "Yes" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.',
-		u'doctype': u'DocField',
-		'fieldname': u'is_manufactured_item',
-		'fieldtype': u'Select',
-		'label': u'Allow Bill of Materials',
-		'oldfieldname': u'is_manufactured_item',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		u'doctype': u'DocField',
-		'fieldname': u'default_bom',
-		'fieldtype': u'Link',
-		'label': u'Default BOM',
-		'no_copy': 1,
-		'oldfieldname': u'default_bom',
-		'oldfieldtype': u'Link',
-		'options': u'BOM',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'No',
-		'description': u'Selecting "Yes" will allow you to make a Production Order for this item.',
-		u'doctype': u'DocField',
-		'fieldname': u'is_pro_applicable',
-		'fieldtype': u'Select',
-		'label': u'Allow Production Order',
-		'oldfieldname': u'is_pro_applicable',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'No',
-		'description': u'Select "Yes" if you supply raw materials to your supplier to manufacture this item.',
-		u'doctype': u'DocField',
-		'fieldname': u'is_sub_contracted_item',
-		'fieldtype': u'Select',
-		'label': u'Is Sub Contracted Item',
-		'oldfieldname': u'is_sub_contracted_item',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'file_list',
-		'fieldtype': u'Text',
-		'hidden': 1,
-		'label': u'File List',
-		'no_copy': 1,
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'customer_code',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Customer Code',
-		'no_copy': 1,
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'website_section',
-		'fieldtype': u'Section Break',
-		'label': u'Website',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'show_in_website',
-		'fieldtype': u'Check',
-		'label': u'Show in Website',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'website page link',
-		u'doctype': u'DocField',
-		'fieldname': u'page_name',
-		'fieldtype': u'Data',
-		'label': u'Page Name',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'website_image',
-		'fieldtype': u'Select',
-		'label': u'Image',
-		'options': u'attach_files:',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'web_short_description',
-		'fieldtype': u'Text',
-		'label': u'Short Description',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'web_long_description',
-		'fieldtype': u'Code',
-		'label': u'Long Description',
-		'options': u'Markdown',
-		'permlevel': 0
-	},
-
-	# 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': 0,
-		u'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# 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': 0,
-		u'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		u'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material Master Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 0,
-		u'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Material Master Manager',
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		u'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		u'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'System Manager'
-	}
+ {
+  "owner": "Administrator", 
+  "docstatus": 0, 
+  "creation": "2012-10-26 16:49:39", 
+  "modified_by": "Administrator", 
+  "modified": "2012-12-03 11:24:59"
+ }, 
+ {
+  "allow_attach": 1, 
+  "search_fields": "item_name,description,item_group,customer_code", 
+  "module": "Stock", 
+  "document_type": "Master", 
+  "description": "A Product or a Service that is bought, sold or kept in stock.", 
+  "autoname": "field:item_code", 
+  "name": "__common__", 
+  "default_print_format": "Standard", 
+  "allow_rename": 1, 
+  "doctype": "DocType", 
+  "max_attachments": 1
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Item", 
+  "doctype": "DocField", 
+  "parenttype": "DocType", 
+  "parentfield": "fields"
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Item", 
+  "read": 1, 
+  "doctype": "DocPerm", 
+  "parenttype": "DocType", 
+  "parentfield": "permissions"
+ }, 
+ {
+  "name": "Item", 
+  "doctype": "DocType"
+ }, 
+ {
+  "no_copy": 0, 
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "Item", 
+  "fieldname": "item", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Small Text", 
+  "doctype": "DocField", 
+  "label": "Trash Reason", 
+  "oldfieldname": "trash_reason", 
+  "fieldname": "trash_reason", 
+  "fieldtype": "Small Text", 
+  "permlevel": 1
+ }, 
+ {
+  "description": "Item will be saved by this name in the data base.", 
+  "oldfieldtype": "Data", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Item Code", 
+  "oldfieldname": "item_code", 
+  "fieldname": "item_code", 
+  "fieldtype": "Data", 
+  "search_index": 0, 
+  "reqd": 1, 
+  "in_filter": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Item Name", 
+  "oldfieldname": "item_name", 
+  "fieldname": "item_name", 
+  "fieldtype": "Data", 
+  "search_index": 1, 
+  "reqd": 1, 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "description": "<a href=\"#!Sales Browser/Item Group\">Manage Item Groups</a>", 
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Item Group", 
+  "oldfieldname": "item_group", 
+  "permlevel": 0, 
+  "fieldname": "item_group", 
+  "fieldtype": "Link", 
+  "reqd": 1, 
+  "in_filter": 1, 
+  "options": "Item Group"
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Brand", 
+  "oldfieldname": "brand", 
+  "options": "Brand", 
+  "fieldname": "brand", 
+  "fieldtype": "Link", 
+  "reqd": 0, 
+  "hidden": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Barcode", 
+  "fieldname": "barcode", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "column_break0", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Text", 
+  "doctype": "DocField", 
+  "label": "Description", 
+  "oldfieldname": "description", 
+  "width": "300px", 
+  "fieldname": "description", 
+  "fieldtype": "Text", 
+  "search_index": 0, 
+  "reqd": 1, 
+  "permlevel": 0, 
+  "in_filter": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Description HTML", 
+  "fieldname": "description_html", 
+  "fieldtype": "Text", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Generates HTML to include image (1st attachment) in the description", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Add Image", 
+  "fieldname": "add_image", 
+  "fieldtype": "Button", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "Inventory", 
+  "fieldname": "inventory", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Select \"Yes\" if you are maintaining stock of this item in your Inventory.", 
+  "default": "Yes", 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Is Stock Item", 
+  "oldfieldname": "is_stock_item", 
+  "permlevel": 0, 
+  "fieldname": "is_stock_item", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "options": "\nYes\nNo"
+ }, 
+ {
+  "description": "Mandatory if Stock Item is \"Yes\"", 
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Default Reserved Warehouse", 
+  "oldfieldname": "default_warehouse", 
+  "options": "Warehouse", 
+  "fieldname": "default_warehouse", 
+  "fieldtype": "Link", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Enter unit of measurement in which stock of this item is maintained in your warehouse.", 
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Default UoM", 
+  "oldfieldname": "stock_uom", 
+  "options": "UOM", 
+  "fieldname": "stock_uom", 
+  "fieldtype": "Link", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Percentage variation in quantity to be allowed while receiving or delivering this item.", 
+  "oldfieldtype": "Currency", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Allowance Percent", 
+  "oldfieldname": "tolerance", 
+  "fieldname": "tolerance", 
+  "fieldtype": "Currency", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "The system will generate a Purchase Request automatically when stock quantity goes below re-order level in warehouse of type \"Stores\" or \"Reserved Warehouse\".", 
+  "oldfieldtype": "Currency", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Re-Order Level", 
+  "oldfieldname": "re_order_level", 
+  "fieldname": "re_order_level", 
+  "fieldtype": "Currency", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "The quantity for the Purchase Request when the stock goes below re-order level.", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Re-Order Qty", 
+  "fieldname": "re_order_qty", 
+  "fieldtype": "Currency", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Send an email to users of role \"Material Manager\" and \"Purchase Manager\" when re-order level is crossed.", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Notify by Email on Re-order", 
+  "fieldname": "email_notify", 
+  "fieldtype": "Check", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Valuation Method", 
+  "options": "\nFIFO\nMoving Average", 
+  "fieldname": "valuation_method", 
+  "fieldtype": "Select", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "You can enter the minimum quantity of this item to be ordered.", 
+  "default": "0.00", 
+  "oldfieldtype": "Currency", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Minimum Order Qty", 
+  "oldfieldname": "min_order_qty", 
+  "fieldname": "min_order_qty", 
+  "fieldtype": "Currency", 
+  "hidden": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Column Break", 
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break1", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Select \"Yes\" if this item is used for some internal purpose in your company.", 
+  "default": "No", 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Is Asset Item", 
+  "oldfieldname": "is_asset_item", 
+  "permlevel": 0, 
+  "fieldname": "is_asset_item", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "options": "\nYes\nNo"
+ }, 
+ {
+  "default": "No", 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Has Batch No", 
+  "oldfieldname": "has_batch_no", 
+  "options": "\nYes\nNo", 
+  "fieldname": "has_batch_no", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Selecting \"Yes\" will give a unique identity to each entity of this item which can be viewed in the Serial No master.", 
+  "default": "No", 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Has Serial No", 
+  "oldfieldname": "has_serial_no", 
+  "permlevel": 0, 
+  "fieldname": "has_serial_no", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "in_filter": 1, 
+  "options": "\nYes\nNo"
+ }, 
+ {
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Warranty Period (in days)", 
+  "oldfieldname": "warranty_period", 
+  "fieldname": "warranty_period", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Date", 
+  "doctype": "DocField", 
+  "label": "End of Life", 
+  "oldfieldname": "end_of_life", 
+  "fieldname": "end_of_life", 
+  "fieldtype": "Date", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Net Weight of each Item", 
+  "doctype": "DocField", 
+  "label": "Net Weight", 
+  "fieldname": "net_weight", 
+  "fieldtype": "Float", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Weight UOM", 
+  "options": "UOM", 
+  "fieldname": "weight_uom", 
+  "fieldtype": "Link", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Section Break", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Purchase Details", 
+  "fieldname": "purchase_details", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Selecting \"Yes\" will allow this item to appear in Purchase Order , Purchase Receipt.", 
+  "default": "Yes", 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Is Purchase Item", 
+  "oldfieldname": "is_purchase_item", 
+  "permlevel": 0, 
+  "fieldname": "is_purchase_item", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "options": "\nYes\nNo"
+ }, 
+ {
+  "description": "Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Purchase Request when you select this item.", 
+  "no_copy": 1, 
+  "oldfieldtype": "Int", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Lead Time Days", 
+  "oldfieldname": "lead_time_days", 
+  "fieldname": "lead_time_days", 
+  "fieldtype": "Int", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Default Purchase Account in which cost of the item will be debited.", 
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Default Expense Account", 
+  "oldfieldname": "purchase_account", 
+  "trigger": "Client", 
+  "fieldname": "purchase_account", 
+  "fieldtype": "Link", 
+  "options": "Account", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Default Cost Center for tracking expense for this item.", 
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Default Cost Center", 
+  "oldfieldname": "cost_center", 
+  "options": "Cost Center", 
+  "fieldname": "cost_center", 
+  "fieldtype": "Link", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Buying Cost will be updated from Purchase Orders and Purchase Receipts. <br>The buying cost will calculated by moving average method.", 
+  "no_copy": 1, 
+  "oldfieldtype": "Currency", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Buying Cost", 
+  "oldfieldname": "buying_cost", 
+  "fieldname": "buying_cost", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Currency", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Last Purchase Rate", 
+  "oldfieldname": "last_purchase_rate", 
+  "fieldname": "last_purchase_rate", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Standard Rate", 
+  "oldfieldname": "standard_rate", 
+  "fieldname": "standard_rate", 
+  "fieldtype": "Currency", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Column Break", 
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break2", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Table", 
+  "doctype": "DocField", 
+  "label": "UOM Conversion Details", 
+  "oldfieldname": "uom_conversion_details", 
+  "options": "UOM Conversion Detail", 
+  "fieldname": "uom_conversion_details", 
+  "fieldtype": "Table", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Manufacturer", 
+  "fieldname": "manufacturer", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Manufacturer Part Number", 
+  "fieldname": "manufacturer_part_no", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Item Supplier Details", 
+  "options": "Item Supplier", 
+  "fieldname": "item_supplier_details", 
+  "fieldtype": "Table", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "Sales Details", 
+  "fieldname": "sales_details", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Selecting \"Yes\" will allow this item to figure in Sales Order, Delivery Note", 
+  "default": "Yes", 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Is Sales Item", 
+  "oldfieldname": "is_sales_item", 
+  "permlevel": 0, 
+  "fieldname": "is_sales_item", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "in_filter": 1, 
+  "options": "\nYes\nNo"
+ }, 
+ {
+  "description": "Select \"Yes\" if this item represents some work like training, designing, consulting etc.", 
+  "default": "No", 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Is Service Item", 
+  "oldfieldname": "is_service_item", 
+  "permlevel": 0, 
+  "fieldname": "is_service_item", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "in_filter": 1, 
+  "options": "\nYes\nNo"
+ }, 
+ {
+  "description": "Select \"Yes\" if this item is to be sent to a customer or received from a supplier as a sample. Delivery notes and Purchase Receipts will update stock levels but there will be no invoice against this item.", 
+  "default": "No", 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Allow Samples", 
+  "oldfieldname": "is_sample_item", 
+  "permlevel": 0, 
+  "fieldname": "is_sample_item", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "options": "\nYes\nNo"
+ }, 
+ {
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Max Discount (%)", 
+  "oldfieldname": "max_discount", 
+  "fieldname": "max_discount", 
+  "fieldtype": "Currency", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Default Income Account", 
+  "options": "Account", 
+  "fieldname": "default_income_account", 
+  "fieldtype": "Link", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Cost Center", 
+  "options": "Cost Center", 
+  "fieldname": "default_sales_cost_center", 
+  "fieldtype": "Link", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Sales Rate", 
+  "oldfieldname": "sales_rate", 
+  "fieldname": "sales_rate", 
+  "fieldtype": "Currency", 
+  "hidden": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Column Break", 
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break3", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Create a price list from Price List master and enter standard ref rates against each of them. On selection of a price list in Quotation, Sales Order or Delivery Note, corresponding ref rate will be fetched for this item.", 
+  "oldfieldtype": "Table", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Item Prices", 
+  "oldfieldname": "ref_rate_details", 
+  "options": "Item Price", 
+  "fieldname": "ref_rate_details", 
+  "fieldtype": "Table", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes", 
+  "doctype": "DocField", 
+  "label": "Customer Codes", 
+  "options": "Item Customer Detail", 
+  "fieldname": "item_customer_details", 
+  "fieldtype": "Table", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "Item Tax", 
+  "fieldname": "item_tax_section_break", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Table", 
+  "doctype": "DocField", 
+  "label": "Item Tax1", 
+  "oldfieldname": "item_tax", 
+  "options": "Item Tax", 
+  "fieldname": "item_tax", 
+  "fieldtype": "Table", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "Inspection Criteria", 
+  "fieldname": "inspection_criteria", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "default": "No", 
+  "oldfieldtype": "Select", 
+  "doctype": "DocField", 
+  "label": "Inspection Required", 
+  "oldfieldname": "inspection_required", 
+  "no_copy": 0, 
+  "options": "\nYes\nNo", 
+  "fieldname": "inspection_required", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Table", 
+  "doctype": "DocField", 
+  "label": "Item Quality Inspection Parameter", 
+  "oldfieldname": "item_specification_details", 
+  "options": "Item Quality Inspection Parameter", 
+  "fieldname": "item_specification_details", 
+  "fieldtype": "Table", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "Manufacturing", 
+  "fieldname": "manufacturing", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Selecting \"Yes\" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.", 
+  "default": "No", 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Allow Bill of Materials", 
+  "oldfieldname": "is_manufactured_item", 
+  "permlevel": 0, 
+  "fieldname": "is_manufactured_item", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "options": "\nYes\nNo"
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Default BOM", 
+  "oldfieldname": "default_bom", 
+  "options": "BOM", 
+  "fieldname": "default_bom", 
+  "fieldtype": "Link", 
+  "permlevel": 1
+ }, 
+ {
+  "description": "Selecting \"Yes\" will allow you to make a Production Order for this item.", 
+  "default": "No", 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Allow Production Order", 
+  "oldfieldname": "is_pro_applicable", 
+  "permlevel": 0, 
+  "fieldname": "is_pro_applicable", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "options": "\nYes\nNo"
+ }, 
+ {
+  "description": "Select \"Yes\" if you supply raw materials to your supplier to manufacture this item.", 
+  "default": "No", 
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Is Sub Contracted Item", 
+  "oldfieldname": "is_sub_contracted_item", 
+  "permlevel": 0, 
+  "fieldname": "is_sub_contracted_item", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "options": "\nYes\nNo"
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "File List", 
+  "fieldname": "file_list", 
+  "fieldtype": "Text", 
+  "hidden": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "Customer Code", 
+  "fieldname": "customer_code", 
+  "fieldtype": "Data", 
+  "hidden": 1, 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Website", 
+  "fieldname": "website_section", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Show in Website", 
+  "fieldname": "show_in_website", 
+  "fieldtype": "Check", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "website page link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Page Name", 
+  "fieldname": "page_name", 
+  "fieldtype": "Data", 
+  "permlevel": 1
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Image", 
+  "options": "attach_files:", 
+  "fieldname": "website_image", 
+  "fieldtype": "Select", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Short Description", 
+  "fieldname": "web_short_description", 
+  "fieldtype": "Text", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Long Description", 
+  "options": "Markdown", 
+  "fieldname": "web_long_description", 
+  "fieldtype": "Code", 
+  "permlevel": 0
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Material Manager", 
+  "permlevel": 1
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Material Manager", 
+  "permlevel": 0
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Material User", 
+  "permlevel": 1
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Material User", 
+  "permlevel": 0
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "write": 1, 
+  "role": "Material Master Manager", 
+  "cancel": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "write": 0, 
+  "role": "Material Master Manager", 
+  "permlevel": 1
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "write": 1, 
+  "role": "System Manager", 
+  "cancel": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "System Manager", 
+  "permlevel": 1
+ }
 ]
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.js b/stock/doctype/purchase_receipt/purchase_receipt.js
index 0ab6681..3f59d0a 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -32,13 +32,8 @@
 
 cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
 	var callback = function(doc, dt, dn) {
-		var callback1 = function(doc, dt, dn) {
-			if(doc.__islocal){ 
-				cur_frm.cscript.get_default_schedule_date(doc);
-			}
-		}
 		// defined in purchase_common.js
-		cur_frm.cscript.update_item_details(doc, dt, dn, callback1);	
+		cur_frm.cscript.update_item_details(doc, dt, dn, function(r,rt) { });	
 	}
 	cur_frm.cscript.dynamic_label(doc, dt, dn, callback);
 }
@@ -118,13 +113,6 @@
 	loaddoc('Contact', tn);
 }
 
-//======================= posting date =============================
-cur_frm.cscript.transaction_date = function(doc,cdt,cdn){
-	if(doc.__islocal){ 
-		cur_frm.cscript.get_default_schedule_date(doc);
-	}
-}
-
 // ***************** Get project name *****************
 cur_frm.fields_dict['purchase_receipt_details'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
 	return 'SELECT `tabProject`.name FROM `tabProject` \
@@ -311,6 +299,6 @@
 
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
 	if(cint(wn.boot.notification_settings.purchase_receipt)) {
-		cur_frm.email_doc(wn.boot.notification_settings.purchase_receipt);
+		cur_frm.email_doc(wn.boot.notification_settings.purchase_receipt_message);
 	}
 }
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py
index 6b7720b..3cf1f27 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -43,19 +43,9 @@
 	def autoname(self):
 		self.doc.name = make_autoname(self.doc.naming_series+'.#####')
 
-
-	# Client Trigger Functions
-	#----------------------------------------------------------------------------------------------------
-
-	def get_default_schedule_date(self):
-		get_obj(dt = 'Purchase Common').get_default_schedule_date(self)
-
-#-----------------Validation For Fiscal Year------------------------
 	def validate_fiscal_year(self):
 		get_obj(dt = 'Purchase Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.posting_date,'Transaction Date')
 
-
-	# Get Item Details
 	def get_item_details(self, arg = ''):
 		if arg:
 			return get_obj(dt='Purchase Common').get_item_details(self,arg)
diff --git a/stock/doctype/purchase_receipt/test_purchase_receipt.py b/stock/doctype/purchase_receipt/test_purchase_receipt.py
new file mode 100644
index 0000000..98418d0
--- /dev/null
+++ b/stock/doctype/purchase_receipt/test_purchase_receipt.py
@@ -0,0 +1,192 @@
+# ERPNext - web based ERP (http://erpnext.com)
+# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# 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
+import unittest
+import webnotes
+import webnotes.model
+from webnotes.utils import nowdate
+from accounts.utils import get_fiscal_year
+
+company = webnotes.conn.get_default("company")
+abbr = webnotes.conn.get_value("Company", company, "abbr")
+
+def load_data():
+	insert_accounts()
+	
+	# create default warehouse
+	if not webnotes.conn.exists("Warehouse", "Default Warehouse"):
+		webnotes.insert({"doctype": "Warehouse", 
+			"warehouse_name": "Default Warehouse",
+			"warehouse_type": "Stores"})
+	
+	# create UOM: Nos.
+	if not webnotes.conn.exists("UOM", "Nos"):
+		webnotes.insert({"doctype": "UOM", "uom_name": "Nos"})
+	
+	from webnotes.tests import insert_test_data
+	# create item groups and items
+	insert_test_data("Item Group", 
+		sort_fn=lambda ig: (ig[0].get('parent_item_group'), ig[0].get('name')))
+	insert_test_data("Item")
+
+	# create supplier type
+	webnotes.insert({"doctype": "Supplier Type", "supplier_type": "Manufacturing"})
+	
+	# create supplier
+	webnotes.insert({"doctype": "Supplier", "supplier_name": "East Wind Inc.",
+		"supplier_type": "Manufacturing", "company": company})
+		
+	# create default cost center if not exists
+	if not webnotes.conn.exists("Cost Center", "Default Cost Center - %s" % abbr):
+		dl = webnotes.insert({"doctype": "Cost Center", "group_or_ledger": "Ledger",
+			"cost_center_name": "Default Cost Center", 
+			"parent_cost_center": "Root - %s" % abbr,
+			"company_name": company, "company_abbr": abbr})
+		
+	# create account heads for taxes
+	
+	webnotes.insert({"doctype": "Account", "account_name": "Shipping Charges",
+		"parent_account": "Stock Expenses - %s" % abbr, "company": company,
+		"group_or_ledger": "Ledger"})
+		
+	webnotes.insert({"doctype": "Account", "account_name": "Customs Duty",
+		"parent_account": "Stock Expenses - %s" % abbr, "company": company,
+		"group_or_ledger": "Ledger"})
+	webnotes.insert({"doctype": "Account", "account_name": "Tax Assets",
+		"parent_account": "Current Assets - %s" % abbr, "company": company,
+		"group_or_ledger": "Group"})
+	webnotes.insert({"doctype": "Account", "account_name": "VAT - Test",
+		"parent_account": "Tax Assets - %s" % abbr, "company": company,
+		"group_or_ledger": "Ledger"})
+		
+	# create BOM
+	webnotes.insert([
+		{"doctype": "BOM", "item": "Nebula 7", "quantity": 1,
+			"is_active": "Yes", "is_default": 1, "uom": "Nos"},
+		{"doctype": "BOM Operation", "operation_no": 1, "parentfield": "bom_operations",
+			"opn_description": "Development"}, 
+		{"doctype": "BOM Item", "item_code": "Android Jack D", "operation_no": 1, 
+			"qty": 5, "rate": 20, "amount": 100, "stock_uom": "Nos", 
+			"parentfield": "bom_materials"}
+	])
+
+
+base_purchase_receipt = [
+	{
+		"doctype": "Purchase Receipt", "supplier": "East Wind Inc.",
+		"naming_series": "PR", "posting_date": nowdate(), "posting_time": "12:05",
+		"company": company, "fiscal_year": webnotes.conn.get_default("fiscal_year"), 
+		"currency": webnotes.conn.get_default("currency"), "conversion_rate": 1
+	},
+	{
+		"doctype": "Purchase Receipt Item", 
+		"item_code": "Home Desktop 100",
+		"qty": 10, "received_qty": 10, "rejected_qty": 0, "purchase_rate": 50, 
+		"amount": 500, "warehouse": "Default Warehouse", "valuation_tax_amount": 250,
+		"parentfield": "purchase_receipt_details",
+		"conversion_factor": 1, "uom": "Nos", "stock_uom": "Nos"
+	},
+	{
+		"doctype": "Purchase Taxes and Charges", "charge_type": "Actual",
+		"account_head": "Shipping Charges - %s" % abbr, "purchase_rate": 100, "tax_amount": 100,
+		"category": "Valuation and Total", "parentfield": "purchase_tax_details",
+		"cost_center": "Default Cost Center - %s" % abbr
+	}, 
+	{
+		"doctype": "Purchase Taxes and Charges", "charge_type": "Actual",
+		"account_head": "VAT - Test - %s" % abbr, "purchase_rate": 120, "tax_amount": 120,
+		"category": "Total", "parentfield": "purchase_tax_details"
+	},
+	{
+		"doctype": "Purchase Taxes and Charges", "charge_type": "Actual",
+		"account_head": "Customs Duty - %s" % abbr, "purchase_rate": 150, "tax_amount": 150,
+		"category": "Valuation", "parentfield": "purchase_tax_details",
+		"cost_center": "Default Cost Center - %s" % abbr
+	}
+]
+
+def insert_accounts():
+	for d in webnotes.conn.sql("""select name, abbr from tabCompany""", as_dict=1):
+		acc_list = [
+			make_account_dict('Stock Assets', 'Current Assets', d, 'Group'),
+				make_account_dict('Stock In Hand', 'Stock Assets', d, 'Ledger'),
+				make_account_dict('Stock Delivered But Not Billed', 'Stock Assets', 
+					d, 'Ledger'),
+			make_account_dict('Stock Liabilities', 'Current Liabilities', d, 'Group'),
+				make_account_dict('Stock Received But Not Billed', 'Stock Liabilities',
+				 	d, 'Ledger'),
+			make_account_dict('Stock Expenses', 'Direct Expenses', d, 'Group'),
+				make_account_dict('Stock Variance', 'Stock Expenses', d, 'Ledger'),
+				make_account_dict('Expenses Included In Valuation', 'Stock Expenses', 
+					d, 'Ledger'),
+		]
+		for acc in acc_list:
+			acc_name = "%s - %s" % (acc['account_name'], d['abbr'])
+			if not webnotes.conn.exists('Account', acc_name):
+				webnotes.insert(acc)
+			else:
+				print "Account %s already exists" % acc_name
+						
+def make_account_dict(account, parent, company_detail, group_or_ledger):
+	return {
+		"doctype": "Account",
+		"account_name": account,
+		"parent_account": "%s - %s" % (parent, company_detail['abbr']),
+		"company": company_detail['name'],
+		"group_or_ledger": group_or_ledger
+	}
+
+
+class TestPurchaseReceipt(unittest.TestCase):
+	def setUp(self):
+		webnotes.conn.begin()
+		load_data()
+		webnotes.conn.set_value("Global Defaults", None, "automatic_inventory_accounting", 1)
+		
+		
+	def test_purchase_receipt(self):
+		# warehouse does not have stock in hand specified
+		self.run_purchase_receipt_test(base_purchase_receipt,
+			"Stock In Hand - %s" % (abbr,), 
+			"Stock Received But Not Billed - %s" % (abbr,), 750.0)
+	
+	def run_purchase_receipt_test(self, purchase_receipt, debit_account, 
+			credit_account, stock_value):
+		from webnotes.model.doclist import DocList	
+		dl = webnotes.insert(DocList(purchase_receipt))
+		dl.submit()
+		dl.load_from_db()
+						
+		gle = webnotes.conn.sql("""select account, ifnull(debit, 0), ifnull(credit, 0)
+			from `tabGL Entry` where voucher_no = %s""", dl.doclist[0].name)
+		
+		gle_map = dict(((entry[0], entry) for entry in gle))
+		
+		self.assertEquals(gle_map[debit_account], (debit_account, stock_value, 0.0))
+		self.assertEquals(gle_map[credit_account], (credit_account, 0.0, stock_value))
+		
+	def atest_subcontracting(self):
+		pr = base_purchase_receipt.copy()
+		pr[1].update({"item_code": "Nebula 7"})
+		
+		self.run_purchase_receipt_test(pr, 
+			"Stock In Hand - %s" % (abbr,), 
+			"Stock Received But Not Billed - %s" % (abbr,), 1750.0)
+		
+	def tearDown(self):
+		webnotes.conn.rollback()
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt b/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
index 1f23437..1d2810f 100755
--- a/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
+++ b/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
@@ -1,592 +1,504 @@
-# DocType, Purchase Receipt Item
 [
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-04-13 11:56:36',
-		'docstatus': 0,
-		'modified': '2012-06-07 18:07:12',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'autoname': u'GRND/.#######',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'istable': 1,
-		'module': u'Stock',
-		'name': '__common__',
-		'section_style': u'Tray',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Purchase Receipt Item',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# DocType, Purchase Receipt Item
-	{
-		'doctype': 'DocType',
-		'name': u'Purchase Receipt Item'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_code',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Item Code',
-		'oldfieldname': u'item_code',
-		'oldfieldtype': u'Link',
-		'options': u'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_name',
-		'fieldtype': u'Data',
-		'in_filter': 0,
-		'label': u'Item Name',
-		'oldfieldname': u'item_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Text',
-		'label': u'Description',
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Text',
-		'permlevel': 0,
-		'reqd': 1,
-		'width': u'300px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'received_qty',
-		'fieldtype': u'Currency',
-		'label': u'Recd Quantity',
-		'oldfieldname': u'received_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'qty',
-		'fieldtype': u'Currency',
-		'label': u'Accepted Quantity',
-		'oldfieldname': u'qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'rejected_qty',
-		'fieldtype': u'Currency',
-		'in_filter': 0,
-		'label': u'Rejected Quantity',
-		'oldfieldname': u'rejected_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'import_ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Ref Rate ',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'discount_rate',
-		'fieldtype': u'Currency',
-		'label': u'Discount  %',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'import_rate',
-		'fieldtype': u'Currency',
-		'label': u'Rate',
-		'oldfieldname': u'import_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'import_amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount',
-		'oldfieldname': u'import_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'purchase_ref_rate',
-		'fieldtype': u'Currency',
-		'label': u'Ref Rate *',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'purchase_rate',
-		'fieldtype': u'Currency',
-		'label': u'Rate *(Default Curr.)',
-		'oldfieldname': u'purchase_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'amount',
-		'fieldtype': u'Currency',
-		'label': u'Amount (Default Curr.)',
-		'oldfieldname': u'amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 0,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'warehouse',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'label': u'Accepted Warehouse',
-		'oldfieldname': u'warehouse',
-		'oldfieldtype': u'Link',
-		'options': u'Warehouse',
-		'permlevel': 0,
-		'print_hide': 1,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'uom',
-		'fieldtype': u'Link',
-		'label': u'UOM',
-		'oldfieldname': u'uom',
-		'oldfieldtype': u'Link',
-		'options': u'UOM',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'conversion_factor',
-		'fieldtype': u'Currency',
-		'label': u'Conversion Factor',
-		'oldfieldname': u'conversion_factor',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'stock_uom',
-		'fieldtype': u'Data',
-		'label': u'Stock UOM',
-		'oldfieldname': u'stock_uom',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 1,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'serial_no',
-		'fieldtype': u'Text',
-		'in_filter': 1,
-		'label': u'Serial No',
-		'no_copy': 1,
-		'oldfieldname': u'serial_no',
-		'oldfieldtype': u'Text',
-		'permlevel': 0,
-		'print_hide': 0,
-		'report_hide': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'rejected_serial_no',
-		'fieldtype': u'Text',
-		'label': u'Rejected Serial No',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'batch_no',
-		'fieldtype': u'Link',
-		'label': u'Batch No',
-		'oldfieldname': u'batch_no',
-		'oldfieldtype': u'Link',
-		'options': u'Batch',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'rejected_warehouse',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'label': u'Rejected Warehouse',
-		'no_copy': 1,
-		'oldfieldname': u'rejected_warehouse',
-		'oldfieldtype': u'Link',
-		'options': u'Warehouse',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'schedule_date',
-		'fieldtype': u'Date',
-		'label': u'Schedule date',
-		'no_copy': 1,
-		'oldfieldname': u'schedule_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'project_name',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Project Name',
-		'options': u'Project',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'qa_no',
-		'fieldtype': u'Link',
-		'label': u'QA No',
-		'no_copy': 1,
-		'oldfieldname': u'qa_no',
-		'oldfieldtype': u'Link',
-		'options': u'Quality Inspection',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'brand',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'label': u'Brand',
-		'oldfieldname': u'brand',
-		'oldfieldtype': u'Link',
-		'options': u'Brand',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_group',
-		'fieldtype': u'Link',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Item Group',
-		'oldfieldname': u'item_group',
-		'oldfieldtype': u'Link',
-		'options': u'Item Group',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'stock_qty',
-		'fieldtype': u'Currency',
-		'label': u'Stock Qty',
-		'oldfieldname': u'stock_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': u'Client',
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_doctype',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'label': u'Prevdoc Doctype',
-		'oldfieldname': u'prevdoc_doctype',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_docname',
-		'fieldtype': u'Link',
-		'hidden': 0,
-		'in_filter': 1,
-		'label': u'PO No',
-		'no_copy': 0,
-		'oldfieldname': u'prevdoc_docname',
-		'oldfieldtype': u'Link',
-		'options': u'Purchase Order',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 0,
-		'search_index': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_date',
-		'fieldtype': u'Date',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'PO Date',
-		'oldfieldname': u'prevdoc_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'rm_supp_cost',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'in_filter': 0,
-		'label': u'Raw Materials Supplied Cost',
-		'oldfieldname': u'rm_supp_cost',
-		'oldfieldtype': u'Currency',
-		'permlevel': 2,
-		'print_hide': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'item_tax_amount',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'label': u'Item Tax Amount',
-		'no_copy': 1,
-		'oldfieldname': u'item_tax_amount',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'reqd': 0,
-		'search_index': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'prevdoc_detail_docname',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'in_filter': 1,
-		'label': u'Purchase Order Item No',
-		'no_copy': 0,
-		'oldfieldname': u'prevdoc_detail_docname',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'default': u'0.00',
-		'doctype': u'DocField',
-		'fieldname': u'billed_qty',
-		'fieldtype': u'Currency',
-		'label': u'Billed Quantity',
-		'no_copy': 1,
-		'oldfieldname': u'billed_qty',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'100px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'valuation_rate',
-		'fieldtype': u'Currency',
-		'hidden': 1,
-		'in_filter': 0,
-		'label': u'Valuation Rate',
-		'no_copy': 1,
-		'oldfieldname': u'valuation_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': u'80px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Tax detail table fetched from item master as a string and stored in this field.\nUsed for Taxes and Charges',
-		'doctype': u'DocField',
-		'fieldname': u'item_tax_rate',
-		'fieldtype': u'Small Text',
-		'hidden': 1,
-		'in_filter': 0,
-		'label': u'Item Tax Rate',
-		'oldfieldname': u'item_tax_rate',
-		'oldfieldtype': u'Small Text',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': u'DocField',
-		'fieldname': u'page_break',
-		'fieldtype': u'Check',
-		'label': u'Page Break',
-		'oldfieldname': u'page_break',
-		'oldfieldtype': u'Check',
-		'permlevel': 0,
-		'print_hide': 1
-	}
+ {
+  "owner": "Administrator", 
+  "docstatus": 0, 
+  "creation": "2012-07-03 13:30:42", 
+  "modified_by": "Administrator", 
+  "modified": "2012-12-03 10:20:11"
+ }, 
+ {
+  "istable": 1, 
+  "autoname": "GRND/.#######", 
+  "name": "__common__", 
+  "default_print_format": "Standard", 
+  "doctype": "DocType", 
+  "module": "Stock"
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Purchase Receipt Item", 
+  "doctype": "DocField", 
+  "parenttype": "DocType", 
+  "parentfield": "fields"
+ }, 
+ {
+  "name": "Purchase Receipt Item", 
+  "doctype": "DocType"
+ }, 
+ {
+  "permlevel": 0, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Item Code", 
+  "oldfieldname": "item_code", 
+  "width": "100px", 
+  "trigger": "Client", 
+  "fieldname": "item_code", 
+  "fieldtype": "Link", 
+  "search_index": 1, 
+  "reqd": 1, 
+  "options": "Item", 
+  "in_filter": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Item Name", 
+  "oldfieldname": "item_name", 
+  "fieldname": "item_name", 
+  "fieldtype": "Data", 
+  "search_index": 0, 
+  "reqd": 1, 
+  "permlevel": 0, 
+  "in_filter": 0
+ }, 
+ {
+  "oldfieldtype": "Text", 
+  "doctype": "DocField", 
+  "label": "Description", 
+  "oldfieldname": "description", 
+  "width": "300px", 
+  "fieldname": "description", 
+  "fieldtype": "Text", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "default": "0.00", 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Recd Quantity", 
+  "oldfieldname": "received_qty", 
+  "width": "100px", 
+  "trigger": "Client", 
+  "fieldname": "received_qty", 
+  "fieldtype": "Currency", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "default": "0.00", 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Accepted Quantity", 
+  "oldfieldname": "qty", 
+  "width": "100px", 
+  "trigger": "Client", 
+  "fieldname": "qty", 
+  "fieldtype": "Currency", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "default": "0.00", 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Rejected Quantity", 
+  "oldfieldname": "rejected_qty", 
+  "width": "100px", 
+  "trigger": "Client", 
+  "fieldname": "rejected_qty", 
+  "fieldtype": "Currency", 
+  "search_index": 0, 
+  "permlevel": 0, 
+  "in_filter": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "doctype": "DocField", 
+  "label": "Ref Rate ", 
+  "fieldname": "import_ref_rate", 
+  "fieldtype": "Currency", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "doctype": "DocField", 
+  "label": "Discount  %", 
+  "fieldname": "discount_rate", 
+  "fieldtype": "Currency", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 0, 
+  "default": "0.00", 
+  "oldfieldtype": "Currency", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Rate", 
+  "oldfieldname": "import_rate", 
+  "width": "100px", 
+  "trigger": "Client", 
+  "fieldname": "import_rate", 
+  "fieldtype": "Currency", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Amount", 
+  "oldfieldname": "import_amount", 
+  "fieldname": "import_amount", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "doctype": "DocField", 
+  "label": "Ref Rate *", 
+  "fieldname": "purchase_ref_rate", 
+  "fieldtype": "Currency", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "default": "0.00", 
+  "oldfieldtype": "Currency", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Rate *(Default Curr.)", 
+  "oldfieldname": "purchase_rate", 
+  "width": "100px", 
+  "trigger": "Client", 
+  "fieldname": "purchase_rate", 
+  "fieldtype": "Currency", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "default": "0.00", 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Amount (Default Curr.)", 
+  "oldfieldname": "amount", 
+  "width": "100px", 
+  "trigger": "Client", 
+  "fieldname": "amount", 
+  "fieldtype": "Currency", 
+  "reqd": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Accepted Warehouse", 
+  "oldfieldname": "warehouse", 
+  "width": "100px", 
+  "options": "Warehouse", 
+  "fieldname": "warehouse", 
+  "fieldtype": "Link", 
+  "hidden": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "permlevel": 0, 
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "UOM", 
+  "oldfieldname": "uom", 
+  "width": "100px", 
+  "trigger": "Client", 
+  "fieldname": "uom", 
+  "fieldtype": "Link", 
+  "reqd": 1, 
+  "options": "UOM"
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Conversion Factor", 
+  "oldfieldname": "conversion_factor", 
+  "width": "100px", 
+  "trigger": "Client", 
+  "fieldname": "conversion_factor", 
+  "fieldtype": "Currency", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Stock UOM", 
+  "oldfieldname": "stock_uom", 
+  "width": "100px", 
+  "fieldname": "stock_uom", 
+  "fieldtype": "Data", 
+  "reqd": 1, 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 0, 
+  "no_copy": 1, 
+  "oldfieldtype": "Text", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Serial No", 
+  "oldfieldname": "serial_no", 
+  "fieldname": "serial_no", 
+  "fieldtype": "Text", 
+  "permlevel": 0, 
+  "report_hide": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "doctype": "DocField", 
+  "label": "Rejected Serial No", 
+  "fieldname": "rejected_serial_no", 
+  "fieldtype": "Text", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Batch No", 
+  "oldfieldname": "batch_no", 
+  "trigger": "Client", 
+  "fieldname": "batch_no", 
+  "fieldtype": "Link", 
+  "options": "Batch", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "permlevel": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Rejected Warehouse", 
+  "oldfieldname": "rejected_warehouse", 
+  "width": "100px", 
+  "fieldname": "rejected_warehouse", 
+  "fieldtype": "Link", 
+  "hidden": 1, 
+  "options": "Warehouse"
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Date", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Required By", 
+  "oldfieldname": "schedule_date", 
+  "fieldname": "schedule_date", 
+  "fieldtype": "Date", 
+  "reqd": 0, 
+  "permlevel": 0, 
+  "report_hide": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Project Name", 
+  "options": "Project", 
+  "fieldname": "project_name", 
+  "fieldtype": "Link", 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "QA No", 
+  "oldfieldname": "qa_no", 
+  "options": "Quality Inspection", 
+  "fieldname": "qa_no", 
+  "fieldtype": "Link", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Brand", 
+  "oldfieldname": "brand", 
+  "options": "Brand", 
+  "fieldname": "brand", 
+  "fieldtype": "Link", 
+  "hidden": 1, 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Item Group", 
+  "oldfieldname": "item_group", 
+  "permlevel": 1, 
+  "fieldname": "item_group", 
+  "fieldtype": "Link", 
+  "search_index": 1, 
+  "hidden": 1, 
+  "options": "Item Group", 
+  "in_filter": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Stock Qty", 
+  "oldfieldname": "stock_qty", 
+  "width": "100px", 
+  "trigger": "Client", 
+  "fieldname": "stock_qty", 
+  "fieldtype": "Currency", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Data", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Prevdoc Doctype", 
+  "oldfieldname": "prevdoc_doctype", 
+  "fieldname": "prevdoc_doctype", 
+  "fieldtype": "Data", 
+  "hidden": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "permlevel": 1, 
+  "no_copy": 0, 
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "PO No", 
+  "oldfieldname": "prevdoc_docname", 
+  "width": "150px", 
+  "fieldname": "prevdoc_docname", 
+  "fieldtype": "Link", 
+  "search_index": 1, 
+  "reqd": 0, 
+  "hidden": 0, 
+  "options": "Purchase Order", 
+  "in_filter": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Date", 
+  "doctype": "DocField", 
+  "label": "PO Date", 
+  "oldfieldname": "prevdoc_date", 
+  "fieldname": "prevdoc_date", 
+  "fieldtype": "Date", 
+  "hidden": 1, 
+  "permlevel": 1, 
+  "in_filter": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Raw Materials Supplied Cost", 
+  "oldfieldname": "rm_supp_cost", 
+  "width": "150px", 
+  "fieldname": "rm_supp_cost", 
+  "fieldtype": "Currency", 
+  "hidden": 1, 
+  "permlevel": 2, 
+  "in_filter": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Currency", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Item Tax Amount", 
+  "oldfieldname": "item_tax_amount", 
+  "width": "150px", 
+  "fieldname": "item_tax_amount", 
+  "fieldtype": "Currency", 
+  "search_index": 1, 
+  "reqd": 0, 
+  "hidden": 1, 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 0, 
+  "oldfieldtype": "Data", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Purchase Order Item No", 
+  "oldfieldname": "prevdoc_detail_docname", 
+  "width": "150px", 
+  "fieldname": "prevdoc_detail_docname", 
+  "fieldtype": "Data", 
+  "search_index": 1, 
+  "hidden": 1, 
+  "permlevel": 1, 
+  "in_filter": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "default": "0.00", 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "no_copy": 1, 
+  "label": "Billed Quantity", 
+  "oldfieldname": "billed_qty", 
+  "width": "100px", 
+  "fieldname": "billed_qty", 
+  "fieldtype": "Currency", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Currency", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Valuation Rate", 
+  "oldfieldname": "valuation_rate", 
+  "width": "80px", 
+  "fieldname": "valuation_rate", 
+  "fieldtype": "Currency", 
+  "hidden": 1, 
+  "permlevel": 1, 
+  "in_filter": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "description": "Tax detail table fetched from item master as a string and stored in this field.\nUsed for Taxes and Charges", 
+  "oldfieldtype": "Small Text", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Item Tax Rate", 
+  "oldfieldname": "item_tax_rate", 
+  "fieldname": "item_tax_rate", 
+  "fieldtype": "Small Text", 
+  "hidden": 1, 
+  "in_filter": 0, 
+  "permlevel": 1, 
+  "report_hide": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "oldfieldtype": "Check", 
+  "allow_on_submit": 1, 
+  "doctype": "DocField", 
+  "label": "Page Break", 
+  "oldfieldname": "page_break", 
+  "fieldname": "page_break", 
+  "fieldtype": "Check", 
+  "permlevel": 0
+ }
 ]
\ No newline at end of file
diff --git a/stock/doctype/serial_no/serial_no.txt b/stock/doctype/serial_no/serial_no.txt
index 8e32243..79ba415 100644
--- a/stock/doctype/serial_no/serial_no.txt
+++ b/stock/doctype/serial_no/serial_no.txt
@@ -1,730 +1,598 @@
-# DocType, Serial No
 [
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-04-23 16:00:23',
-		'docstatus': 0,
-		'modified': '2012-04-26 13:01:57',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': u'1325570647',
-		'allow_attach': 1,
-		'allow_trash': 1,
-		'autoname': u'field:serial_no',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'doctype': 'DocType',
-		'document_type': u'Master',
-		'module': u'Stock',
-		'name': '__common__',
-		'search_fields': u'item_code,status',
-		'section_style': u'Tabbed',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'subject': u'Item Code: %(item_code)s, Warehouse: %(warehouse)s',
-		'tag_fields': u'status',
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Serial No',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': u'DocPerm',
-		'name': '__common__',
-		'parent': u'Serial No',
-		'parentfield': u'permissions',
-		'parenttype': u'DocType',
-		'read': 1
-	},
-
-	# DocType, Serial No
-	{
-		'doctype': 'DocType',
-		'name': u'Serial No'
-	},
-
-	# 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': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# 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': 0,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material Master Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'System Manager'
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'Sales Master Manager'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'details',
-		'fieldtype': u'Section Break',
-		'label': u'Details',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break0',
-		'fieldtype': u'Column Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'default': u'In Store',
-		'doctype': u'DocField',
-		'fieldname': u'status',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Status',
-		'no_copy': 1,
-		'oldfieldname': u'status',
-		'oldfieldtype': u'Select',
-		'options': u'\nIn Store\nDelivered\nNot in Use\nPurchase Returned',
-		'permlevel': 1,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'serial_no',
-		'fieldtype': u'Data',
-		'in_filter': 0,
-		'label': u'Serial No',
-		'no_copy': 1,
-		'oldfieldname': u'serial_no',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'item_code',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Item Code',
-		'oldfieldname': u'item_code',
-		'oldfieldtype': u'Link',
-		'options': u'Item',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break1',
-		'fieldtype': u'Column Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_name',
-		'fieldtype': u'Data',
-		'label': u'Item Name',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'description',
-		'fieldtype': u'Text',
-		'in_filter': 1,
-		'label': u'Description',
-		'oldfieldname': u'description',
-		'oldfieldtype': u'Text',
-		'permlevel': 1,
-		'search_index': 0,
-		'width': u'300px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'item_group',
-		'fieldtype': u'Link',
-		'in_filter': 0,
-		'label': u'Item Group',
-		'oldfieldname': u'item_group',
-		'oldfieldtype': u'Link',
-		'options': u'Item Group',
-		'permlevel': 1,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'brand',
-		'fieldtype': u'Link',
-		'in_filter': 0,
-		'label': u'Brand',
-		'oldfieldname': u'brand',
-		'oldfieldtype': u'Link',
-		'options': u'Brand',
-		'permlevel': 1,
-		'reqd': 0,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'purchase_details',
-		'fieldtype': u'Section Break',
-		'label': u'Purchase Details',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break2',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'purchase_document_type',
-		'fieldtype': u'Select',
-		'label': u'Purchase Document Type',
-		'no_copy': 1,
-		'options': u'\nPurchase Receipt\nStock Entry',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'purchase_document_no',
-		'fieldtype': u'Data',
-		'hidden': 0,
-		'label': u'Purchase Document No',
-		'no_copy': 1,
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'purchase_date',
-		'fieldtype': u'Date',
-		'in_filter': 1,
-		'label': u'Purchase Date',
-		'no_copy': 1,
-		'oldfieldname': u'purchase_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'reqd': 0,
-		'search_index': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'purchase_time',
-		'fieldtype': u'Time',
-		'label': u'Incoming Time',
-		'no_copy': 1,
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'purchase_rate',
-		'fieldtype': u'Currency',
-		'in_filter': 0,
-		'label': u'Incoming Rate',
-		'no_copy': 1,
-		'oldfieldname': u'purchase_rate',
-		'oldfieldtype': u'Currency',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break3',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'warehouse',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Warehouse',
-		'no_copy': 1,
-		'oldfieldname': u'warehouse',
-		'oldfieldtype': u'Link',
-		'options': u'Warehouse',
-		'permlevel': 0,
-		'reqd': 0,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'supplier',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Supplier',
-		'no_copy': 1,
-		'options': u'Supplier',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'supplier_name',
-		'fieldtype': u'Data',
-		'in_filter': 1,
-		'label': u'Supplier Name',
-		'no_copy': 1,
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'address_display',
-		'fieldtype': u'Text',
-		'label': u'Supplier Address',
-		'no_copy': 1,
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'delivery_details',
-		'fieldtype': u'Section Break',
-		'label': u'Delivery Details',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break4',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'delivery_document_type',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Delivery Document Type',
-		'no_copy': 1,
-		'options': u'\nDelivery Note\nSales Invoice\nStock Entry',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'delivery_document_no',
-		'fieldtype': u'Data',
-		'in_filter': 1,
-		'label': u'Delivery Document No',
-		'no_copy': 1,
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'customer_address',
-		'fieldtype': u'Text',
-		'label': u'Customer Address',
-		'oldfieldname': u'customer_address',
-		'oldfieldtype': u'Text',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'delivery_date',
-		'fieldtype': u'Date',
-		'label': u'Delivery Date',
-		'no_copy': 1,
-		'oldfieldname': u'delivery_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'delivery_time',
-		'fieldtype': u'Time',
-		'label': u'Delivery Time',
-		'no_copy': 1,
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'is_cancelled',
-		'fieldtype': u'Select',
-		'hidden': 1,
-		'label': u'Is Cancelled',
-		'oldfieldname': u'is_cancelled',
-		'oldfieldtype': u'Select',
-		'options': u'\nYes\nNo',
-		'permlevel': 0,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break5',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'customer',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Customer',
-		'no_copy': 1,
-		'oldfieldname': u'customer',
-		'oldfieldtype': u'Link',
-		'options': u'Customer',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 0,
-		'trigger': u'Client'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'customer_name',
-		'fieldtype': u'Data',
-		'in_filter': 1,
-		'label': u'Customer Name',
-		'no_copy': 1,
-		'oldfieldname': u'customer_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'delivery_address',
-		'fieldtype': u'Text',
-		'label': u'Delivery Address',
-		'no_copy': 1,
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'territory',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Territory',
-		'no_copy': 1,
-		'oldfieldname': u'territory',
-		'oldfieldtype': u'Link',
-		'options': u'Territory',
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'warranty_amc_details',
-		'fieldtype': u'Section Break',
-		'label': u'Warranty / AMC Details',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break6',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'maintenance_status',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Maintenance Status',
-		'no_copy': 0,
-		'oldfieldname': u'maintenance_status',
-		'oldfieldtype': u'Select',
-		'options': u'\nUnder Warranty\nOut of Warranty\nUnder AMC\nOut of AMC',
-		'permlevel': 0,
-		'search_index': 1,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'doctype': u'DocField',
-		'fieldname': u'warranty_period',
-		'fieldtype': u'Int',
-		'label': u'Warranty Period (Days)',
-		'oldfieldname': u'warranty_period',
-		'oldfieldtype': u'Int',
-		'permlevel': 0,
-		'trigger': u'Client',
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'column_break7',
-		'fieldtype': u'Column Break',
-		'permlevel': 0,
-		'width': u'50%'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'warranty_expiry_date',
-		'fieldtype': u'Date',
-		'in_filter': 1,
-		'label': u'Warranty Expiry Date',
-		'oldfieldname': u'warranty_expiry_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'amc_expiry_date',
-		'fieldtype': u'Date',
-		'in_filter': 1,
-		'label': u'AMC Expiry Date',
-		'oldfieldname': u'amc_expiry_date',
-		'oldfieldtype': u'Date',
-		'permlevel': 0,
-		'search_index': 0,
-		'width': u'150px'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'more_info',
-		'fieldtype': u'Section Break',
-		'label': u'More Info',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'serial_no_details',
-		'fieldtype': u'Text Editor',
-		'label': u'Serial No Details',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'company',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Company',
-		'options': u'link:Company',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'fiscal_year',
-		'fieldtype': u'Select',
-		'in_filter': 1,
-		'label': u'Fiscal Year',
-		'options': u'link:Fiscal Year',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'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
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'file_list',
-		'fieldtype': u'Text',
-		'hidden': 1,
-		'label': u'File List',
-		'no_copy': 1,
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'sle_exists',
-		'fieldtype': u'Check',
-		'hidden': 1,
-		'label': u'SLE Exists',
-		'no_copy': 1,
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1
-	}
+ {
+  "owner": "Administrator", 
+  "docstatus": 0, 
+  "creation": "2012-07-03 13:30:43", 
+  "modified_by": "Administrator", 
+  "modified": "2012-12-03 11:39:34"
+ }, 
+ {
+  "allow_attach": 1, 
+  "search_fields": "item_code,status", 
+  "module": "Stock", 
+  "document_type": "Master", 
+  "description": "Distinct unit of an Item", 
+  "autoname": "field:serial_no", 
+  "name": "__common__", 
+  "default_print_format": "Standard", 
+  "allow_rename": 1, 
+  "doctype": "DocType"
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Serial No", 
+  "doctype": "DocField", 
+  "parenttype": "DocType", 
+  "parentfield": "fields"
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Serial No", 
+  "read": 1, 
+  "doctype": "DocPerm", 
+  "parenttype": "DocType", 
+  "parentfield": "permissions"
+ }, 
+ {
+  "name": "Serial No", 
+  "doctype": "DocType"
+ }, 
+ {
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "Details", 
+  "fieldname": "details", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "column_break0", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "permlevel": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Select", 
+  "doctype": "DocField", 
+  "label": "Status", 
+  "oldfieldname": "status", 
+  "default": "In Store", 
+  "fieldname": "status", 
+  "fieldtype": "Select", 
+  "search_index": 1, 
+  "reqd": 1, 
+  "options": "\nIn Store\nDelivered\nNot in Use\nPurchase Returned", 
+  "in_filter": 1
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Serial No", 
+  "oldfieldname": "serial_no", 
+  "fieldname": "serial_no", 
+  "fieldtype": "Data", 
+  "search_index": 1, 
+  "reqd": 1, 
+  "permlevel": 0, 
+  "in_filter": 0
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Item Code", 
+  "oldfieldname": "item_code", 
+  "permlevel": 0, 
+  "trigger": "Client", 
+  "fieldname": "item_code", 
+  "fieldtype": "Link", 
+  "search_index": 0, 
+  "reqd": 1, 
+  "options": "Item", 
+  "in_filter": 1
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "column_break1", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Item Name", 
+  "fieldname": "item_name", 
+  "fieldtype": "Data", 
+  "permlevel": 1
+ }, 
+ {
+  "oldfieldtype": "Text", 
+  "doctype": "DocField", 
+  "label": "Description", 
+  "oldfieldname": "description", 
+  "width": "300px", 
+  "fieldname": "description", 
+  "fieldtype": "Text", 
+  "search_index": 0, 
+  "permlevel": 1, 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Item Group", 
+  "oldfieldname": "item_group", 
+  "options": "Item Group", 
+  "fieldname": "item_group", 
+  "fieldtype": "Link", 
+  "search_index": 0, 
+  "reqd": 1, 
+  "permlevel": 1, 
+  "in_filter": 0
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Brand", 
+  "oldfieldname": "brand", 
+  "options": "Brand", 
+  "fieldname": "brand", 
+  "fieldtype": "Link", 
+  "search_index": 0, 
+  "reqd": 0, 
+  "permlevel": 1, 
+  "in_filter": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Purchase Details", 
+  "fieldname": "purchase_details", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break2", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "Purchase Document Type", 
+  "options": "\nPurchase Receipt\nStock Entry", 
+  "fieldname": "purchase_document_type", 
+  "fieldtype": "Select", 
+  "permlevel": 0
+ }, 
+ {
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "Purchase Document No", 
+  "fieldname": "purchase_document_no", 
+  "fieldtype": "Data", 
+  "hidden": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Date", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Purchase Date", 
+  "oldfieldname": "purchase_date", 
+  "trigger": "Client", 
+  "fieldname": "purchase_date", 
+  "fieldtype": "Date", 
+  "search_index": 0, 
+  "reqd": 0, 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "Incoming Time", 
+  "fieldname": "purchase_time", 
+  "fieldtype": "Time", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Currency", 
+  "doctype": "DocField", 
+  "label": "Incoming Rate", 
+  "oldfieldname": "purchase_rate", 
+  "fieldname": "purchase_rate", 
+  "fieldtype": "Currency", 
+  "search_index": 0, 
+  "reqd": 1, 
+  "permlevel": 0, 
+  "in_filter": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break3", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Warehouse", 
+  "oldfieldname": "warehouse", 
+  "permlevel": 0, 
+  "fieldname": "warehouse", 
+  "fieldtype": "Link", 
+  "search_index": 1, 
+  "reqd": 0, 
+  "options": "Warehouse", 
+  "in_filter": 1
+ }, 
+ {
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "Supplier", 
+  "options": "Supplier", 
+  "fieldname": "supplier", 
+  "fieldtype": "Link", 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "Supplier Name", 
+  "fieldname": "supplier_name", 
+  "fieldtype": "Data", 
+  "permlevel": 1, 
+  "in_filter": 1
+ }, 
+ {
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "Supplier Address", 
+  "fieldname": "address_display", 
+  "fieldtype": "Text", 
+  "permlevel": 1
+ }, 
+ {
+  "oldfieldtype": "Column Break", 
+  "doctype": "DocField", 
+  "label": "Delivery Details", 
+  "fieldname": "delivery_details", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break4", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "Delivery Document Type", 
+  "options": "\nDelivery Note\nSales Invoice\nStock Entry", 
+  "fieldname": "delivery_document_type", 
+  "fieldtype": "Select", 
+  "permlevel": 1, 
+  "in_filter": 1
+ }, 
+ {
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "Delivery Document No", 
+  "fieldname": "delivery_document_no", 
+  "fieldtype": "Data", 
+  "permlevel": 1, 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Text", 
+  "doctype": "DocField", 
+  "label": "Customer Address", 
+  "oldfieldname": "customer_address", 
+  "fieldname": "customer_address", 
+  "fieldtype": "Text", 
+  "permlevel": 1
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Date", 
+  "doctype": "DocField", 
+  "label": "Delivery Date", 
+  "oldfieldname": "delivery_date", 
+  "fieldname": "delivery_date", 
+  "fieldtype": "Date", 
+  "search_index": 0, 
+  "permlevel": 1
+ }, 
+ {
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "Delivery Time", 
+  "fieldname": "delivery_time", 
+  "fieldtype": "Time", 
+  "permlevel": 1
+ }, 
+ {
+  "oldfieldtype": "Select", 
+  "doctype": "DocField", 
+  "label": "Is Cancelled", 
+  "oldfieldname": "is_cancelled", 
+  "options": "\nYes\nNo", 
+  "fieldname": "is_cancelled", 
+  "fieldtype": "Select", 
+  "hidden": 1, 
+  "permlevel": 0, 
+  "report_hide": 1
+ }, 
+ {
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break5", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Customer", 
+  "oldfieldname": "customer", 
+  "permlevel": 1, 
+  "trigger": "Client", 
+  "fieldname": "customer", 
+  "fieldtype": "Link", 
+  "search_index": 0, 
+  "options": "Customer", 
+  "in_filter": 1
+ }, 
+ {
+  "no_copy": 1, 
+  "oldfieldtype": "Data", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Customer Name", 
+  "oldfieldname": "customer_name", 
+  "fieldname": "customer_name", 
+  "fieldtype": "Data", 
+  "search_index": 0, 
+  "permlevel": 1, 
+  "in_filter": 1
+ }, 
+ {
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "Delivery Address", 
+  "fieldname": "delivery_address", 
+  "fieldtype": "Text", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "oldfieldtype": "Link", 
+  "doctype": "DocField", 
+  "label": "Territory", 
+  "oldfieldname": "territory", 
+  "permlevel": 1, 
+  "fieldname": "territory", 
+  "fieldtype": "Link", 
+  "options": "Territory", 
+  "report_hide": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Warranty / AMC Details", 
+  "fieldname": "warranty_amc_details", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break6", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "permlevel": 0, 
+  "no_copy": 0, 
+  "oldfieldtype": "Select", 
+  "doctype": "DocField", 
+  "label": "Maintenance Status", 
+  "oldfieldname": "maintenance_status", 
+  "width": "150px", 
+  "fieldname": "maintenance_status", 
+  "fieldtype": "Select", 
+  "search_index": 1, 
+  "options": "\nUnder Warranty\nOut of Warranty\nUnder AMC\nOut of AMC", 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Int", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Warranty Period (Days)", 
+  "oldfieldname": "warranty_period", 
+  "width": "150px", 
+  "trigger": "Client", 
+  "fieldname": "warranty_period", 
+  "fieldtype": "Int", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "width": "50%", 
+  "fieldname": "column_break7", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Date", 
+  "doctype": "DocField", 
+  "label": "Warranty Expiry Date", 
+  "oldfieldname": "warranty_expiry_date", 
+  "width": "150px", 
+  "fieldname": "warranty_expiry_date", 
+  "fieldtype": "Date", 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Date", 
+  "doctype": "DocField", 
+  "label": "AMC Expiry Date", 
+  "oldfieldname": "amc_expiry_date", 
+  "width": "150px", 
+  "fieldname": "amc_expiry_date", 
+  "fieldtype": "Date", 
+  "search_index": 0, 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "More Info", 
+  "fieldname": "more_info", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Serial No Details", 
+  "fieldname": "serial_no_details", 
+  "fieldtype": "Text Editor", 
+  "permlevel": 0
+ }, 
+ {
+  "search_index": 1, 
+  "doctype": "DocField", 
+  "label": "Company", 
+  "options": "link:Company", 
+  "fieldname": "company", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "search_index": 1, 
+  "doctype": "DocField", 
+  "label": "Fiscal Year", 
+  "options": "link:Fiscal Year", 
+  "fieldname": "fiscal_year", 
+  "fieldtype": "Select", 
+  "reqd": 1, 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "oldfieldtype": "Small Text", 
+  "doctype": "DocField", 
+  "label": "Trash Reason", 
+  "oldfieldname": "trash_reason", 
+  "fieldname": "trash_reason", 
+  "fieldtype": "Small Text", 
+  "permlevel": 1
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "File List", 
+  "fieldname": "file_list", 
+  "fieldtype": "Text", 
+  "hidden": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "SLE Exists", 
+  "fieldname": "sle_exists", 
+  "fieldtype": "Check", 
+  "hidden": 1, 
+  "permlevel": 1, 
+  "report_hide": 1
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "role": "Material Manager", 
+  "cancel": 0, 
+  "permlevel": 1
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "role": "Material Manager", 
+  "cancel": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "role": "Material User", 
+  "cancel": 0, 
+  "permlevel": 1
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "role": "Material User", 
+  "cancel": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "write": 1, 
+  "role": "System Manager", 
+  "cancel": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "write": 1, 
+  "role": "Material Master Manager", 
+  "cancel": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "System Manager", 
+  "permlevel": 1
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Sales Master Manager", 
+  "permlevel": 1
+ }
 ]
\ No newline at end of file
diff --git a/stock/doctype/warehouse/warehouse.txt b/stock/doctype/warehouse/warehouse.txt
index c51cfa8..428910b 100644
--- a/stock/doctype/warehouse/warehouse.txt
+++ b/stock/doctype/warehouse/warehouse.txt
@@ -1,314 +1,296 @@
-# DocType, Warehouse
 [
-
-	# These values are common in all dictionaries
-	{
-		u'creation': '2012-10-10 12:07:10',
-		u'docstatus': 0,
-		u'modified': '2012-10-25 15:03:49',
-		u'modified_by': u'Administrator',
-		u'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': u'1319016431',
-		'allow_trash': 1,
-		'autoname': u'field:warehouse_name',
-		'colour': u'White:FFF',
-		'default_print_format': u'Standard',
-		'description': u'A logical Warehouse against which stock entries are made.\n\nThere are two main Warehouse Types that are significant in ERPNext.\n\n1. **Stores:** These are where your incoming **Items** are kept before they are consumed or sold. You can have as many \u201cStores\u201d type **Warehouses** as you wish. Stores type warehouses are significant because if you set an Item for automatic re-order, ERPNext will check its quantities in all \u201cStores\u201d type **Warehouses** when deciding whether to re-order or not.\n\n2. **Asset**: **Items** marked as type \u201cFixed Asset\u201d are maintained in Asset Type **Warehouses**. This helps you separate them for the **Items** that are consumed as a part of your regular operations or \u201cCost of Goods Sold\u201d.\n',
-		u'doctype': u'DocType',
-		'document_type': u'Master',
-		'module': u'Stock',
-		u'name': u'__common__',
-		'search_fields': u'warehouse_type',
-		'section_style': u'Tabbed',
-		'server_code_error': u' ',
-		'show_in_menu': 0,
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		u'doctype': u'DocField',
-		u'name': u'__common__',
-		'parent': u'Warehouse',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		u'doctype': u'DocPerm',
-		u'name': u'__common__',
-		'parent': u'Warehouse',
-		'parentfield': u'permissions',
-		'parenttype': u'DocType',
-		'read': 1
-	},
-
-	# DocType, Warehouse
-	{
-		u'doctype': u'DocType',
-		u'name': u'Warehouse'
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'warehouse_detail',
-		'fieldtype': u'Section Break',
-		'label': u'Warehouse Detail',
-		'oldfieldtype': u'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'warehouse_name',
-		'fieldtype': u'Data',
-		'label': u'Warehouse Name',
-		'oldfieldname': u'warehouse_name',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		u'doctype': u'DocField',
-		'fieldname': u'warehouse_type',
-		'fieldtype': u'Link',
-		'label': u'Warehouse Type',
-		'oldfieldname': u'warehouse_type',
-		'oldfieldtype': u'Link',
-		'options': u'Warehouse Type',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		u'doctype': u'DocField',
-		'fieldname': u'company',
-		'fieldtype': u'Link',
-		'in_filter': 1,
-		'label': u'Company',
-		'oldfieldname': u'company',
-		'oldfieldtype': u'Link',
-		'options': u'Company',
-		'permlevel': 0,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'For Reference Only.',
-		u'doctype': u'DocField',
-		'fieldname': u'warehouse_contact_info',
-		'fieldtype': u'Section Break',
-		'label': u'Warehouse Contact Info',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'email_id',
-		'fieldtype': u'Data',
-		'hidden': 1,
-		'label': u'Email Id',
-		'oldfieldname': u'email_id',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'print_hide': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'phone_no',
-		'fieldtype': u'Data',
-		'label': u'Phone No',
-		'oldfieldname': u'phone_no',
-		'oldfieldtype': u'Int',
-		'options': u'Phone',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'mobile_no',
-		'fieldtype': u'Data',
-		'label': u'Mobile No',
-		'oldfieldname': u'mobile_no',
-		'oldfieldtype': u'Int',
-		'options': u'Phone',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'column_break0',
-		'fieldtype': u'Column Break',
-		'oldfieldtype': u'Column Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'address_line_1',
-		'fieldtype': u'Data',
-		'label': u'Address Line 1',
-		'oldfieldname': u'address_line_1',
-		'oldfieldtype': u'Data',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'address_line_2',
-		'fieldtype': u'Data',
-		'label': u'Address Line 2',
-		'oldfieldname': u'address_line_2',
-		'oldfieldtype': u'Data',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'city',
-		'fieldtype': u'Data',
-		'label': u'City',
-		'oldfieldname': u'city',
-		'oldfieldtype': u'Data',
-		'permlevel': 0,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		u'doctype': u'DocField',
-		'fieldname': u'state',
-		'fieldtype': u'Data',
-		'label': u'State',
-		'oldfieldname': u'state',
-		'oldfieldtype': u'Select',
-		'options': u'Suggest',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'pin',
-		'fieldtype': u'Int',
-		'label': u'PIN',
-		'oldfieldname': u'pin',
-		'oldfieldtype': u'Int',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'This feature is for merging duplicate warehouses. It will replace all the links of this warehouse by "Merge With" warehouse. After merging you can delete this warehouse, as stock level for this warehouse will be zero.',
-		u'doctype': u'DocField',
-		'fieldname': u'merge_warehouses_section',
-		'fieldtype': u'Section Break',
-		'label': u'Merge Warehouses',
-		'permlevel': 2
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'merge_with',
-		'fieldtype': u'Link',
-		'label': u'Merge With',
-		'options': u'Warehouse',
-		'permlevel': 2
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'merge',
-		'fieldtype': u'Button',
-		'label': u'Merge',
-		'permlevel': 2
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 1,
-		'create': 1,
-		u'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material Master Manager',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'cancel': 1,
-		'create': 1,
-		u'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		u'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		u'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Material User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		u'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'All'
-	},
-
-	# DocPerm
-	{
-		'create': 0,
-		u'doctype': u'DocPerm',
-		'permlevel': 2,
-		'role': u'System Manager',
-		'write': 1
-	}
+ {
+  "owner": "Administrator", 
+  "docstatus": 0, 
+  "creation": "2012-10-26 14:47:52", 
+  "modified_by": "Administrator", 
+  "modified": "2012-12-03 11:24:31"
+ }, 
+ {
+  "autoname": "field:warehouse_name", 
+  "description": "A logical Warehouse against which stock entries are made.", 
+  "default_print_format": "Standard", 
+  "allow_rename": 1, 
+  "search_fields": "warehouse_type", 
+  "module": "Stock", 
+  "doctype": "DocType", 
+  "document_type": "Master", 
+  "name": "__common__"
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Warehouse", 
+  "doctype": "DocField", 
+  "parenttype": "DocType", 
+  "parentfield": "fields"
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Warehouse", 
+  "read": 1, 
+  "doctype": "DocPerm", 
+  "parenttype": "DocType", 
+  "parentfield": "permissions"
+ }, 
+ {
+  "name": "Warehouse", 
+  "doctype": "DocType"
+ }, 
+ {
+  "oldfieldtype": "Section Break", 
+  "doctype": "DocField", 
+  "label": "Warehouse Detail", 
+  "fieldname": "warehouse_detail", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Warehouse Name", 
+  "oldfieldname": "warehouse_name", 
+  "fieldname": "warehouse_name", 
+  "fieldtype": "Data", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Warehouse Type", 
+  "oldfieldname": "warehouse_type", 
+  "options": "Warehouse Type", 
+  "fieldname": "warehouse_type", 
+  "fieldtype": "Link", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Link", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Company", 
+  "oldfieldname": "company", 
+  "options": "Company", 
+  "fieldname": "company", 
+  "fieldtype": "Link", 
+  "search_index": 1, 
+  "permlevel": 0, 
+  "in_filter": 1
+ }, 
+ {
+  "description": "For Reference Only.", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Warehouse Contact Info", 
+  "fieldname": "warehouse_contact_info", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 0, 
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Email Id", 
+  "oldfieldname": "email_id", 
+  "fieldname": "email_id", 
+  "fieldtype": "Data", 
+  "hidden": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Int", 
+  "doctype": "DocField", 
+  "label": "Phone No", 
+  "oldfieldname": "phone_no", 
+  "options": "Phone", 
+  "fieldname": "phone_no", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Int", 
+  "doctype": "DocField", 
+  "label": "Mobile No", 
+  "oldfieldname": "mobile_no", 
+  "options": "Phone", 
+  "fieldname": "mobile_no", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Column Break", 
+  "doctype": "DocField", 
+  "fieldname": "column_break0", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Address Line 1", 
+  "oldfieldname": "address_line_1", 
+  "fieldname": "address_line_1", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "Address Line 2", 
+  "oldfieldname": "address_line_2", 
+  "fieldname": "address_line_2", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Data", 
+  "doctype": "DocField", 
+  "label": "City", 
+  "oldfieldname": "city", 
+  "fieldname": "city", 
+  "fieldtype": "Data", 
+  "reqd": 0, 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Select", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "State", 
+  "oldfieldname": "state", 
+  "options": "Suggest", 
+  "fieldname": "state", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "oldfieldtype": "Int", 
+  "doctype": "DocField", 
+  "label": "PIN", 
+  "oldfieldname": "pin", 
+  "fieldname": "pin", 
+  "fieldtype": "Int", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "This feature is for merging duplicate warehouses. It will replace all the links of this warehouse by \"Merge With\" warehouse. After merging you can delete this warehouse, as stock level for this warehouse will be zero.", 
+  "colour": "White:FFF", 
+  "doctype": "DocField", 
+  "label": "Merge Warehouses", 
+  "fieldname": "merge_warehouses_section", 
+  "fieldtype": "Section Break", 
+  "permlevel": 2
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Merge With", 
+  "options": "Warehouse", 
+  "fieldname": "merge_with", 
+  "fieldtype": "Link", 
+  "permlevel": 2
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Merge", 
+  "fieldname": "merge", 
+  "fieldtype": "Button", 
+  "permlevel": 2
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Material User", 
+  "permlevel": 2
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Material User", 
+  "permlevel": 0
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Material User", 
+  "permlevel": 1
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Material Manager", 
+  "permlevel": 2
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Material Manager", 
+  "permlevel": 0
+ }, 
+ {
+  "amend": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 0, 
+  "cancel": 0, 
+  "role": "Material Manager", 
+  "permlevel": 1
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "All", 
+  "permlevel": 1
+ }, 
+ {
+  "amend": 0, 
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "submit": 0, 
+  "write": 1, 
+  "cancel": 1, 
+  "role": "Material Master Manager", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "Material Master Manager", 
+  "permlevel": 1
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "write": 1, 
+  "role": "System Manager", 
+  "cancel": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "write": 1, 
+  "role": "System Manager", 
+  "permlevel": 2
+ }
 ]
\ No newline at end of file
diff --git a/stock/tests.py b/stock/tests.py
deleted file mode 100644
index 92378dc..0000000
--- a/stock/tests.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# 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
-import unittest
-
-import sys
-sys.path.append('/Users/rushabh/Workbench/www/wnframework/cgi-bin/')
-sys.path.append('/Users/rushabh/Workbench/www/erpnext/')
-
-from material_management.doctype.delivery_note.tests import *
-
-if __name__ == '__main__':
-	unittest.main()
\ No newline at end of file
diff --git a/tests/data/item/android_jack_d.txt b/tests/data/item/android_jack_d.txt
new file mode 100644
index 0000000..24944e3
--- /dev/null
+++ b/tests/data/item/android_jack_d.txt
@@ -0,0 +1,37 @@
+# Item, Android Jack D
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-26 11:30:44',
+		u'docstatus': 0,
+		u'modified': '2012-08-26 11:30:44',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item
+	{
+		'description': u'Android Jack D',
+		'doctype': 'Item',
+		'has_batch_no': u'No',
+		'has_serial_no': u'No',
+		'inspection_required': u'No',
+		'is_purchase_item': u'Yes',
+		'is_sales_item': u'Yes',
+		'is_service_item': u'No',
+		'is_stock_item': u'Yes',
+		'item_code': u'Android Jack D',
+		'item_group': u'Android',
+		'item_name': u'Android Jack D',
+		u'name': u'__common__',
+		'stock_uom': u'Nos',
+		'default_warehouse': u'Default Warehouse'
+	},
+
+	# Item, Android Jack D
+	{
+		u'doctype': 'Item',
+		'name': u'Android Jack D'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item/android_jack_s.txt b/tests/data/item/android_jack_s.txt
new file mode 100644
index 0000000..feaceef
--- /dev/null
+++ b/tests/data/item/android_jack_s.txt
@@ -0,0 +1,37 @@
+# Item, Android Jack S
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-26 11:29:22',
+		u'docstatus': 0,
+		u'modified': '2012-08-26 11:29:22',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item
+	{
+		'description': u'Android Jack S',
+		'doctype': 'Item',
+		'has_batch_no': u'No',
+		'has_serial_no': u'No',
+		'inspection_required': u'No',
+		'is_purchase_item': u'Yes',
+		'is_sales_item': u'Yes',
+		'is_service_item': u'No',
+		'is_stock_item': u'Yes',
+		'item_code': u'Android Jack S',
+		'item_group': u'Android',
+		'item_name': u'Android Jack S',
+		u'name': u'__common__',
+		'stock_uom': u'Nos',
+		'default_warehouse': u'Default Warehouse'
+	},
+
+	# Item, Android Jack S
+	{
+		u'doctype': 'Item',
+		'name': u'Android Jack S'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item/home_desktop_100.txt b/tests/data/item/home_desktop_100.txt
new file mode 100644
index 0000000..19ef01d
--- /dev/null
+++ b/tests/data/item/home_desktop_100.txt
@@ -0,0 +1,37 @@
+# Item, Home Desktop 100
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-26 11:25:28',
+		u'docstatus': 0,
+		u'modified': '2012-08-26 11:25:28',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item
+	{
+		'description': u'Home Desktop 100',
+		'doctype': 'Item',
+		'has_batch_no': u'No',
+		'has_serial_no': u'No',
+		'inspection_required': u'No',
+		'is_purchase_item': u'Yes',
+		'is_sales_item': u'Yes',
+		'is_service_item': u'No',
+		'is_stock_item': u'Yes',
+		'item_code': u'Home Desktop 100',
+		'item_group': u'Home Series',
+		'item_name': u'Home Desktop 100',
+		u'name': u'__common__',
+		'stock_uom': u'Nos',
+		'default_warehouse': u'Default Warehouse'
+	},
+
+	# Item, Home Desktop 100
+	{
+		u'doctype': 'Item',
+		'name': u'Home Desktop 100'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item/home_desktop_200.txt b/tests/data/item/home_desktop_200.txt
new file mode 100644
index 0000000..053e37c
--- /dev/null
+++ b/tests/data/item/home_desktop_200.txt
@@ -0,0 +1,37 @@
+# Item, Home Desktop 200
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-26 11:25:54',
+		u'docstatus': 0,
+		u'modified': '2012-08-26 11:25:54',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item
+	{
+		'description': u'Home Desktop 200',
+		'doctype': 'Item',
+		'has_batch_no': u'No',
+		'has_serial_no': u'No',
+		'inspection_required': u'No',
+		'is_purchase_item': u'Yes',
+		'is_sales_item': u'Yes',
+		'is_service_item': u'No',
+		'is_stock_item': u'Yes',
+		'item_code': u'Home Desktop 200',
+		'item_group': u'Home Series',
+		'item_name': u'Home Desktop 200',
+		u'name': u'__common__',
+		'stock_uom': u'Nos',
+		'default_warehouse': u'Default Warehouse'
+	},
+
+	# Item, Home Desktop 200
+	{
+		u'doctype': 'Item',
+		'name': u'Home Desktop 200'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item/home_desktop_300.txt b/tests/data/item/home_desktop_300.txt
new file mode 100644
index 0000000..304b2ef
--- /dev/null
+++ b/tests/data/item/home_desktop_300.txt
@@ -0,0 +1,37 @@
+# Item, Home Desktop 300
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-26 11:26:37',
+		u'docstatus': 0,
+		u'modified': '2012-08-26 11:26:37',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item
+	{
+		'description': u'Home Desktop 300',
+		'doctype': 'Item',
+		'has_batch_no': u'No',
+		'has_serial_no': u'No',
+		'inspection_required': u'No',
+		'is_purchase_item': u'Yes',
+		'is_sales_item': u'Yes',
+		'is_service_item': u'No',
+		'is_stock_item': u'Yes',
+		'item_code': u'Home Desktop 300',
+		'item_group': u'Home Series',
+		'item_name': u'Home Desktop 300',
+		u'name': u'__common__',
+		'stock_uom': u'Nos',
+		'default_warehouse': u'Default Warehouse'
+	},
+
+	# Item, Home Desktop 300
+	{
+		u'doctype': 'Item',
+		'name': u'Home Desktop 300'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item/nebula_7.txt b/tests/data/item/nebula_7.txt
new file mode 100644
index 0000000..9f61d7a
--- /dev/null
+++ b/tests/data/item/nebula_7.txt
@@ -0,0 +1,38 @@
+# Item, Nebula 7
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-26 11:32:02',
+		u'docstatus': 0,
+		u'modified': '2012-08-26 11:32:02',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item
+	{
+		'description': u'Nebula 7',
+		'doctype': 'Item',
+		'has_batch_no': u'No',
+		'has_serial_no': u'No',
+		'inspection_required': u'No',
+		'is_sub_contracted_item': 'Yes',
+		'is_purchase_item': u'No',
+		'is_sales_item': u'Yes',
+		'is_service_item': u'No',
+		'is_stock_item': u'Yes',
+		'item_code': u'Nebula 7',
+		'item_group': u'Small Tablets',
+		'item_name': u'Nebula 7',
+		u'name': u'__common__',
+		'stock_uom': u'Nos',
+		'default_warehouse': u'Default Warehouse'
+	},
+
+	# Item, Nebula 7
+	{
+		u'doctype': 'Item',
+		'name': u'Nebula 7'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/accessories.txt b/tests/data/item_group/accessories.txt
new file mode 100644
index 0000000..c4d3b1a
--- /dev/null
+++ b/tests/data/item_group/accessories.txt
@@ -0,0 +1,27 @@
+# Item Group, Accessories
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:55:59',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:55:59',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'Yes',
+		'item_group_name': u'Accessories',
+		u'name': u'__common__',
+		'parent_item_group': u'All Item Groups'
+	},
+
+	# Item Group, Accessories
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Accessories'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/android.txt b/tests/data/item_group/android.txt
new file mode 100644
index 0000000..9d66be5
--- /dev/null
+++ b/tests/data/item_group/android.txt
@@ -0,0 +1,27 @@
+# Item Group, Android
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:57:11',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:57:11',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'No',
+		'item_group_name': u'Android',
+		u'name': u'__common__',
+		'parent_item_group': u'Smartphones'
+	},
+
+	# Item Group, Android
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Android'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/desktops.txt b/tests/data/item_group/desktops.txt
new file mode 100644
index 0000000..7c093d5
--- /dev/null
+++ b/tests/data/item_group/desktops.txt
@@ -0,0 +1,27 @@
+# Item Group, Desktops
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:55:28',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:55:28',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'Yes',
+		'item_group_name': u'Desktops',
+		u'name': u'__common__',
+		'parent_item_group': u'All Item Groups'
+	},
+
+	# Item Group, Desktops
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Desktops'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/full_size_tablets.txt b/tests/data/item_group/full_size_tablets.txt
new file mode 100644
index 0000000..158547c
--- /dev/null
+++ b/tests/data/item_group/full_size_tablets.txt
@@ -0,0 +1,27 @@
+# Item Group, Full Size Tablets
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:58:20',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:58:20',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'No',
+		'item_group_name': u'Full Size Tablets',
+		u'name': u'__common__',
+		'parent_item_group': u'Tablets'
+	},
+
+	# Item Group, Full Size Tablets
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Full Size Tablets'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/gamer.txt b/tests/data/item_group/gamer.txt
new file mode 100644
index 0000000..bce38c7
--- /dev/null
+++ b/tests/data/item_group/gamer.txt
@@ -0,0 +1,27 @@
+# Item Group, Gamer
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:56:27',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:56:27',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'No',
+		'item_group_name': u'Gamer',
+		u'name': u'__common__',
+		'parent_item_group': u'Desktops'
+	},
+
+	# Item Group, Gamer
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Gamer'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/home_series.txt b/tests/data/item_group/home_series.txt
new file mode 100644
index 0000000..27eeec3
--- /dev/null
+++ b/tests/data/item_group/home_series.txt
@@ -0,0 +1,27 @@
+# Item Group, Home Series
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:56:15',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:56:15',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'No',
+		'item_group_name': u'Home Series',
+		u'name': u'__common__',
+		'parent_item_group': u'Desktops'
+	},
+
+	# Item Group, Home Series
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Home Series'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/laptops.txt b/tests/data/item_group/laptops.txt
new file mode 100644
index 0000000..2ac14d1
--- /dev/null
+++ b/tests/data/item_group/laptops.txt
@@ -0,0 +1,27 @@
+# Item Group, Laptops
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:55:36',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:55:36',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'Yes',
+		'item_group_name': u'Laptops',
+		u'name': u'__common__',
+		'parent_item_group': u'All Item Groups'
+	},
+
+	# Item Group, Laptops
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Laptops'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/lightweight.txt b/tests/data/item_group/lightweight.txt
new file mode 100644
index 0000000..b3e01e5
--- /dev/null
+++ b/tests/data/item_group/lightweight.txt
@@ -0,0 +1,27 @@
+# Item Group, Lightweight
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:56:57',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:56:58',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'No',
+		'item_group_name': u'Lightweight',
+		u'name': u'__common__',
+		'parent_item_group': u'Laptops'
+	},
+
+	# Item Group, Lightweight
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Lightweight'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/medium_tablets.txt b/tests/data/item_group/medium_tablets.txt
new file mode 100644
index 0000000..87bda5d
--- /dev/null
+++ b/tests/data/item_group/medium_tablets.txt
@@ -0,0 +1,27 @@
+# Item Group, Medium Tablets
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:57:51',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:57:51',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'No',
+		'item_group_name': u'Medium Tablets',
+		u'name': u'__common__',
+		'parent_item_group': u'Tablets'
+	},
+
+	# Item Group, Medium Tablets
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Medium Tablets'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/pro_series.txt b/tests/data/item_group/pro_series.txt
new file mode 100644
index 0000000..e66f91a
--- /dev/null
+++ b/tests/data/item_group/pro_series.txt
@@ -0,0 +1,27 @@
+# Item Group, Pro Series
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:56:20',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:56:20',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'No',
+		'item_group_name': u'Pro Series',
+		u'name': u'__common__',
+		'parent_item_group': u'Desktops'
+	},
+
+	# Item Group, Pro Series
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Pro Series'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/small_tablets.txt b/tests/data/item_group/small_tablets.txt
new file mode 100644
index 0000000..cbf4399
--- /dev/null
+++ b/tests/data/item_group/small_tablets.txt
@@ -0,0 +1,27 @@
+# Item Group, Small Tablets
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:57:44',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:57:44',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'No',
+		'item_group_name': u'Small Tablets',
+		u'name': u'__common__',
+		'parent_item_group': u'Tablets'
+	},
+
+	# Item Group, Small Tablets
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Small Tablets'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/smartphones.txt b/tests/data/item_group/smartphones.txt
new file mode 100644
index 0000000..ee7dfb9
--- /dev/null
+++ b/tests/data/item_group/smartphones.txt
@@ -0,0 +1,27 @@
+# Item Group, Smartphones
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:55:49',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:55:49',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'Yes',
+		'item_group_name': u'Smartphones',
+		u'name': u'__common__',
+		'parent_item_group': u'All Item Groups'
+	},
+
+	# Item Group, Smartphones
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Smartphones'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/tablets.txt b/tests/data/item_group/tablets.txt
new file mode 100644
index 0000000..cc44bae
--- /dev/null
+++ b/tests/data/item_group/tablets.txt
@@ -0,0 +1,27 @@
+# Item Group, Tablets
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:55:42',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:55:42',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'Yes',
+		'item_group_name': u'Tablets',
+		u'name': u'__common__',
+		'parent_item_group': u'All Item Groups'
+	},
+
+	# Item Group, Tablets
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Tablets'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/tough.txt b/tests/data/item_group/tough.txt
new file mode 100644
index 0000000..0d3badd
--- /dev/null
+++ b/tests/data/item_group/tough.txt
@@ -0,0 +1,27 @@
+# Item Group, Tough
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:56:41',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:56:41',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'No',
+		'item_group_name': u'Tough',
+		u'name': u'__common__',
+		'parent_item_group': u'Laptops'
+	},
+
+	# Item Group, Tough
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Tough'
+	}
+]
\ No newline at end of file
diff --git a/tests/data/item_group/ultrabook.txt b/tests/data/item_group/ultrabook.txt
new file mode 100644
index 0000000..4bb19d7
--- /dev/null
+++ b/tests/data/item_group/ultrabook.txt
@@ -0,0 +1,27 @@
+# Item Group, Ultrabook
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-08-07 09:56:50',
+		u'docstatus': 0,
+		u'modified': '2012-08-07 09:56:50',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Item Group
+	{
+		u'doctype': 'Item Group',
+		'is_group': u'No',
+		'item_group_name': u'Ultrabook',
+		u'name': u'__common__',
+		'parent_item_group': u'Laptops'
+	},
+
+	# Item Group, Ultrabook
+	{
+		u'doctype': 'Item Group',
+		u'name': u'Ultrabook'
+	}
+]
\ No newline at end of file
diff --git a/utilities/doctype/rename_tool/__init__.py b/utilities/doctype/rename_tool/__init__.py
deleted file mode 100755
index baffc48..0000000
--- a/utilities/doctype/rename_tool/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/utilities/doctype/rename_tool/rename_tool.js b/utilities/doctype/rename_tool/rename_tool.js
deleted file mode 100644
index fe024c6..0000000
--- a/utilities/doctype/rename_tool/rename_tool.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// over-ride the link query to return relevant link names
-
-cur_frm.fields_dict.document_to_rename.get_query = function(doc, dt, dn) {
-	return "SELECT name FROM `tab"+doc.select_doctype+"` WHERE docstatus<2 AND name LIKE '%s' LIMIT 50";
-}
\ No newline at end of file
diff --git a/utilities/doctype/rename_tool/rename_tool.py b/utilities/doctype/rename_tool/rename_tool.py
deleted file mode 100644
index 79832fb..0000000
--- a/utilities/doctype/rename_tool/rename_tool.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# 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
-class DocType:
-	def __init__(self, d, dl=[]):
-		self.doc, self.doclist = d, dl
-		
-	def rename(self):
-		"""
-		Generate update quereies for rename
-		"""
-		import webnotes.model
-			
-		# rename the document		
-		webnotes.model.rename(self.doc.select_doctype, self.doc.document_to_rename, self.doc.new_name)
-		
-		webnotes.msgprint("Successfully renamed "+self.doc.select_doctype+" : '"+self.doc.document_to_rename+"' to <b>"+self.doc.new_name+"</b>")
diff --git a/utilities/doctype/rename_tool/rename_tool.txt b/utilities/doctype/rename_tool/rename_tool.txt
deleted file mode 100755
index e7a08ec..0000000
--- a/utilities/doctype/rename_tool/rename_tool.txt
+++ /dev/null
@@ -1,99 +0,0 @@
-# DocType, Rename Tool
-[
-
-	# These values are common in all dictionaries
-	{
-		u'creation': '2012-07-03 13:30:42',
-		u'docstatus': 0,
-		u'modified': '2012-11-16 14:16:09',
-		u'modified_by': u'Administrator',
-		u'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': u'1308739509',
-		'allow_email': 1,
-		'allow_print': 1,
-		'colour': u'White:FFF',
-		u'doctype': u'DocType',
-		'hide_heading': 0,
-		'hide_toolbar': 0,
-		'issingle': 1,
-		'module': u'Utilities',
-		u'name': u'__common__',
-		'section_style': u'Simple',
-		'show_in_menu': 0,
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		u'doctype': u'DocField',
-		u'name': u'__common__',
-		'parent': u'Rename Tool',
-		'parentfield': u'fields',
-		'parenttype': u'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 1,
-		u'doctype': u'DocPerm',
-		u'name': u'__common__',
-		'parent': u'Rename Tool',
-		'parentfield': u'permissions',
-		'parenttype': u'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': u'System Manager',
-		'write': 1
-	},
-
-	# DocType, Rename Tool
-	{
-		u'doctype': u'DocType',
-		u'name': u'Rename Tool'
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'select_doctype',
-		'fieldtype': u'Select',
-		'label': u'Select DocType',
-		'options': u'\nAccount\nCompany\nCustomer\nSupplier\nEmployee\nWarehouse\nItem\nProfile\nSerial No'
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'document_to_rename',
-		'fieldtype': u'Link',
-		'label': u'Document to rename',
-		'options': u'[Select]'
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'new_name',
-		'fieldtype': u'Data',
-		'label': u'New Name'
-	},
-
-	# DocField
-	{
-		u'doctype': u'DocField',
-		'fieldname': u'rename',
-		'fieldtype': u'Button',
-		'label': u'Rename',
-		'options': u'rename'
-	},
-
-	# DocPerm
-	{
-		u'doctype': u'DocPerm'
-	}
-]
\ No newline at end of file
diff --git a/utilities/page/messages/messages.py b/utilities/page/messages/messages.py
index 638ecf5..a7c7acb 100644
--- a/utilities/page/messages/messages.py
+++ b/utilities/page/messages/messages.py
@@ -24,13 +24,13 @@
 	webnotes.form_dict['limit_page_length'] = int(webnotes.form_dict['limit_page_length'])
 	webnotes.form_dict['user'] = webnotes.session['user']
 
+	# set all messages as read
+	webnotes.conn.sql("""UPDATE `tabComment`
+	set docstatus = 1 where comment_doctype in ('My Company', 'Message')
+	and comment_docname = %s
+	""", webnotes.user.name)
+
 	if webnotes.form_dict['contact'] == webnotes.session['user']:
-		# set all messages as read
-		webnotes.conn.sql("""UPDATE `tabComment`
-		set docstatus = 1 where comment_doctype in ('My Company', 'Message')
-		and comment_docname = %s
-		""", webnotes.user.name)
-				
 		# return messages
 		return webnotes.conn.sql("""select * from `tabComment` 
 		where (owner=%(contact)s