chart of account fixes, added delete, rename
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..b3f9053 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 self.doc.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
diff --git a/accounts/page/accounts_browser/accounts_browser.js b/accounts/page/accounts_browser/accounts_browser.js
index 323135b..3df3770 100644
--- a/accounts/page/accounts_browser/accounts_browser.js
+++ b/accounts/page/accounts_browser/accounts_browser.js
@@ -52,6 +52,12 @@
 			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['onshow_Accounts Browser'] = function(wrapper){
@@ -71,6 +77,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 +127,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 +153,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 +246,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/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/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