diff --git a/accounts/search_criteria/accounts_payable/accounts_payable.py b/accounts/search_criteria/accounts_payable/accounts_payable.py
index 53fff08..8c07b68 100644
--- a/accounts/search_criteria/accounts_payable/accounts_payable.py
+++ b/accounts/search_criteria/accounts_payable/accounts_payable.py
@@ -2,134 +2,145 @@
 # ------------------------------------------------------------------
 
 if not filter_values.get('posting_date') or not filter_values.get('posting_date1'):
-  msgprint("Please select From Posting Date and To Posting Date ")
-  raise Exception
+	msgprint("Please select From Posting Date and To Posting Date ")
+	raise Exception
 else:
-  from_date = filter_values.get('posting_date')
-  to_date = filter_values.get('posting_date1')
+	from_date = filter_values.get('posting_date')
+	to_date = filter_values.get('posting_date1')
 
 if not filter_values['range_1'] or not filter_values['range_2'] or not filter_values['range_3'] or not filter_values['range_4']:
-  msgprint("Please select aging ranges in no of days in 'More Filters' ")
-  raise Exception
+	msgprint("Please select aging ranges in no of days in 'More Filters' ")
+	raise Exception
 
 # validate Range
 range_list = ['range_1','range_2','range_3','range_4']
 for r in range(len(range_list)-1):
-  if not cint(filter_values[range_list[r]]) < cint(filter_values[range_list[r + 1]]):
-    msgprint("Range %s should be less than Range %s." % (cstr(r+1),cstr(r+2)))
-    raise Exception
+	if not cint(filter_values[range_list[r]]) < cint(filter_values[range_list[r + 1]]):
+		msgprint("Range %s should be less than Range %s." % (cstr(r+1),cstr(r+2)))
+		raise Exception
 
-  
+	
 # Add columns
 # ------------------------------------------------------------------
 data = [['Aging Date','Date','80px',''],
-        ['Transaction Date','Date','80px',''],
-        ['Account','Data','120px',''],
-        ['Against Voucher Type','Data','120px',''],
-        ['Against Voucher','Data','120px',''],
-        ['Voucher Type','Data','120px',''],
-        ['Voucher No','Data','120px',''],
-        ['Remarks','Data','160px',''],
-        ['Supplier Type', 'Data', '80px', ''],
-        ['Due Date', 'Data', '80px', ''],
-        ['Bill No','Data','80px',''],
-        ['Bill Date','Data','80px',''],
-        ['Opening Amt','Currency','120px',''],
-        ['Outstanding Amt','Currency','120px',''],
-        ['Age (Days)', 'Currency', '150px', ''],
-        ['0-'+cstr(filter_values['range_1']),'Currency','100px',''],
-        [cstr(cint(filter_values['range_1']) + 1)+ '-' +cstr(filter_values['range_2']),'Currency','100px',''],
-        [cstr(cint(filter_values['range_2']) + 1)+ '-' +cstr(filter_values['range_3']),'Currency','100px',''],
-        [cstr(cint(filter_values['range_3']) + 1)+ '-' +cstr(filter_values['range_4']),'Currency','100px',''],
-        [cstr(filter_values['range_4']) + '-Above','Currency','100px','']]
-        
+				['Transaction Date','Date','80px',''],
+				['Account','Data','120px',''],
+				['Against Voucher Type','Data','120px',''],
+				['Against Voucher','Data','120px',''],
+				['Voucher Type','Data','120px',''],
+				['Voucher No','Data','120px',''],
+				['Remarks','Data','160px',''],
+				['Supplier Type', 'Data', '80px', ''],
+				['Due Date', 'Data', '80px', ''],
+				['Bill No','Data','80px',''],
+				['Bill Date','Data','80px',''],
+				['Opening Amt','Currency','120px',''],
+				['Outstanding Amt','Currency','120px',''],
+				['Age (Days)', 'Currency', '150px', ''],
+				['0-'+cstr(filter_values['range_1']),'Currency','100px',''],
+				[cstr(cint(filter_values['range_1']) + 1)+ '-' +cstr(filter_values['range_2']),'Currency','100px',''],
+				[cstr(cint(filter_values['range_2']) + 1)+ '-' +cstr(filter_values['range_3']),'Currency','100px',''],
+				[cstr(cint(filter_values['range_3']) + 1)+ '-' +cstr(filter_values['range_4']),'Currency','100px',''],
+				[cstr(filter_values['range_4']) + '-Above','Currency','100px','']]
+				
 
 for d in data:
