diff --git a/erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt b/erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt
index f1f7710..78431f5 100644
--- a/erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt
+++ b/erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt
@@ -5,7 +5,7 @@
 	{
 		'creation': '2010-08-08 17:09:36',
 		'docstatus': 0,
-		'modified': '2011-08-08 16:56:40',
+		'modified': '2011-08-31 16:53:11',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
@@ -31,7 +31,7 @@
 
 	# These values are common for all DocType Mapper
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'from_doctype': 'Sales Order',
 		'module': 'Accounts',
 		'name': '__common__',
@@ -41,7 +41,7 @@
 
 	# DocType Mapper, Sales Order-Receivable Voucher
 	{
-		'doctype': 'DocType Mapper',
+		'doctype': u'DocType Mapper',
 		'name': 'Sales Order-Receivable Voucher'
 	},
 
@@ -128,7 +128,7 @@
 		'match_id': 1,
 		'to_field': 'entries',
 		'to_table': 'RV Detail',
-		'validation_logic': 'amount > ifnull(billed_amt, 0) and docstatus = 1'
+		'validation_logic': 'docstatus = 1'
 	},
 
 	# Table Mapper Detail
diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py
index 876c512..384a994 100644
--- a/erpnext/patches/patch.py
+++ b/erpnext/patches/patch.py
@@ -1,7 +1,7 @@
 # REMEMBER to update this
 # ========================
 
-last_patch = 355
+last_patch = 358
 
 #-------------------------------------------
 
@@ -251,6 +251,8 @@
 		reload_doc('stock','doctype','item_customer_detail')
 	elif patch_no == 344:
 		sql("delete from `tabDocFormat` where ifnull(format, '') = '' and parent = 'Delivery Note'")
+		reload_doc('stock', 'doctype', 'delivery_note_detail')
+		reload_doc('stock', 'doctype', 'item_customer_detail')
 	elif patch_no == 345:
 		# rerun 343 (merge confict)
 		reload_doc('stock','doctype','item_customer_detail')
@@ -303,4 +305,11 @@
 	elif patch_no == 355:
 		reload_doc('hr', 'doctype', 'salary_slip')
 		delete_doc('DocType', 'Salary Control Panel')
-
+	elif patch_no == 356:
+		reload_doc('core', 'doctype', 'doctype')
+		sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'")
+	elif patch_no == 357:
+		sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', 'change_log') or label = 'Template') and parent = 'DocType'")
+	elif patch_no == 358:
+		reload_doc('stock', 'doctype', 'delivery_note')
+		reload_doc('stock', 'doctype', 'delivery_note_detail')
diff --git a/erpnext/production/doctype/bill_of_materials/bill_of_materials.py b/erpnext/production/doctype/bill_of_materials/bill_of_materials.py
index d287d2f..9727a63 100644
--- a/erpnext/production/doctype/bill_of_materials/bill_of_materials.py
+++ b/erpnext/production/doctype/bill_of_materials/bill_of_materials.py
@@ -499,19 +499,19 @@
   def get_child_flat_bom_items(self, item, d):
 
     child_flat_bom_items=[]
-    if item and (item[0]['is_sub_contracted_item'] == 'Yes' or item[0]['is_pro_applicable'] == 'Yes'):
+#    if item and (item[0]['is_sub_contracted_item'] == 'Yes' or item[0]['is_pro_applicable'] == 'Yes'):
 
-      child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, '%s' as parent_bom, bom_mat_no, 'No' as is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and is_pro_applicable = 'No' and docstatus = 1" % ( d.bom_no, cstr(d.bom_no)))
-      self.cur_flat_bom_items.append([d.item_code, d.description, flt(d.qty), d.stock_uom, flt(d.moving_avg_rate), flt(d.amount_as_per_mar), flt(d.last_purchase_rate), flt(d.amount_as_per_lpr), flt(d.standard_rate), flt(d.amount_as_per_sr), flt(d.qty_consumed_per_unit), (item[0]['is_sub_contracted_item'] == 'Yes') and d.parent or d.bom_no, d.name, (item[0]['is_sub_contracted_item'] == 'Yes') and 'No' or 'Yes'])
+    child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, '%s' as parent_bom, bom_mat_no, 'No' as is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and is_pro_applicable = 'No' and docstatus = 1" % ( d.bom_no, cstr(d.bom_no)))
+    self.cur_flat_bom_items.append([d.item_code, d.description, flt(d.qty), d.stock_uom, flt(d.moving_avg_rate), flt(d.amount_as_per_mar), flt(d.last_purchase_rate), flt(d.amount_as_per_lpr), flt(d.standard_rate), flt(d.amount_as_per_sr), flt(d.qty_consumed_per_unit), (item[0]['is_sub_contracted_item'] == 'Yes') and d.parent or d.bom_no, d.name, (item[0]['is_sub_contracted_item'] == 'Yes') and 'No' or 'Yes'])
+    return child_flat_bom_items
 
-    else:
-      child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, if(parent_bom = '%s', '%s', parent_bom) as parent_bom, bom_mat_no, is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and docstatus = 1" % ( d.bom_no, d.parent, cstr(d.bom_no)))
+#        else:
+#      child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, if(parent_bom = '%s', '%s', parent_bom) as parent_bom, bom_mat_no, is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and docstatus = 1" % ( d.bom_no, d.parent, cstr(d.bom_no)))
 
-    if not child_flat_bom_items:
-      msgprint("Please Submit Child BOM := %s first." % cstr(d.bom_no))
-      raise Exception
-    else:
-      return child_flat_bom_items
+#    if not child_flat_bom_items:
+#      msgprint("Please Submit Child BOM := %s first." % cstr(d.bom_no))
+#      raise Exception
+#    else:"""
 
 
   # Get Current Flat BOM Items
diff --git a/erpnext/setup/doctype/authorization_control/authorization_control.py b/erpnext/setup/doctype/authorization_control/authorization_control.py
index 4036ecf..d049430 100644
--- a/erpnext/setup/doctype/authorization_control/authorization_control.py
+++ b/erpnext/setup/doctype/authorization_control/authorization_control.py
@@ -18,179 +18,177 @@
 from utilities.transaction_base import TransactionBase
 
 class DocType(TransactionBase):