-  colnames.append(d[0])
-  coltypes.append(d[1])
-  colwidths.append(d[2])
-  coloptions.append(d[3])
-  col_idx[d[0]] = len(colnames)-1
-  
+	colnames.append(d[0])
+	coltypes.append(d[1])
+	colwidths.append(d[2])
+	coloptions.append(d[3])
+	col_idx[d[0]] = len(colnames)-1
+	
 # ageing based on
 # ------------------------------------------------------------------
 aging_based_on = 'Aging Date'
 if filter_values.has_key('aging_based_on') and filter_values['aging_based_on']:
-  aging_based_on = filter_values['aging_based_on'].split(NEWLINE)[-1]
+	aging_based_on = filter_values['aging_based_on'].split(NEWLINE)[-1]
 
-if  len(res) > 600 and from_export == 0:
-  msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please select Account or click on 'Export' to open in excel")
-  raise Exception
+if	len(res) > 600 and from_export == 0:
+	msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please select Account or click on 'Export' to open in excel")
+	raise Exception
 
 
 # ------------------------------------------------------------------
 # main loop starts here
 # ------------------------------------------------------------------
 
+# get supplier type
+supp_type_dict = {}
+for each in sql("select t2.name, t1.supplier_type from tabSupplier t1, tabAccount t2 where t1.name = t2.account_name group by t2.name"):
+	supp_type_dict[each[0]] = each[1]
+
+# get due_date, bill_no, bill_date from PV
+pv_dict = {}
+for t in sql("select name, due_date, bill_no, bill_date from `tabPayable Voucher` group by name"):
+	pv_dict[t[0]] = [cstr(t[1]), t[2], cstr(t[3])]
+
+# pv outside this period
+pv_outside_period = [d[0] for d in sql("select distinct name from `tabPayable Voucher` where (posting_date < '%s' or posting_date > '%s') and docstatus = 1" % (from_date, to_date))]
+
+
 out = []
 total_booking_amt, total_outstanding_amt = 0,0
 
 for r in res:
-  # get supplier type
-  supplier_type = sql("select t1.supplier_type from tabSupplier t1, tabAccount t2 where t1.name = t2.account_name and t2.name = '%s'" % r[col_idx['Account']])
-  r.append(supplier_type and cstr(supplier_type[0][0]) or '')
+	outstanding_amt, due_date, bill_no, bill_date, cond = 0, '','','', ''
+	booking_amt = r.pop(8)
+	
+	# supplier type
+	r.append(supp_type_dict.get(r[col_idx['Account']], ''))	
+	
+	# if entry against Payable Voucher
+	if r[col_idx['Against Voucher']] and r[col_idx['Voucher Type']] == 'Payable Voucher':
+		r += pv_dict.get(r[col_idx['Voucher No']], ['', '', ''])
+		cond = " and ifnull(against_voucher, '') = '%s'" % r[col_idx['Against Voucher']]
 
-  outstanding_amt, booking_amt, due_date, bill_no, bill_date, cond = 0,0, '','','', ''
+	# if entry against JV & and not adjusted within period
+	elif r[col_idx['Against Voucher Type']] == 'Payable Voucher' and r[col_idx['Against Voucher']] in pv_outside_period:
+		booking_amt = 0
+		cond = " and voucher_no = '%s' and ifnull(against_voucher, '') = '%s'" % (r[col_idx['Voucher No']], r[col_idx['Against Voucher']])
+	
+	# if un-adjusted
+	elif not r[col_idx['Against Voucher']]:
+		booking_amt = 0
+		cond = " and ((voucher_no = '%s' and ifnull(against_voucher, '') = '') or (ifnull(against_voucher, '') = '%s' and voucher_type = 'Journal Voucher'))" % (r[col_idx['Voucher No']], r[col_idx['Voucher No']])
 
-  # if entry against Payable Voucher
-  if r[col_idx['Against Voucher']] and r[col_idx['Voucher Type']] == 'Payable Voucher':
-    due_date, bill_no, bill_date = [cstr(t) for t in sql("select due_date,bill_no,bill_date from `tabPayable Voucher` where name = %s", r[col_idx['Voucher No']])[0]]
+	if cond:
+		outstanding_amt = flt(sql("select sum(ifnull(credit, 0))-sum(ifnull(debit, 0)) from `tabGL Entry` where account = '%s' and ifnull(is_cancelled, 'No') = 'No' and posting_date <= '%s' %s" % (r[col_idx['Account']], to_date, cond))[0][0] or 0)
 
-    # get opening
-    booking_amt = sql("select credit from `tabGL Entry` where account = %s and voucher_no = %s and is_cancelled = 'No'", (r[col_idx['Account']], r[col_idx['Voucher No']]))
-    booking_amt = booking_amt and flt(booking_amt[0][0]) or 0
+		# add to total outstanding
+		total_outstanding_amt += flt(outstanding_amt)
 
-    cond = " and against_voucher = '%s' and against_voucher is not null" % r[col_idx['Against Voucher']]
+		# add to total booking amount
+		if outstanding_amt and r[col_idx['Voucher Type']] == 'Payable Voucher' and r[col_idx['Against Voucher']]:
+			total_booking_amt += flt(booking_amt)
 
-  # if entry against JV & and not adjusted within period
-  elif r[col_idx['Against Voucher Type']] == 'Payable Voucher' and sql("select name from `tabPayable Voucher` where name = '%s' and (posting_date < '%s' or posting_date > '%s') and docstatus = 1" % (r[col_idx['Against Voucher']], from_date, to_date)):
-    cond = " and voucher_no = '%s' and ifnull(against_voucher, '') = '%s'" % (r[col_idx['Voucher No']], r[col_idx['Against Voucher']])
-  
-  # if un-adjusted
-  elif not r[col_idx['Against Voucher']]:
-    cond = " and ((voucher_no = '%s' and ifnull(against_voucher, '') = '') or (ifnull(against_voucher, '') = '%s' and voucher_type = 'Journal Voucher'))" % (r[col_idx['Voucher No']], r[col_idx['Voucher No']])
+	r += [booking_amt, outstanding_amt]
+	
+	# split into date ranges
+	val_l1 = val_l2 = val_l3 = val_l4 = val_l5_above= 0
+	if r[col_idx[aging_based_on]]:
+		diff = (getdate(to_date) - getdate(r[col_idx[aging_based_on]])).days
+		if diff < cint(filter_values['range_1']):
+			val_l1 = outstanding_amt
+		if diff >= cint(filter_values['range_1']) and diff < cint(filter_values['range_2']):
+			val_l2 = outstanding_amt
+		if diff >= cint(filter_values['range_2']) and diff < cint(filter_values['range_3']):
+			val_l3 = outstanding_amt
+		if diff >= cint(filter_values['range_3']) and diff < cint(filter_values['range_4']):
+			val_l4 = outstanding_amt
+		if diff >= cint(filter_values['range_4']):
+			val_l5_above = outstanding_amt
 
-  if cond:
-    outstanding_amt = flt(sql("select sum(ifnull(credit, 0))-sum(ifnull(debit, 0)) from `tabGL Entry` where account = '%s' and ifnull(is_cancelled, 'No') = 'No' and posting_date <= '%s' %s" % (r[col_idx['Account']], to_date, cond))[0][0] or 0)
+	r += [diff, val_l1, val_l2, val_l3, val_l4, val_l5_above]
 
-    # add to total outstanding
-    total_outstanding_amt += flt(outstanding_amt)
-
-    # add to total booking amount
-    if outstanding_amt and r[col_idx['Voucher Type']] == 'Payable Voucher' and r[col_idx['Against Voucher']]:
-      total_booking_amt += flt(booking_amt)
-
-  r += [due_date, bill_no, bill_date, booking_amt, outstanding_amt]
-  
-  # split into date ranges
-  val_l1 = val_l2 = val_l3 = val_l4 = val_l5_above= 0
-  if r[col_idx[aging_based_on]]:
-    diff = (getdate(to_date) - getdate(r[col_idx[aging_based_on]])).days
-    if diff < cint(filter_values['range_1']):
-      val_l1 = outstanding_amt
-    if diff >= cint(filter_values['range_1']) and diff < cint(filter_values['range_2']):
-      val_l2 = outstanding_amt
-    if diff >= cint(filter_values['range_2']) and diff < cint(filter_values['range_3']):
-      val_l3 = outstanding_amt
-    if diff >= cint(filter_values['range_3']) and diff < cint(filter_values['range_4']):
-      val_l4 = outstanding_amt
-    if diff >= cint(filter_values['range_4']):
-      val_l5_above = outstanding_amt
-
-  r += [diff, val_l1, val_l2, val_l3, val_l4, val_l5_above]
-
-  # Only show that entry which has outstanding
-  if abs(flt(outstanding_amt)) > 0.001:
-    out.append(r)
-    
-if  len(out) > 300 and from_export == 0:
-  msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please select Account or click on 'Export' to open in excel")
-  raise Exception
+	# Only show that entry which has outstanding
+	if abs(flt(outstanding_amt)) > 0.001:
+		out.append(r)
+		
+if	len(out) > 300 and from_export == 0:
+	msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please select Account or click on 'Export' to open in excel")
+	raise Exception
 
 
 # Append Extra rows to RES