-  def __init__(self, d, dl):
-    self.doc, self.doclist = d, dl
+	def __init__(self, d, dl):
+		self.doc, self.doclist = d, dl
 
 
-  # Get Names of all Approving Users and Roles
-  # -------------------------------------------
-  def get_appr_user_role(self, det, doctype_name, total, based_on, condition, item, company):
-    amt_list, appr_users, appr_roles = [], [], []
-    users, roles = '',''
-    if det:
-      for x in det:
-        amt_list.append(flt(x[0]))
-      max_amount = max(amt_list)
-      
-      app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = '%s' and (value = '%s' or value > '%s') and docstatus != 2 and based_on = '%s' and company = '%s' %s" % (doctype_name, flt(max_amount), total, based_on, company, condition))
-      if not app_dtl:
-        app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = '%s' and (value = '%s' or value > '%s') and docstatus != 2 and based_on = '%s' and ifnull(company,'') = '' %s" % (doctype_name, flt(max_amount), total, based_on, condition)) 
-      for d in app_dtl:
-        if(d[0]): appr_users.append(d[0])
-        if(d[1]): appr_roles.append(d[1])
-      
-      if not has_common(appr_roles, webnotes.user.get_roles()) and not has_common(appr_users, session['user']):
-        msg, add_msg = '',''
-        if max_amount:
-          dcc = TransactionBase().get_company_currency(self.doc.company)
-          if based_on == 'Grand Total': msg = "since Grand Total exceeds %s. %s" % (dcc, flt(max_amount))
-          elif based_on == 'Itemwise Discount': msg = "since Discount exceeds %s for Item Code : %s" % (cstr(max_amount)+'%', item)
-          elif based_on == 'Average Discount' or based_on == 'Customerwise Discount': msg = "since Discount exceeds %s" % (cstr(max_amount)+'%')
-        
-        if appr_users: add_msg = "Users : "+cstr(appr_users)
-        if appr_roles: add_msg = "Roles : "+cstr(appr_roles)
-        if appr_users and appr_roles: add_msg = "Users : "+cstr(appr_users)+" or "+"Roles : "+cstr(appr_roles)
-        msgprint("You do not have an authority to submit this %s %s. Please send for approval to %s" % (doctype_name, msg, add_msg))
-        raise Exception
+	# Get Names of all Approving Users and Roles
+	# -------------------------------------------
+	def get_appr_user_role(self, det, doctype_name, total, based_on, condition, item, company):
+		amt_list, appr_users, appr_roles = [], [], []
+		users, roles = '',''
+		if det:
+			for x in det:
+				amt_list.append(flt(x[0]))
+			max_amount = max(amt_list)
+			
+			app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and company = %s %s" % ('%s', '%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on, company))
+			if not app_dtl:
+				app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and ifnull(company,'') = '' %s" % ('%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on)) 
+			for d in app_dtl:
+				if(d[0]): appr_users.append(d[0])
+				if(d[1]): appr_roles.append(d[1])
+			
+			if not has_common(appr_roles, webnotes.user.get_roles()) and not has_common(appr_users, session['user']):
+				msg, add_msg = '',''
+				if max_amount:
+					dcc = TransactionBase().get_company_currency(self.doc.company)
+					if based_on == 'Grand Total': msg = "since Grand Total exceeds %s. %s" % (dcc, flt(max_amount))
+					elif based_on == 'Itemwise Discount': msg = "since Discount exceeds %s for Item Code : %s" % (cstr(max_amount)+'%', item)
+					elif based_on == 'Average Discount' or based_on == 'Customerwise Discount': msg = "since Discount exceeds %s" % (cstr(max_amount)+'%')
+				
+				if appr_users: add_msg = "Users : "+cstr(appr_users)
+				if appr_roles: add_msg = "Roles : "+cstr(appr_roles)
+				if appr_users and appr_roles: add_msg = "Users : "+cstr(appr_users)+" or "+"Roles : "+cstr(appr_roles)
+				msgprint("You do not have an authority to submit this %s %s. Please send for approval to %s" % (doctype_name, msg, add_msg))
+				raise Exception
 
 
-  # Check if authorization rule is set specific to user
-  # ----------------------------------------------------
-  def validate_auth_rule(self, doctype_name, total, based_on, cond, company, item = ''):
-    chk = 1
-    add_cond1,add_cond2  = '',''
-    if based_on == 'Itemwise Discount':
-      add_cond1 += " and master_name = '"+cstr(item)+"'"
-      itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and company = '%s' and docstatus != 2 %s %s" % (doctype_name, total, based_on, company, cond, add_cond1))
-      if not itemwise_exists:
-        itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and ifnull(company,'') = '' and docstatus != 2 %s %s" % (doctype_name, total, based_on, cond, add_cond1))
-      if itemwise_exists:
-        self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company)
-        chk = 0
-    if chk == 1:
-      if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''"
-      appr = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and company = '%s' and docstatus != 2 %s %s" % (doctype_name, total, based_on, company, cond, add_cond2))
-      if not appr:
-        appr = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and ifnull(company,'') = '' and docstatus != 2 %s %s" % (doctype_name, total, based_on, cond, add_cond2))
-      self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company)
-      
-      
-  # Bifurcate Authorization based on type
-  # --------------------------------------
-  def bifurcate_based_on_type(self, doctype_name, total, av_dis, based_on, doc_obj, val, company):
-    add_cond = ''
-    auth_value = av_dis
-    if val == 1: add_cond += " and system_user = '"+session['user']+"'"
-    elif val == 2: add_cond += " and system_role IN %s" % ("('"+"','".join(webnotes.user.get_roles())+"')")
-    else: add_cond += " and ifnull(system_user,'') = '' and ifnull(system_role,'') = ''"
-    if based_on == 'Grand Total': auth_value = total
-    elif based_on == 'Customerwise Discount':
-      if doc_obj:
-        if doc_obj.doc.doctype == 'Receivable Voucher': customer = doc_obj.doc.customer
-        else: customer = doc_obj.doc.customer_name
-        add_cond = " and master_name = '"+cstr(customer)+"'"
-    if based_on == 'Itemwise Discount':
-      if doc_obj:
-        for t in getlist(doc_obj.doclist, doc_obj.fname):
-          self.validate_auth_rule(doctype_name, t.adj_rate, based_on, add_cond, company,t.item_code )
-    else:
-      self.validate_auth_rule(doctype_name, auth_value, based_on, add_cond, company)
+	# Check if authorization rule is set specific to user
+	# ----------------------------------------------------
+	def validate_auth_rule(self, doctype_name, total, based_on, cond, company, item = ''):
+		chk = 1
+		add_cond1,add_cond2	= '',''
+		if based_on == 'Itemwise Discount':
+			add_cond1 += " and master_name = '"+cstr(item)+"'"
+			itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on, company))
+			if not itemwise_exists:
+				itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s" % ('%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on))
+			if itemwise_exists:
+				self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company)
+				chk = 0
+		if chk == 1:
+			if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''"
+			appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on, company))
+			if not appr:
+				appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s"% ('%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on))
+			self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company)
+			
+			
+	# Bifurcate Authorization based on type
+	# --------------------------------------
+	def bifurcate_based_on_type(self, doctype_name, total, av_dis, based_on, doc_obj, val, company):
+		add_cond = ''
+		auth_value = av_dis
+		if val == 1: add_cond += " and system_user = '"+session['user']+"'"
+		elif val == 2: add_cond += " and system_role IN %s" % ("('"+"','".join(webnotes.user.get_roles())+"')")
+		else: add_cond += " and ifnull(system_user,'') = '' and ifnull(system_role,'') = ''"
+		if based_on == 'Grand Total': auth_value = total
+		elif based_on == 'Customerwise Discount':
+			if doc_obj:
+				if doc_obj.doc.doctype == 'Receivable Voucher': customer = doc_obj.doc.customer
+				else: customer = doc_obj.doc.customer_name
+				add_cond = " and master_name = '"+cstr(customer)+"'"
+		if based_on == 'Itemwise Discount':
+			if doc_obj:
+				for t in getlist(doc_obj.doclist, doc_obj.fname):
+					self.validate_auth_rule(doctype_name, t.adj_rate, based_on, add_cond, company,t.item_code )
+		else:
+			self.validate_auth_rule(doctype_name, auth_value, based_on, add_cond, company)
 
 
-  # Check Approving Authority for transactions other than expense voucher and Appraisal
-  # -------------------------
-  def validate_approving_authority(self, doctype_name,company, total, doc_obj = ''):
-    if doctype_name == 'Payable Voucher': doctype_name = 'Purchase Invoice'
-    elif doctype_name == 'Receivable Voucher': doctype_name = 'Sales Invoice'
-    av_dis = 0
-    if doc_obj:
-      ref_rate, basic_rate = 0, 0
-      for d in getlist(doc_obj.doclist, doc_obj.fname):
-        if d.base_ref_rate and d.basic_rate:
-          ref_rate += flt(d.base_ref_rate)
-          basic_rate += flt(d.basic_rate)
-      if ref_rate: av_dis = 100 - flt(basic_rate * 100 / ref_rate)
+	# Check Approving Authority for transactions other than expense voucher and Appraisal
+	# -------------------------
+	def validate_approving_authority(self, doctype_name,company, total, doc_obj = ''):
+		if doctype_name == 'Payable Voucher': doctype_name = 'Purchase Invoice'
+		elif doctype_name == 'Receivable Voucher': doctype_name = 'Sales Invoice'
+		av_dis = 0
+		if doc_obj:
+			ref_rate, basic_rate = 0, 0
+			for d in getlist(doc_obj.doclist, doc_obj.fname):
+				if d.base_ref_rate and d.basic_rate:
+					ref_rate += flt(d.base_ref_rate)
+					basic_rate += flt(d.basic_rate)
+			if ref_rate: av_dis = 100 - flt(basic_rate * 100 / ref_rate)
 