diff --git a/accounts/search_criteria/accounts_payable/accounts_payable.sql b/accounts/search_criteria/accounts_payable/accounts_payable.sql
index d2dba06..2054b1e 100644
--- a/accounts/search_criteria/accounts_payable/accounts_payable.sql
+++ b/accounts/search_criteria/accounts_payable/accounts_payable.sql
@@ -1,4 +1,4 @@
-SELECT DISTINCT `tabGL Entry`.`Aging_date`,`tabGL Entry`.`transaction_date`,`tabGL Entry`.`account`, `tabGL Entry`.`against_voucher_type`, `tabGL Entry`.`against_voucher`,`tabGL Entry`.`voucher_type`,`tabGL Entry`.`voucher_no`, `tabGL Entry`.remarks
+SELECT DISTINCT `tabGL Entry`.`Aging_date`,`tabGL Entry`.`transaction_date`,`tabGL Entry`.`account`, `tabGL Entry`.`against_voucher_type`, `tabGL Entry`.`against_voucher`,`tabGL Entry`.`voucher_type`,`tabGL Entry`.`voucher_no`, `tabGL Entry`.`remarks`, `tabGL Entry`.`credit`
 FROM `tabGL Entry`,`tabAccount` 
 WHERE `tabGL Entry`.`posting_date`>= '%(posting_date)s'
  AND `tabGL Entry`.`posting_date`<= '%(posting_date1)s'
diff --git a/buying/doctype/supplier/supplier.txt b/buying/doctype/supplier/supplier.txt
index b7797e5..3995c92 100644
--- a/buying/doctype/supplier/supplier.txt
+++ b/buying/doctype/supplier/supplier.txt
@@ -5,7 +5,7 @@
 	{
 		'creation': '2010-08-08 17:09:26',
 		'docstatus': 0,
-		'modified': '2011-05-10 17:42:21',
+		'modified': '2011-07-19 16:18:58',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
@@ -25,7 +25,7 @@
 		'show_in_menu': 0,
 		'subject': ' ',
 		'tag_fields': 'supplier_type',
-		'version': 86
+		'version': 87
 	},
 
 	# These values are common for all DocField
@@ -166,21 +166,8 @@
 	# DocField
 	{
 		'doctype': 'DocField',
-		'fieldname': 'supplier_status',
-		'fieldtype': 'Select',
-		'idx': 6,
-		'label': 'Supplier Status',
-		'oldfieldname': 'supplier_status',
-		'oldfieldtype': 'Select',
-		'options': '\nApproved\nUnapproved',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
-		'idx': 7,
+		'idx': 6,
 		'label': 'Address & Contacts',
 		'oldfieldtype': 'Column Break',
 		'permlevel': 0
@@ -192,7 +179,7 @@
 		'depends_on': 'eval:doc.__islocal',
 		'doctype': 'DocField',
 		'fieldtype': 'HTML',
-		'idx': 8,
+		'idx': 7,
 		'label': 'Address Desc',
 		'options': '<em>Addresses will appear only when you save the supplier</em>',
 		'permlevel': 0
@@ -203,7 +190,7 @@
 		'colour': 'White:FFF',
 		'doctype': 'DocField',
 		'fieldtype': 'HTML',
-		'idx': 9,
+		'idx': 8,
 		'label': 'Address HTML',
 		'permlevel': 1
 	},
@@ -212,7 +199,7 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Column Break',
-		'idx': 10,
+		'idx': 9,
 		'permlevel': 0,
 		'width': '50%'
 	},
@@ -223,7 +210,7 @@
 		'depends_on': 'eval:doc.__islocal',
 		'doctype': 'DocField',
 		'fieldtype': 'HTML',
-		'idx': 11,
+		'idx': 10,
 		'label': 'Contact Desc',
 		'options': '<em>Contact Details will appear only when you save the supplier</em>',
 		'permlevel': 0
@@ -233,7 +220,7 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'HTML',
-		'idx': 12,
+		'idx': 11,
 		'label': 'Contact HTML',
 		'permlevel': 1
 	},
@@ -242,7 +229,7 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
-		'idx': 13,
+		'idx': 12,
 		'label': 'More Info',
 		'oldfieldtype': 'Section Break',
 		'permlevel': 0