-    final_based_on = ['Grand Total','Average Discount','Customerwise Discount','Itemwise Discount']
-    # Individual User
-    # ================
-    # Check for authorization set for individual user
-   
-    based_on = [x[0] for x in sql("select distinct based_on from `tabAuthorization Rule` where transaction = '%s' and system_user = '%s' and (company = '%s' or ifnull(company,'')='') and docstatus != 2" %(doctype_name, session['user'], company))]
-        
-    for d in based_on:
-      self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 1, company)
-    
-    # Remove user specific rules from global authorization rules
-    for r in based_on:
-      if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r)
-    
-    # Specific Role
-    # ===============
-    # Check for authorization set on particular roles
-    #based_on = [x[0] for x in sql("select based_on from `tabAuthorization Rule` where transaction = '%s' and system_role IN %s and based_on IN %s and docstatus != 2" %(doctype_name, "('"+"','".join(session['data']['profile']['roles'])+"')", "('"+"','".join(final_based_on)+"')"))]
-    based_on = [x[0] for x in sql("select based_on from `tabAuthorization Rule` where transaction = '%s' and system_role IN %s and based_on IN %s and (company = '%s' or ifnull(company,'')='') and docstatus != 2" %(doctype_name, "('"+"','".join(webnotes.user.get_roles())+"')", "('"+"','".join(final_based_on)+"')",company))]
-    for d in based_on:
-      self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company)
-    
-    # Remove role specific rules from global authorization rules
-    for r in based_on:
-      if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r)
-      
-    # Global Rule
-    # =============
-    # Check for global authorization
-    for g in final_based_on:
-      self.bifurcate_based_on_type(doctype_name, total, av_dis, g, doc_obj, 0, company)
-  
-  #========================================================================================================================
-  # payroll related check
-  def get_value_based_rule(self,doctype_name,employee,total_claimed_amount,company):
-    val_lst =[]
-    val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and company = %s and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount,company))
-    if not val:
-      val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and ifnull(company,'') = '' and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount))
+		final_based_on = ['Grand Total','Average Discount','Customerwise Discount','Itemwise Discount']
+		# Individual User
+		# ================
+		# Check for authorization set for individual user
+	 
+		based_on = [x[0] for x in sql("select distinct based_on from `tabAuthorization Rule` where transaction = %s and system_user = %s and (company = %s or ifnull(company,'')='') and docstatus != 2", (doctype_name, session['user'], company))]
+				
+		for d in based_on:
+			self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 1, company)
+		
+		# Remove user specific rules from global authorization rules
+		for r in based_on:
+			if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r)
+		
+		# Specific Role
+		# ===============
+		# Check for authorization set on particular roles
+		based_on = [x[0] for x in sql("select based_on from `tabAuthorization Rule` where transaction = %s and system_role IN (%s) and based_on IN (%s) and (company = %s or ifnull(company,'')='') and docstatus != 2", (doctype_name, "'"+"','".join(webnotes.user.get_roles())+"'", "'"+"','".join(final_based_on)+"'",company))]
+		for d in based_on:
+			self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company)
+		
+		# Remove role specific rules from global authorization rules
+		for r in based_on:
+			if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r)
+			
+		# Global Rule
+		# =============
+		# Check for global authorization
+		for g in final_based_on:
+			self.bifurcate_based_on_type(doctype_name, total, av_dis, g, doc_obj, 0, company)
+	
+	#========================================================================================================================
+	# payroll related check
+	def get_value_based_rule(self,doctype_name,employee,total_claimed_amount,company):
+		val_lst =[]
+		val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and company = %s and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount,company))
+		if not val:
+			val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and ifnull(company,'') = '' and docstatus!=2",(doctype_name, employee, employee, total_claimed_amount))
 
-    
-    if val:
-      val_lst = [y[0] for y in val]
-    else:
-      val_lst.append(0)
-    
-    max_val = max(val_lst)
-    rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and company = %s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,company,employee,employee,flt(max_val)), as_dict=1)
-    if not rule:
-      rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and ifnull(company,'') = '' and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,employee,employee,flt(max_val)), as_dict=1)
+		if val:
+			val_lst = [y[0] for y in val]
+		else:
+			val_lst.append(0)
+	
+		max_val = max(val_lst)
+		rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and company = %s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,company,employee,employee,flt(max_val)), as_dict=1)
+		if not rule:
+			rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and ifnull(company,'') = '' and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,employee,employee,flt(max_val)), as_dict=1)
 
-    return rule
-  
-  #---------------------------------------------------------------------------------------------------------------------
-  # related to payroll module only
-  def get_approver_name(self, doctype_name, total, doc_obj=''):
-    app_user=[]
-    app_specific_user =[]
-    rule ={}
-    
-    if doc_obj:
-      if doctype_name == 'Expense Voucher':
-        rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company)
-      elif doctype_name == 'Appraisal':
-        rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1)        
-        if not rule:
-          rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(company,'') = '' and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee),as_dict=1)        
-      
-      if rule:
-        for m in rule:
-          if m['to_emp'] or m['to_designation']:
-            if m['approving_user']:
-              app_specific_user.append(m['approving_user'])
-            elif m['approving_role']:
-              user_lst = [z[0] for z in sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])]
-              for x in user_lst:
-                if not x in app_user:
-                  app_user.append(x)
-      
-      if len(app_specific_user) >0:
-        return app_specific_user
-      else:
-        return app_user
+		return rule
+	
+	#---------------------------------------------------------------------------------------------------------------------
+	# related to payroll module only
+	def get_approver_name(self, doctype_name, total, doc_obj=''):
+		app_user=[]
+		app_specific_user =[]
+		rule ={}
+		
+		if doc_obj:
+			if doctype_name == 'Expense Voucher':
+				rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company)
+			elif doctype_name == 'Appraisal':
+				rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1)				
+				if not rule:
+					rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(company,'') = '' and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee),as_dict=1)				
+			
+			if rule:
+				for m in rule:
+					if m['to_emp'] or m['to_designation']:
+						if m['approving_user']:
+							app_specific_user.append(m['approving_user'])
+						elif m['approving_role']:
+							user_lst = [z[0] for z in sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])]
+							for x in user_lst:
+								if not x in app_user:
+									app_user.append(x)
+			
+			if len(app_specific_user) >0:
+				return app_specific_user
+			else:
+				return app_user
diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py
index 783a158..a2e333d 100644
--- a/erpnext/setup/doctype/company/company.py
+++ b/erpnext/setup/doctype/company/company.py
@@ -248,4 +248,7 @@
 	# on rename
 	# ---------
 	def on_rename(self,newdn,olddn):		
-		sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn))						
+		sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn))	
+		sql("update `tabSingles` set value = %s where doctype='Manage Account' and field = 'default_company' and value = %s", (newdn, olddn))	
+		if get_defaults('company') == olddn:
+			set_default('company', newdn)
diff --git a/erpnext/setup/page/setup/setup.js b/erpnext/setup/page/setup/setup.js
index b29e7ad..7c1245a 100644
--- a/erpnext/setup/page/setup/setup.js
+++ b/erpnext/setup/page/setup/setup.js
@@ -172,7 +172,8 @@
     ['Property Setter',1,'Property Setter','', 'Customize properties of a Form (DocType) or Field'],
     ['Letter Head',1,'Letter Head','','Manage different letter heads for Prints'],
     ['SMS Settings',3,'SMS Settings','','Integrate your personalized SMS gateway which support http web service'],
-    ['SMS Center',3,'SMS Center','','Send mass sms to your leads, contacts and partners']
+    ['SMS Center',3,'SMS Center','','Send mass sms to your leads, contacts and partners'],
+    ['Features Setup',3,'Features Setup','','Displays fields based on features selected']
   ]};
 
   
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index e5acd16..6d48914 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -443,8 +443,8 @@
   # ==========================================
   def update_pack_nett_weight(self):
       for d in getlist(self.doclist, 'delivery_note_details'):
-        if d.item_name:
-          item_wt = sql("select nett_weight from `tabItem` where item_name = '%s'" % (d.item_name))
+        if d.item_code:
+          item_wt = sql("select nett_weight from `tabItem` where name = %s", (d.item_code))
           d.pack_nett_wt = item_wt and flt(item_wt[0][0])*flt(d.qty) or 0
 
   # ==========================================
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.txt b/erpnext/stock/doctype/delivery_note/delivery_note.txt
index 1ab19e0..a3897ec 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.txt
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.txt
@@ -5,7 +5,7 @@
 	{
 		'creation': '2011-04-18 15:58:20',
 		'docstatus': 0,
-		'modified': '2011-08-23 15:26:57',
+		'modified': '2011-09-07 17:36:34',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
@@ -21,8 +21,9 @@
 
 	# These values are common for all DocType
 	{
-		'_last_update': '1313665263',
+		'_last_update': '1314093417',
 		'colour': 'White:FFF',
+		'default_print_format': 'Standard',
 		'doctype': 'DocType',
 		'document_type': 'Transaction',
 		'in_create': 0,
@@ -36,7 +37,7 @@
 		'show_in_menu': 0,
 		'subject': 'To %(customer_name)s on %(transaction_date)s | %(per_billed)s% billed',
 		'tag_fields': 'billing_status',
-		'version': 449
+		'version': 450
 	},
 
 	# These values are common for all DocFormat
@@ -71,7 +72,6 @@
 		'cancel': 1,
 		'create': 1,
 		'doctype': 'DocPerm',
-		'idx': 1,
 		'permlevel': 0,
 		'role': 'Material User',
 		'submit': 1,
@@ -84,7 +84,6 @@
 		'cancel': 1,
 		'create': 1,
 		'doctype': 'DocPerm',
-		'idx': 2,
 		'permlevel': 0,
 		'role': 'Sales User',
 		'submit': 1,
@@ -97,7 +96,6 @@
 		'cancel': 1,
 		'create': 1,
 		'doctype': 'DocPerm',
-		'idx': 3,
 		'permlevel': 0,
 		'role': 'Material Master Manager',
 		'submit': 1,
@@ -110,7 +108,6 @@
 		'cancel': 1,
 		'create': 1,
 		'doctype': 'DocPerm',
-		'idx': 4,
 		'permlevel': 0,
 		'role': 'Material Manager',
 		'submit': 1,
@@ -120,7 +117,6 @@
 	# DocPerm
 	{
 		'doctype': 'DocPerm',
-		'idx': 5,
 		'permlevel': 1,
 		'role': 'All'
 	},
@@ -128,21 +124,18 @@
 	# DocPerm
 	{
 		'doctype': 'DocPerm',
-		'idx': 6,
 		'permlevel': 2,
 		'role': 'All'
 	},
 
 	# DocFormat
 	{
-		'doctype': 'DocFormat',
-		'idx': 1
+		'doctype': 'DocFormat'
 	},
 
 	# DocFormat
 	{
-		'doctype': 'DocFormat',
-		'idx': 2
+		'doctype': 'DocFormat'
 	},
 
 	# DocField
@@ -150,7 +143,6 @@
 		'colour': 'White:FFF',
 		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
-		'idx': 1,
 		'label': 'Basic Info',
 		'oldfieldtype': 'Section Break',
 		'permlevel': 0
@@ -160,7 +152,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Column Break',
-		'idx': 2,
 		'oldfieldtype': 'Column Break',
 		'permlevel': 0,
 		'trigger': 'Client',
@@ -174,7 +165,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'naming_series',
 		'fieldtype': 'Select',
-		'idx': 3,
 		'label': 'Series',
 		'no_copy': 1,
 		'oldfieldname': 'naming_series',
@@ -190,7 +180,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'customer',
 		'fieldtype': 'Link',
-		'idx': 4,
 		'in_filter': 1,
 		'label': 'Customer',
 		'oldfieldname': 'customer',
@@ -208,7 +197,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'customer_address',
 		'fieldtype': 'Link',
-		'idx': 5,
 		'in_filter': 1,
 		'label': 'Shipping Address',
 		'options': 'Address',
@@ -221,7 +209,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'contact_person',
 		'fieldtype': 'Link',
-		'idx': 6,
 		'in_filter': 1,
 		'label': 'Contact Person',
 		'options': 'Contact',
@@ -234,7 +221,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'customer_name',
 		'fieldtype': 'Data',
-		'idx': 7,
 		'label': 'Customer Name',
 		'permlevel': 1
 	},
@@ -244,7 +230,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'address_display',
 		'fieldtype': 'Small Text',
-		'idx': 8,
 		'label': 'Shipping Address',
 		'permlevel': 1
 	},
@@ -254,7 +239,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'contact_display',
 		'fieldtype': 'Small Text',
-		'idx': 9,
 		'label': 'Contact',
 		'permlevel': 1
 	},
@@ -264,7 +248,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'contact_mobile',
 		'fieldtype': 'Text',
-		'idx': 10,
 		'label': 'Mobile No',
 		'permlevel': 1
 	},
@@ -274,7 +257,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'contact_email',
 		'fieldtype': 'Text',
-		'idx': 11,
 		'label': 'Contact Email',
 		'permlevel': 1,
 		'print_hide': 1
@@ -284,7 +266,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Column Break',
-		'idx': 12,
 		'oldfieldtype': 'Column Break',
 		'permlevel': 0
 	},