@@ -255,7 +242,7 @@
 		'doctype': 'DocField',
 		'fieldname': 'company',
 		'fieldtype': 'Link',
-		'idx': 14,
+		'idx': 13,
 		'in_filter': 1,
 		'label': 'Company',
 		'oldfieldname': 'company',
@@ -273,7 +260,7 @@
 		'doctype': 'DocField',
 		'fieldname': 'supplier_details',
 		'fieldtype': 'Text',
-		'idx': 15,
+		'idx': 14,
 		'label': 'Supplier Details',
 		'oldfieldname': 'supplier_details',
 		'oldfieldtype': 'Code',
@@ -284,7 +271,7 @@
 	{
 		'doctype': 'DocField',
 		'fieldtype': 'Column Break',
-		'idx': 16,
+		'idx': 15,
 		'permlevel': 0,
 		'width': '50%'
 	},
@@ -294,7 +281,7 @@
 		'doctype': 'DocField',
 		'fieldname': 'credit_days',
 		'fieldtype': 'Int',
-		'idx': 17,
+		'idx': 16,
 		'label': 'Credit Days',
 		'permlevel': 0
 	},
@@ -304,7 +291,7 @@
 		'doctype': 'DocField',
 		'fieldname': 'website',
 		'fieldtype': 'Data',
-		'idx': 18,
+		'idx': 17,
 		'label': 'Website',
 		'oldfieldname': 'website',
 		'oldfieldtype': 'Data',
@@ -317,7 +304,7 @@
 		'depends_on': 'eval:!doc.__islocal',
 		'doctype': 'DocField',
 		'fieldtype': 'Section Break',
-		'idx': 19,
+		'idx': 18,
 		'label': 'Transaction History',
 		'oldfieldtype': 'Section Break',
 		'permlevel': 0
@@ -329,7 +316,7 @@
 		'depends_on': 'eval:!doc.__islocal',
 		'doctype': 'DocField',
 		'fieldtype': 'HTML',
-		'idx': 20,
+		'idx': 19,
 		'label': 'History HTML',
 		'oldfieldtype': 'HTML',
 		'permlevel': 0
@@ -340,7 +327,7 @@
 		'doctype': 'DocField',
 		'fieldname': 'trash_reason',
 		'fieldtype': 'Small Text',
-		'idx': 21,
+		'idx': 20,
 		'label': 'Trash Reason',
 		'oldfieldname': 'trash_reason',
 		'oldfieldtype': 'Small Text',
diff --git a/patches/index_patch.py b/patches/index_patch.py
index 8f6c4f2..9daf4fb 100644
--- a/patches/index_patch.py
+++ b/patches/index_patch.py
@@ -102,7 +102,7 @@
 						'File Group': ['parent_group'], 
 						'Maintenance Visit Detail': ['item_code', 'service_person'], 
 						'Support Ticket Response': [], 
-						'PV Detail': ['item_code', 'purchase_order', 'po_detail', 'purchase_receipt', 'pr_detail', 'expense_head', 'cost_center'], 
+						'PV Detail': ['item_code', 'purchase_order', 'purchase_receipt', 'expense_head', 'cost_center'], 
 						'Timesheet Detail': ['project_name', 'task_id', 'customer_name'], 
 						'Holiday List Detail': [], 
 						'Workflow Rule Detail': [], 
@@ -125,7 +125,7 @@
 						'Declaration Detail': [], 
 						'Holiday List': ['fiscal_year'], 
 						'Sales Person': ['lft', 'rgt', 'parent_sales_person'], 
-						'RV Detail': ['item_code', 'sales_order', 'so_detail', 'delivery_note', 'dn_detail', 'cost_center', 'income_account'], 
+						'RV Detail': ['item_code', 'sales_order', 'delivery_note', 'cost_center', 'income_account'], 
 						'Module Def Item': [], 
 						'TDS Category': [], 
 						'DocTrigger': [], 
diff --git a/patches/patch.py b/patches/patch.py
index 384ee2a..ad7eb7d 100644
--- a/patches/patch.py
+++ b/patches/patch.py
@@ -1,7 +1,7 @@
 # REMEMBER to update this
 # ========================
 
-last_patch = 326
+last_patch = 327
 
 #-------------------------------------------
 
@@ -1298,3 +1298,6 @@
 		# load the new billing page
 		if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')):
 			reload_doc('server_tools','page','billing')
+	elif patch_no == 327:
+		if webnotes.conn.get_value('Control Panel', None, 'account_id') != 'axjanak2011':
+			sql("delete from `tabDocField` where fieldname = 'supplier_status' and parent = 'Supplier'")