@@ -297,7 +278,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'transaction_date',
 		'fieldtype': 'Date',
-		'idx': 13,
 		'in_filter': 1,
 		'label': 'Voucher Date',
 		'no_copy': 1,
@@ -316,7 +296,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'status',
 		'fieldtype': 'Select',
-		'idx': 14,
 		'in_filter': 1,
 		'label': 'Status',
 		'no_copy': 1,
@@ -338,7 +317,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'per_billed',
 		'fieldtype': 'Currency',
-		'idx': 15,
 		'in_filter': 1,
 		'label': '% Amount Billed',
 		'no_copy': 1,
@@ -357,7 +335,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'per_installed',
 		'fieldtype': 'Currency',
-		'idx': 16,
 		'in_filter': 1,
 		'label': '% Installed',
 		'no_copy': 1,
@@ -370,11 +347,40 @@
 
 	# DocField
 	{
+		'doctype': 'DocField',
+		'fieldname': 'po_no',
+		'fieldtype': 'Data',
+		'hidden': 1,
+		'label': 'P.O. No',
+		'no_copy': 0,
+		'oldfieldname': 'po_no',
+		'oldfieldtype': 'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': '100px'
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'po_date',
+		'fieldtype': 'Data',
+		'hidden': 1,
+		'label': 'P.O. Date',
+		'no_copy': 0,
+		'oldfieldname': 'po_date',
+		'oldfieldtype': 'Data',
+		'permlevel': 1,
+		'print_hide': 1,
+		'width': '100px'
+	},
+
+	# DocField
+	{
 		'allow_on_submit': 0,
 		'doctype': 'DocField',
 		'fieldname': 'amended_from',
 		'fieldtype': 'Data',
-		'idx': 17,
 		'label': 'Amended From',
 		'no_copy': 1,
 		'oldfieldname': 'amended_from',
@@ -390,7 +396,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'amendment_date',
 		'fieldtype': 'Date',
-		'idx': 18,
 		'label': 'Amendment Date',
 		'no_copy': 1,
 		'oldfieldname': 'amendment_date',
@@ -406,7 +411,6 @@
 		'fieldname': 'territory',
 		'fieldtype': 'Link',
 		'hidden': 0,
-		'idx': 19,
 		'in_filter': 1,
 		'label': 'Territory',
 		'options': 'Territory',
@@ -421,7 +425,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'customer_group',
 		'fieldtype': 'Link',
-		'idx': 20,
 		'in_filter': 1,
 		'label': 'Customer Group',
 		'options': 'Customer Group',
@@ -434,7 +437,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
-		'idx': 21,
 		'label': 'Transporter Info',
 		'permlevel': 0
 	},
@@ -445,7 +447,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'transporter_name',
 		'fieldtype': 'Data',
-		'idx': 22,
 		'label': 'Transporter Name',
 		'no_copy': 0,
 		'oldfieldname': 'transporter_name',
@@ -464,7 +465,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'lr_no',
 		'fieldtype': 'Data',
-		'idx': 23,
 		'label': 'LR No',
 		'no_copy': 0,
 		'oldfieldname': 'lr_no',
@@ -483,7 +483,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'lr_date',
 		'fieldtype': 'Date',
-		'idx': 24,
 		'label': 'LR Date',
 		'no_copy': 0,
 		'oldfieldname': 'lr_date',
@@ -497,7 +496,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Column Break',
-		'idx': 25,
 		'permlevel': 0,
 		'width': '50%'
 	},
@@ -507,7 +505,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'challan_no',
 		'fieldtype': 'Data',
-		'idx': 26,
 		'label': 'Challan No',
 		'oldfieldname': 'challan_no',
 		'oldfieldtype': 'Data',
@@ -519,7 +516,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'challan_date',
 		'fieldtype': 'Date',
-		'idx': 27,
 		'label': 'Challan Date',
 		'oldfieldname': 'challan_date',
 		'oldfieldtype': 'Date',
@@ -531,7 +527,6 @@
 		'colour': 'White:FFF',
 		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
-		'idx': 28,
 		'label': 'Items',
 		'oldfieldtype': 'Section Break',
 		'permlevel': 0
@@ -544,7 +539,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'sales_order_no',
 		'fieldtype': 'Link',
-		'idx': 29,
 		'label': 'Sales Order No',
 		'no_copy': 0,
 		'oldfieldname': 'sales_order_no',
@@ -559,7 +553,6 @@
 		'doctype': 'DocField',
 		'fieldtype': 'Button',
 		'hidden': 0,
-		'idx': 30,
 		'label': 'Get Items',
 		'oldfieldtype': 'Button',
 		'options': 'pull_sales_order_details',
@@ -574,7 +567,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'price_list_name',
 		'fieldtype': 'Select',
-		'idx': 31,
 		'label': 'Price List',
 		'oldfieldname': 'price_list_name',
 		'oldfieldtype': 'Select',
@@ -589,7 +581,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Column Break',
-		'idx': 32,
 		'permlevel': 0,
 		'width': '50%'
 	},
@@ -601,7 +592,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'currency',
 		'fieldtype': 'Select',
-		'idx': 33,
 		'label': 'Currency',
 		'oldfieldname': 'currency',
 		'oldfieldtype': 'Select',
@@ -619,7 +609,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'conversion_rate',
 		'fieldtype': 'Currency',
-		'idx': 34,
 		'label': 'Conversion Rate',
 		'no_copy': 0,
 		'oldfieldname': 'conversion_rate',
@@ -633,7 +622,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
-		'idx': 35,
 		'permlevel': 0
 	},
 
@@ -642,7 +630,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'delivery_note_details',
 		'fieldtype': 'Table',
-		'idx': 36,
 		'label': 'Delivery Note Details',
 		'no_copy': 0,
 		'oldfieldname': 'delivery_note_details',
@@ -657,7 +644,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'net_total',
 		'fieldtype': 'Currency',
-		'idx': 37,
 		'label': 'Net Total*',
 		'no_copy': 0,
 		'oldfieldname': 'net_total',
@@ -672,7 +658,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Button',
-		'idx': 38,
 		'label': 'Re-Calculate Values',
 		'oldfieldtype': 'Button',
 		'permlevel': 0,
@@ -683,7 +668,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'HTML',
-		'idx': 39,
 		'label': 'Note',
 		'oldfieldtype': 'HTML',
 		'options': '<b>NOTE :</b>* In Base Currency',
@@ -696,7 +680,6 @@
 		'colour': 'White:FFF',
 		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
-		'idx': 40,
 		'label': 'Taxes',
 		'oldfieldtype': 'Section Break',
 		'permlevel': 0
@@ -709,7 +692,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'charge',
 		'fieldtype': 'Link',
-		'idx': 41,
 		'label': 'Charge',
 		'oldfieldname': 'charge',
 		'oldfieldtype': 'Link',
@@ -722,7 +704,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Button',
-		'idx': 42,
 		'label': 'Get Charges',
 		'oldfieldtype': 'Button',
 		'permlevel': 0,
@@ -735,7 +716,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'other_charges',
 		'fieldtype': 'Table',
-		'idx': 43,
 		'label': 'Other Charges',
 		'no_copy': 0,
 		'oldfieldname': 'other_charges',
@@ -749,7 +729,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'other_charges_total',
 		'fieldtype': 'Currency',
-		'idx': 44,
 		'label': 'Charges Total',
 		'oldfieldname': 'other_charges_total',
 		'oldfieldtype': 'Currency',
@@ -762,7 +741,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Button',
-		'idx': 45,
 		'label': 'Calculate Charges',
 		'oldfieldtype': 'Button',
 		'permlevel': 0,
@@ -774,7 +752,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'HTML',
-		'idx': 46,
 		'label': 'Other Charges Calculation',
 		'oldfieldtype': 'HTML',
 		'permlevel': 0
@@ -785,7 +762,6 @@
 		'colour': 'White:FFF',
 		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
-		'idx': 47,
 		'label': 'Totals',
 		'oldfieldtype': 'Section Break',
 		'permlevel': 0,
@@ -797,7 +773,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'grand_total',
 		'fieldtype': 'Currency',
-		'idx': 48,
 		'label': 'Grand Total',
 		'no_copy': 0,
 		'oldfieldname': 'grand_total',
@@ -813,7 +788,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'rounded_total',
 		'fieldtype': 'Currency',
-		'idx': 49,
 		'label': 'Rounded Total',
 		'no_copy': 0,
 		'oldfieldname': 'rounded_total',
@@ -830,7 +804,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'in_words',
 		'fieldtype': 'Data',
-		'idx': 50,
 		'label': 'In Words',
 		'no_copy': 0,
 		'oldfieldname': 'in_words',
@@ -844,7 +817,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Column Break',
-		'idx': 51,
 		'oldfieldtype': 'Column Break',
 		'permlevel': 0
 	},
@@ -854,7 +826,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'grand_total_export',
 		'fieldtype': 'Currency',
-		'idx': 52,
 		'label': 'Grand Total (Export)',
 		'no_copy': 0,
 		'oldfieldname': 'grand_total_export',
@@ -870,7 +841,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'rounded_total_export',
 		'fieldtype': 'Currency',
-		'idx': 53,
 		'label': 'Rounded Total (Export)',
 		'no_copy': 0,
 		'oldfieldname': 'rounded_total_export',
@@ -887,7 +857,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'in_words_export',
 		'fieldtype': 'Data',
-		'idx': 54,
 		'label': 'In Words (Export)',
 		'no_copy': 0,
 		'oldfieldname': 'in_words_export',
@@ -901,7 +870,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
-		'idx': 55,
 		'label': 'Terms',
 		'oldfieldtype': 'Section Break',
 		'permlevel': 0
@@ -912,7 +880,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'tc_name',
 		'fieldtype': 'Link',
-		'idx': 56,
 		'label': 'Select Terms',
 		'oldfieldname': 'tc_name',
 		'oldfieldtype': 'Link',
@@ -926,7 +893,6 @@
 		'colour': 'White:FFF',
 		'doctype': 'DocField',
 		'fieldtype': 'Button',
-		'idx': 57,
 		'label': 'Get Terms',
 		'oldfieldtype': 'Button',
 		'options': 'get_tc_details',
@@ -939,7 +905,6 @@
 		'colour': 'White:FFF',
 		'doctype': 'DocField',
 		'fieldtype': 'HTML',
-		'idx': 58,
 		'label': 'Terms HTML',
 		'oldfieldtype': 'HTML',
 		'options': 'You can add Terms and Notes that will be printed in the Transaction',
@@ -953,7 +918,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'terms',
 		'fieldtype': 'Text Editor',
-		'idx': 59,
 		'label': 'Term Details',
 		'oldfieldname': 'terms',
 		'oldfieldtype': 'Text Editor',
@@ -966,7 +930,6 @@
 		'description': 'Filling in Additional Information about the Delivery Note will help you analyze your data better.',
 		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
-		'idx': 60,
 		'label': 'More Info',
 		'oldfieldtype': 'Section Break',
 		'permlevel': 0
@@ -979,7 +942,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'company',
 		'fieldtype': 'Link',
-		'idx': 61,
 		'in_filter': 1,
 		'label': 'Company',
 		'oldfieldname': 'company',
@@ -997,7 +959,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'fiscal_year',
 		'fieldtype': 'Select',
-		'idx': 62,
 		'in_filter': 1,
 		'label': 'Fiscal Year',
 		'oldfieldname': 'fiscal_year',
@@ -1018,7 +979,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'posting_date',
 		'fieldtype': 'Date',
-		'idx': 63,
 		'in_filter': 1,
 		'label': 'Posting Date',
 		'no_copy': 1,
@@ -1038,7 +998,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'posting_time',
 		'fieldtype': 'Time',
-		'idx': 64,
 		'in_filter': 0,
 		'label': 'Posting Time',
 		'oldfieldname': 'posting_time',
@@ -1057,7 +1016,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'project_name',
 		'fieldtype': 'Link',
-		'idx': 65,
 		'in_filter': 1,
 		'label': 'Project Name',
 		'oldfieldname': 'project_name',
@@ -1076,7 +1034,6 @@
 		'fieldname': 'to_warehouse',
 		'fieldtype': 'Link',
 		'hidden': 0,
-		'idx': 66,
 		'label': 'To Warehouse',
 		'no_copy': 1,
 		'oldfieldname': 'to_warehouse',
@@ -1090,7 +1047,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Column Break',
-		'idx': 67,
 		'oldfieldtype': 'Column Break',
 		'permlevel': 0,
 		'width': '50%'
@@ -1102,7 +1058,6 @@
 		'fieldname': 'billing_status',
 		'fieldtype': 'Select',
 		'hidden': 1,
-		'idx': 68,
 		'label': 'Billing Status',
 		'no_copy': 1,
 		'options': '\nNot Billed\nPartly Billed\nFully Billed',
@@ -1116,7 +1071,6 @@
 		'fieldname': 'installation_status',
 		'fieldtype': 'Select',
 		'hidden': 1,
-		'idx': 69,
 		'label': 'Installation Status',
 		'permlevel': 0,
 		'print_hide': 1
@@ -1124,43 +1078,10 @@
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'po_no',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'idx': 70,
-		'label': 'P.O. No',
-		'no_copy': 0,
-		'oldfieldname': 'po_no',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'po_date',
-		'fieldtype': 'Data',
-		'hidden': 1,
-		'idx': 71,
-		'label': 'P.O. Date',
-		'no_copy': 0,
-		'oldfieldname': 'po_date',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1,
-		'width': '100px'
-	},
-
-	# DocField
-	{
 		'allow_on_submit': 1,
 		'doctype': 'DocField',
 		'fieldname': 'letter_head',
 		'fieldtype': 'Select',
-		'idx': 72,
 		'label': 'Letter Head',
 		'oldfieldname': 'letter_head',
 		'oldfieldtype': 'Link',
@@ -1174,7 +1095,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'source',
 		'fieldtype': 'Select',
-		'idx': 73,
 		'label': 'Source',
 		'oldfieldname': 'source',
 		'oldfieldtype': 'Select',
@@ -1190,7 +1110,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'campaign',
 		'fieldtype': 'Link',
-		'idx': 74,
 		'label': 'Campaign',
 		'oldfieldname': 'campaign',
 		'oldfieldtype': 'Link',
@@ -1206,7 +1125,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'select_print_heading',
 		'fieldtype': 'Link',
-		'idx': 75,
 		'label': 'Select Print Heading',
 		'no_copy': 1,
 		'oldfieldname': 'select_print_heading',
@@ -1224,7 +1142,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'print_without_amount',
 		'fieldtype': 'Check',
-		'idx': 76,
 		'label': 'Print Without Amount',
 		'oldfieldname': 'print_without_amount',
 		'oldfieldtype': 'Check',
@@ -1238,7 +1155,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'instructions',
 		'fieldtype': 'Text',
-		'idx': 77,
 		'label': 'Instructions',
 		'oldfieldname': 'instructions',
 		'oldfieldtype': 'Text',
@@ -1253,7 +1169,6 @@
 		'fieldname': 'cancel_reason',
 		'fieldtype': 'Data',
 		'hidden': 0,
-		'idx': 78,
 		'label': 'Cancel Reason',
 		'no_copy': 1,
 		'oldfieldname': 'cancel_reason',
@@ -1269,7 +1184,6 @@
 		'fieldname': 'excise_page',
 		'fieldtype': 'Data',
 		'hidden': 1,
-		'idx': 79,
 		'label': 'Excise Page Number',
 		'oldfieldname': 'excise_page',
 		'oldfieldtype': 'Data',
@@ -1282,7 +1196,6 @@
 		'colour': 'White:FFF',
 		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
-		'idx': 80,
 		'label': 'Sales Team',
 		'oldfieldtype': 'Section Break',
 		'permlevel': 0,
@@ -1293,7 +1206,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Column Break',
-		'idx': 81,
 		'permlevel': 0,
 		'width': '50%'
 	},
@@ -1303,7 +1215,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'sales_partner',
 		'fieldtype': 'Link',
-		'idx': 82,
 		'label': 'Sales Partner',
 		'no_copy': 0,
 		'oldfieldname': 'sales_partner',
@@ -1320,7 +1231,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'commission_rate',
 		'fieldtype': 'Currency',
-		'idx': 83,
 		'label': 'Commission Rate (%)',
 		'no_copy': 0,
 		'oldfieldname': 'commission_rate',
@@ -1337,7 +1247,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'total_commission',
 		'fieldtype': 'Currency',
-		'idx': 84,
 		'label': 'Total Commission',
 		'no_copy': 0,
 		'oldfieldname': 'total_commission',
@@ -1351,7 +1260,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Column Break',
-		'idx': 85,
 		'permlevel': 0,
 		'width': '50%'
 	},
@@ -1361,7 +1269,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'sales_team',
 		'fieldtype': 'Table',
-		'idx': 86,
 		'label': 'Sales Team1',
 		'oldfieldname': 'sales_team',
 		'oldfieldtype': 'Table',
@@ -1375,7 +1282,6 @@
 		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
 		'hidden': 1,
-		'idx': 87,
 		'label': 'Supplier Details',
 		'oldfieldtype': 'Section Break',
 		'options': 'Simple',
@@ -1388,7 +1294,6 @@
 		'fieldname': 'supplier',
 		'fieldtype': 'Link',
 		'hidden': 1,
-		'idx': 88,
 		'label': 'Supplier',
 		'oldfieldname': 'supplier',
 		'oldfieldtype': 'Link',
@@ -1403,7 +1308,6 @@
 		'fieldname': 'supplier_address',
 		'fieldtype': 'Text',
 		'hidden': 1,
-		'idx': 89,
 		'label': 'Supplier Address',
 		'oldfieldname': 'supplier_address',
 		'oldfieldtype': 'Text',
@@ -1418,7 +1322,6 @@
 		'fieldname': 'purchase_receipt_no',
 		'fieldtype': 'Link',
 		'hidden': 1,
-		'idx': 90,
 		'label': 'Purchase Receipt No',
 		'no_copy': 1,
 		'oldfieldname': 'purchase_receipt_no',
@@ -1435,7 +1338,6 @@
 		'fieldname': 'purchase_order_no',
 		'fieldtype': 'Link',
 		'hidden': 1,
-		'idx': 91,
 		'label': 'Purchase Order',
 		'no_copy': 1,
 		'oldfieldname': 'purchase_order_no',
@@ -1449,7 +1351,6 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
-		'idx': 92,
 		'label': 'Packing List',
 		'oldfieldtype': 'Section Break',
 		'permlevel': 0
@@ -1460,7 +1361,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'packing_details',
 		'fieldtype': 'Table',
-		'idx': 93,
 		'label': 'Packing Details',
 		'oldfieldname': 'packing_details',
 		'oldfieldtype': 'Table',
@@ -1474,7 +1374,6 @@
 		'allow_on_submit': 1,
 		'doctype': 'DocField',
 		'fieldtype': 'Button',
-		'idx': 94,
 		'label': 'Repair Delivery Note',
 		'oldfieldtype': 'Button',
 		'options': 'repair_delivery_note',
@@ -1488,7 +1387,6 @@
 		'fieldname': 'print_packing_slip',
 		'fieldtype': 'Text',
 		'hidden': 1,
-		'idx': 95,
 		'in_filter': 0,
 		'label': 'Print Packing Slip',
 		'permlevel': 0,
diff --git a/erpnext/stock/doctype/delivery_note_detail/delivery_note_detail.txt b/erpnext/stock/doctype/delivery_note_detail/delivery_note_detail.txt
index a8fea20..be7b98f 100644
--- a/erpnext/stock/doctype/delivery_note_detail/delivery_note_detail.txt
+++ b/erpnext/stock/doctype/delivery_note_detail/delivery_note_detail.txt
@@ -5,7 +5,7 @@
 	{
 		'creation': '2010-08-08 17:08:58',
 		'docstatus': 0,
-		'modified': '2011-08-22 12:11:51',
+		'modified': '2011-09-07 17:34:13',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
@@ -21,7 +21,7 @@
 		'section_style': 'Tray',
 		'server_code_error': ' ',
 		'show_in_menu': 0,
-		'version': 38
+		'version': 40
 	},
 
 	# These values are common for all DocField
@@ -44,7 +44,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'item_code',
 		'fieldtype': 'Link',
-		'idx': 1,
 		'in_filter': 1,
 		'label': 'Item Code',
 		'oldfieldname': 'item_code',
@@ -63,7 +62,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'item_name',
 		'fieldtype': 'Data',
-		'idx': 2,
 		'label': 'Item Name',
 		'oldfieldname': 'item_name',
 		'oldfieldtype': 'Data',
@@ -78,7 +76,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'description',
 		'fieldtype': 'Small Text',
-		'idx': 3,
 		'label': 'Description',
 		'oldfieldname': 'description',
 		'oldfieldtype': 'Small Text',
@@ -89,10 +86,24 @@
 
 	# DocField
 	{
+		'default': '0.00',
+		'doctype': 'DocField',
+		'fieldname': 'qty',
+		'fieldtype': 'Currency',
+		'label': 'Quantity',
+		'oldfieldname': 'qty',
+		'oldfieldtype': 'Currency',
+		'permlevel': 0,
+		'reqd': 1,
+		'trigger': 'Client',
+		'width': '100px'
+	},
+
+	# DocField
+	{
 		'doctype': 'DocField',
 		'fieldname': 'stock_uom',
 		'fieldtype': 'Data',
-		'idx': 4,
 		'label': 'UOM',
 		'oldfieldname': 'stock_uom',
 		'oldfieldtype': 'Data',
@@ -106,25 +117,8 @@
 	{
 		'default': '0.00',
 		'doctype': 'DocField',
-		'fieldname': 'qty',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Quantity',
-		'oldfieldname': 'qty',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'reqd': 1,
-		'trigger': 'Client',
-		'width': '100px'
-	},
-
-	# DocField
-	{
-		'default': '0.00',
-		'doctype': 'DocField',
 		'fieldname': 'ref_rate',
 		'fieldtype': 'Currency',
-		'idx': 6,
 		'label': 'Ref Rate',
 		'no_copy': 0,
 		'oldfieldname': 'ref_rate',
@@ -142,7 +136,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'adj_rate',
 		'fieldtype': 'Float',
-		'idx': 7,
 		'label': 'Discount (%)',
 		'oldfieldname': 'adj_rate',
 		'oldfieldtype': 'Float',
@@ -157,7 +150,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'export_rate',
 		'fieldtype': 'Currency',
-		'idx': 8,
 		'label': 'Rate',
 		'oldfieldname': 'export_rate',
 		'oldfieldtype': 'Currency',
@@ -173,7 +165,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'export_amount',
 		'fieldtype': 'Currency',
-		'idx': 9,
 		'label': 'Amount',
 		'oldfieldname': 'export_amount',
 		'oldfieldtype': 'Currency',
@@ -188,7 +179,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'base_ref_rate',
 		'fieldtype': 'Currency',
-		'idx': 10,
 		'label': 'Ref Rate*',
 		'oldfieldname': 'base_ref_rate',
 		'oldfieldtype': 'Currency',
@@ -203,7 +193,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'basic_rate',
 		'fieldtype': 'Currency',
-		'idx': 11,
 		'label': 'Rate*',
 		'oldfieldname': 'basic_rate',
 		'oldfieldtype': 'Currency',
@@ -219,7 +208,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'amount',
 		'fieldtype': 'Currency',
-		'idx': 12,
 		'label': 'Amount*',
 		'oldfieldname': 'amount',
 		'oldfieldtype': 'Currency',
@@ -234,7 +222,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'warehouse',
 		'fieldtype': 'Link',
-		'idx': 13,
 		'label': 'Warehouse',
 		'oldfieldname': 'warehouse',
 		'oldfieldtype': 'Link',
@@ -250,7 +237,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'serial_no',
 		'fieldtype': 'Text',
-		'idx': 14,
 		'in_filter': 1,
 		'label': 'Serial No',
 		'no_copy': 1,
@@ -266,7 +252,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'batch_no',
 		'fieldtype': 'Link',
-		'idx': 15,
 		'label': 'Batch No',
 		'oldfieldname': 'batch_no',
 		'oldfieldtype': 'Link',
@@ -280,7 +265,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'item_group',
 		'fieldtype': 'Link',
-		'idx': 16,
 		'label': 'Item Group',
 		'oldfieldname': 'item_group',
 		'oldfieldtype': 'Link',
@@ -294,7 +278,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'brand',
 		'fieldtype': 'Link',
-		'idx': 17,
 		'label': 'Brand Name',
 		'oldfieldname': 'brand',
 		'oldfieldtype': 'Link',
@@ -309,9 +292,9 @@
 		'doctype': 'DocField',
 		'fieldname': 'pack_no',
 		'fieldtype': 'Data',
-		'idx': 18,
 		'label': 'Pack No',
-		'permlevel': 0
+		'permlevel': 0,
+		'print_hide': 1
 	},
 
 	# DocField
@@ -319,9 +302,9 @@
 		'doctype': 'DocField',
 		'fieldname': 'pack_gross_wt',
 		'fieldtype': 'Float',
-		'idx': 19,
 		'label': 'Pack Gross Wt',
-		'permlevel': 0
+		'permlevel': 0,
+		'print_hide': 1
 	},
 
 	# DocField
@@ -329,10 +312,10 @@
 		'doctype': 'DocField',
 		'fieldname': 'weight_uom',
 		'fieldtype': 'Link',
-		'idx': 20,
 		'label': 'Weight UOM',
 		'options': 'UOM',
-		'permlevel': 0
+		'permlevel': 0,
+		'print_hide': 1
 	},
 
 	# DocField
@@ -340,9 +323,9 @@
 		'doctype': 'DocField',
 		'fieldname': 'pack_nett_wt',
 		'fieldtype': 'Float',
-		'idx': 21,
 		'label': 'Pack Nett Wt',
-		'permlevel': 0
+		'permlevel': 0,
+		'print_hide': 1
 	},
 
 	# DocField
@@ -350,7 +333,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'no_of_packs',
 		'fieldtype': 'Int',
-		'idx': 22,
 		'label': 'No of Packs',
 		'oldfieldname': 'no_of_packs',
 		'oldfieldtype': 'Int',
@@ -364,7 +346,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'pack_unit',
 		'fieldtype': 'Data',
-		'idx': 23,
 		'label': 'Pack Unit',
 		'oldfieldname': 'pack_unit',
 		'oldfieldtype': 'Data',
@@ -378,7 +359,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'installed_qty',
 		'fieldtype': 'Currency',
-		'idx': 24,
 		'label': 'Installed Qty',
 		'no_copy': 1,
 		'oldfieldname': 'installed_qty',
@@ -393,7 +373,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'actual_qty',
 		'fieldtype': 'Currency',
-		'idx': 25,
 		'label': 'Available Qty at Warehouse',
 		'no_copy': 1,
 		'oldfieldname': 'actual_qty',
@@ -408,7 +387,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'billed_amt',
 		'fieldtype': 'Currency',
-		'idx': 26,
 		'label': 'Billed Amt',
 		'no_copy': 1,
 		'permlevel': 1,
@@ -423,7 +401,6 @@
 		'fieldname': 'prevdoc_docname',
 		'fieldtype': 'Data',
 		'hidden': 0,
-		'idx': 27,
 		'in_filter': 1,
 		'label': 'Against Document No',
 		'no_copy': 1,
@@ -441,7 +418,6 @@
 		'fieldname': 'prevdoc_doctype',
 		'fieldtype': 'Data',
 		'hidden': 1,
-		'idx': 28,
 		'in_filter': 1,
 		'label': 'Document Type',
 		'oldfieldname': 'prevdoc_doctype',
@@ -458,7 +434,6 @@
 		'fieldname': 'prevdoc_date',
 		'fieldtype': 'Date',
 		'hidden': 1,
-		'idx': 29,
 		'in_filter': 1,
 		'label': 'Against Document Date',
 		'oldfieldname': 'prevdoc_date',
@@ -473,7 +448,6 @@
 		'fieldname': 'prevdoc_detail_docname',
 		'fieldtype': 'Data',
 		'hidden': 1,
-		'idx': 30,
 		'in_filter': 1,
 		'label': 'Against Document Detail No',
 		'oldfieldname': 'prevdoc_detail_docname',
@@ -490,7 +464,6 @@
 		'fieldname': 'item_tax_rate',
 		'fieldtype': 'Small Text',
 		'hidden': 1,
-		'idx': 31,
 		'label': 'Item Tax Rate',
 		'oldfieldname': 'item_tax_rate',
 		'oldfieldtype': 'Small Text',
@@ -504,7 +477,6 @@
 		'doctype': 'DocField',
 		'fieldname': 'page_break',
 		'fieldtype': 'Check',
-		'idx': 32,
 		'label': 'Page Break',
 		'oldfieldname': 'page_break',
 		'oldfieldtype': 'Check',
