diff --git a/erpnext/accounts/DocType Mapper/Delivery Note-Sales Invoice/Delivery Note-Sales Invoice.txt b/erpnext/accounts/DocType Mapper/Delivery Note-Sales Invoice/Delivery Note-Sales Invoice.txt
index 66572be..72f326b 100644
--- a/erpnext/accounts/DocType Mapper/Delivery Note-Sales Invoice/Delivery Note-Sales Invoice.txt
+++ b/erpnext/accounts/DocType Mapper/Delivery Note-Sales Invoice/Delivery Note-Sales Invoice.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-04-02 13:38:02',
+		'creation': '2012-04-03 12:49:42',
 		'docstatus': 0,
-		'modified': '2012-04-02 13:38:02',
+		'modified': '2012-04-03 12:49:43',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/DocType Mapper/Project-Sales Invoice/Project-Sales Invoice.txt b/erpnext/accounts/DocType Mapper/Project-Sales Invoice/Project-Sales Invoice.txt
index 44cffbd..8d87fda 100644
--- a/erpnext/accounts/DocType Mapper/Project-Sales Invoice/Project-Sales Invoice.txt
+++ b/erpnext/accounts/DocType Mapper/Project-Sales Invoice/Project-Sales Invoice.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-20 12:33:34',
+		'creation': '2010-09-01 15:47:59',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'ashwini@webnotestech.com'
 	},
diff --git a/erpnext/accounts/DocType Mapper/Purchase Order-Purchase Invoice/Purchase Order-Purchase Invoice.txt b/erpnext/accounts/DocType Mapper/Purchase Order-Purchase Invoice/Purchase Order-Purchase Invoice.txt
index 5e06ad3..0e54457 100644
--- a/erpnext/accounts/DocType Mapper/Purchase Order-Purchase Invoice/Purchase Order-Purchase Invoice.txt
+++ b/erpnext/accounts/DocType Mapper/Purchase Order-Purchase Invoice/Purchase Order-Purchase Invoice.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-20 12:33:34',
+		'creation': '2010-08-08 17:09:35',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/DocType Mapper/Purchase Receipt-Purchase Invoice/Purchase Receipt-Purchase Invoice.txt b/erpnext/accounts/DocType Mapper/Purchase Receipt-Purchase Invoice/Purchase Receipt-Purchase Invoice.txt
index 092c8df..75b188b 100644
--- a/erpnext/accounts/DocType Mapper/Purchase Receipt-Purchase Invoice/Purchase Receipt-Purchase Invoice.txt
+++ b/erpnext/accounts/DocType Mapper/Purchase Receipt-Purchase Invoice/Purchase Receipt-Purchase Invoice.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-20 12:33:34',
+		'creation': '2010-08-08 17:09:35',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/DocType Mapper/Sales Order-Sales Invoice/Sales Order-Sales Invoice.txt b/erpnext/accounts/DocType Mapper/Sales Order-Sales Invoice/Sales Order-Sales Invoice.txt
index 8f9afd0..aa1cc3c 100644
--- a/erpnext/accounts/DocType Mapper/Sales Order-Sales Invoice/Sales Order-Sales Invoice.txt
+++ b/erpnext/accounts/DocType Mapper/Sales Order-Sales Invoice/Sales Order-Sales Invoice.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-04-02 13:38:02',
+		'creation': '2012-04-03 12:49:42',
 		'docstatus': 0,
-		'modified': '2012-04-02 13:05:04',
+		'modified': '2012-04-03 12:49:42',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/doctype/account/account.js b/erpnext/accounts/doctype/account/account.js
index 32f60c7..57edd5a 100644
--- a/erpnext/accounts/doctype/account/account.js
+++ b/erpnext/accounts/doctype/account/account.js
@@ -57,7 +57,7 @@
 
 // Convert group to ledger
 // -----------------------------------------
-cur_frm.cscript['Convert to Ledger'] = function(doc, cdt, cdn) {
+cur_frm.cscript.convert_to_ledger = function(doc, cdt, cdn) {
   $c_obj(make_doclist(cdt,cdn),'convert_group_to_ledger','',function(r,rt) {
     if(r.message == 1) {
       doc.group_or_ledger = 'Ledger';
@@ -69,7 +69,7 @@
 
 // Convert ledger to group
 // -----------------------------------------
-cur_frm.cscript['Convert to Group'] = function(doc, cdt, cdn) {
+cur_frm.cscript.convert_to_group = function(doc, cdt, cdn) {
   $c_obj(make_doclist(cdt,cdn),'convert_ledger_to_group','',function(r,rt) {
     if(r.message == 1) {
       doc.group_or_ledger = 'Group';
diff --git a/erpnext/accounts/doctype/cost_center/cost_center.js b/erpnext/accounts/doctype/cost_center/cost_center.js
index 180836a..d638ee4 100644
--- a/erpnext/accounts/doctype/cost_center/cost_center.js
+++ b/erpnext/accounts/doctype/cost_center/cost_center.js
@@ -65,7 +65,7 @@
 
 // Convert group to ledger
 // -----------------------------------------
-cur_frm.cscript['Convert to Ledger'] = function(doc, cdt, cdn) {
+cur_frm.cscript.convert_to_ledger = function(doc, cdt, cdn) {
 	$c_obj(make_doclist(cdt,cdn),'convert_group_to_ledger','',function(r,rt) {
 		if(r.message == 1) {
 			doc.group_or_ledger = 'Ledger';
@@ -77,7 +77,7 @@
 
 // Convert ledger to group
 // -----------------------------------------
-cur_frm.cscript['Convert to Group'] = function(doc, cdt, cdn) {
+cur_frm.cscript.convert_to_group = function(doc, cdt, cdn) {
 	$c_obj(make_doclist(cdt,cdn),'convert_ledger_to_group','',function(r,rt) {
 		if(r.message == 1) {
 			doc.group_or_ledger = 'Group';
diff --git a/erpnext/accounts/doctype/journal_voucher/journal_voucher.js b/erpnext/accounts/doctype/journal_voucher/journal_voucher.js
index ca3205c..e947133 100644
--- a/erpnext/accounts/doctype/journal_voucher/journal_voucher.js
+++ b/erpnext/accounts/doctype/journal_voucher/journal_voucher.js
@@ -137,7 +137,7 @@
 	refresh_field('ded_amount');
 	cur_frm.cscript.update_totals(doc); 
 }
-cur_frm.cscript['Get Balance'] = function(doc,dt,dn) {
+cur_frm.cscript.get_balance = function(doc,dt,dn) {
 	cur_frm.cscript.update_totals(doc); 
 	$c_obj(make_doclist(dt,dn), 'get_balance', '', function(r, rt){
 	cur_frm.refresh();
@@ -157,7 +157,7 @@
 
 // TDS
 // --------
-cur_frm.cscript['Get TDS'] = function(doc, dt, dn) {
+cur_frm.cscript.get_tds = function(doc, dt, dn) {
 	$c_obj(make_doclist(dt,dn), 'get_tds', '', function(r, rt){
 		cur_frm.refresh();
 		cur_frm.cscript.update_totals(doc);
@@ -181,7 +181,7 @@
 }
 
 /****************** Get Accounting Entry *****************/
-cur_frm.cscript['View Ledger Entry'] = function(doc,cdt,cdn){
+cur_frm.cscript.view_ledger_entry = function(doc,cdt,cdn){
 	var callback = function(report){
 		report.set_filter('GL Entry', 'Voucher No',doc.name);
 		report.dt.run();
diff --git a/erpnext/accounts/doctype/multi_ledger_report/multi_ledger_report.js b/erpnext/accounts/doctype/multi_ledger_report/multi_ledger_report.js
index 10b1bc1..2dabb66 100755
--- a/erpnext/accounts/doctype/multi_ledger_report/multi_ledger_report.js
+++ b/erpnext/accounts/doctype/multi_ledger_report/multi_ledger_report.js
@@ -14,6 +14,6 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-cur_frm.cscript['Export Report'] = function(doc, cdt, cdn) {
+cur_frm.cscript.export_report = function(doc, cdt, cdn) {
 	$c_obj_csv(make_doclist(cdt, cdn), 'get_report_data', '');
 }
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index f3b3d8a..a8550d5 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -66,11 +66,11 @@
 
 	// Show / Hide button
 	if(doc.docstatus==1 && doc.outstanding_amount > 0)
-		cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript['Make Bank Voucher']);
+		cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript.make_bank_voucher);
 	
 	if(doc.docstatus==1) { 
 		unhide_field(['Repair Outstanding Amt']); 
-		cur_frm.add_custom_button('View Ledger', cur_frm.cscript['View Ledger Entry']);
+		cur_frm.add_custom_button('View Ledger', cur_frm.cscript.view_ledger_entry);
 	} else hide_field(['Repair Outstanding Amt']);
 	
 	cur_frm.cscript.is_opening(doc, dt, dn);
@@ -162,14 +162,14 @@
 
 // Recalculate Button
 // -------------------
-cur_frm.cscript['Recalculate'] = function(doc, cdt, cdn) {
-	cur_frm.cscript['Calculate Tax'](doc,cdt,cdn);
+cur_frm.cscript.recalculate = function(doc, cdt, cdn) {
+	cur_frm.cscript.calculate_tax(doc,cdt,cdn);
 	calc_total_advance(doc,cdt,cdn);
 }
 
 // Get Items Button
 // -----------------
-cur_frm.cscript['Get Items'] = function(doc, dt, dn) {
+cur_frm.cscript.get_items = function(doc, dt, dn) {
 	var callback = function(r,rt) { 
 		unhide_field(['supplier_address', 'contact_person', 'supplier_name', 'address_display', 'contact_display', 'contact_mobile','contact_email']);				
 		refresh_many(['credit_to','supplier','supplier_address','contact_person','supplier_name', 'address_display', 'contact_display','contact_mobile', 'contact_email','entries', 'purchase_receipt_main', 'purchase_order_main', 'purchase_tax_details']);
@@ -201,7 +201,7 @@
 
 // Get TDS Button
 // ---------------
-cur_frm.cscript['Get TDS'] = function(doc, dt, dn) {
+cur_frm.cscript.get_tds = function(doc, dt, dn) {
 	var callback = function(r,rt) {
 		cur_frm.refresh();
 		refresh_field('ded_amount');
@@ -231,7 +231,7 @@
 
 // Make Journal Voucher
 // --------------------
-cur_frm.cscript['Make Bank Voucher'] = function() {
+cur_frm.cscript.make_bank_voucher = function() {
 	$c('accounts.get_default_bank_account', { company: cur_frm.doc.company }, function(r, rt) {
 		if(!r.exc) {
 			cur_frm.cscript.make_jv(cur_frm.doc, null, null, r.message);
@@ -399,7 +399,7 @@
 }
 
 /****************** Get Accounting Entry *****************/
-cur_frm.cscript['View Ledger Entry'] = function(){
+cur_frm.cscript.view_ledger_entry = function(){
 	var callback = function(report){
 		report.set_filter('GL Entry', 'Voucher No',cur_frm.doc.name);
 		report.dt.run();
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index 7201f3d..68cdf1f 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -108,15 +108,15 @@
 	if (!cur_frm.cscript.is_onload)	cur_frm.cscript.hide_price_list_currency(doc, dt, dn); 
 
 	if(doc.docstatus==1) {
-		cur_frm.add_custom_button('View Ledger', cur_frm.cscript['View Ledger Entry']);
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+		cur_frm.add_custom_button('View Ledger', cur_frm.cscript.view_ledger_entry);
+		cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 		unhide_field('Repair Outstanding Amt');
 
 		if(doc.is_pos==1 && doc.update_stock!=1)
 			cur_frm.add_custom_button('Make Delivery', cur_frm.cscript['Make Delivery Note']);
 
 		if(doc.outstanding_amount!=0)
-			cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript['Make Bank Voucher']);
+			cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript.make_bank_voucher);
 	}
 	else
 		hide_field('Repair Outstanding Amt');
@@ -275,7 +275,7 @@
 /* **************************** TRIGGERS ********************************** */
 
 // Get Items based on SO or DN Selected
-cur_frm.cscript['Get Items'] = function(doc, dt, dn) {
+cur_frm.cscript.get_items = function(doc, dt, dn) {
 	var callback = function(r,rt) {
 		unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
 		cur_frm.refresh();
@@ -314,7 +314,7 @@
 
 // Make Bank Voucher Button
 // -------------------------
-cur_frm.cscript['Make Bank Voucher'] = function(doc, dt, dn) {
+cur_frm.cscript.make_bank_voucher = function(doc, dt, dn) {
 	$c('accounts.get_default_bank_account', { company: cur_frm.doc.company }, function(r, rt) {
 		if(!r.exc) {
 		  cur_frm.cscript.make_jv(cur_frm.doc, null, null, r.message);
@@ -470,7 +470,7 @@
 
 
 /****************** Get Accounting Entry *****************/
-cur_frm.cscript['View Ledger Entry'] = function(){
+cur_frm.cscript.view_ledger_entry = function(){
 	var callback = function(report){
 		report.set_filter('GL Entry', 'Voucher No',cur_frm.doc.name);
 		report.dt.run();
diff --git a/erpnext/accounts/doctype/tds_payment/tds_payment.js b/erpnext/accounts/doctype/tds_payment/tds_payment.js
index e15fd13..ad45b42 100644
--- a/erpnext/accounts/doctype/tds_payment/tds_payment.js
+++ b/erpnext/accounts/doctype/tds_payment/tds_payment.js
@@ -44,7 +44,7 @@
 // Make Journal Voucher
 // --------------------
 
-cur_frm.cscript['Make Bank Voucher'] = function(doc, dt, dn) {  
+cur_frm.cscript.make_bank_voucher = function(doc, dt, dn) {  
   var call_back = function(r,rt) {
     cur_frm.cscript.make_jv(doc,dt,dn,r.message);
   }
diff --git a/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.txt b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.txt
index 568cbbc..8cc99b3 100644
--- a/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.txt
+++ b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.txt b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.txt
index 1ecfb07..33a5318 100644
--- a/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.txt
+++ b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/search_criteria/bank_clearance_report/bank_clearance_report.txt b/erpnext/accounts/search_criteria/bank_clearance_report/bank_clearance_report.txt
index 27064a7..c329d7e 100644
--- a/erpnext/accounts/search_criteria/bank_clearance_report/bank_clearance_report.txt
+++ b/erpnext/accounts/search_criteria/bank_clearance_report/bank_clearance_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.txt b/erpnext/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.txt
index 51623a5..1518e85 100644
--- a/erpnext/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.txt
+++ b/erpnext/accounts/search_criteria/bank_reconciliation_statement/bank_reconciliation_statement.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.txt b/erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.txt
index 7b9b924..f8df9db 100644
--- a/erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.txt
+++ b/erpnext/accounts/search_criteria/budget_variance_report/budget_variance_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'harshada@webnotestech.com'
 	},
diff --git a/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.txt b/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.txt
index 59a1f5e..aba68a8 100644
--- a/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.txt
+++ b/erpnext/accounts/search_criteria/business_associate_commission_report/business_associate_commission_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'saumil@webnotestech.com'
 	},
diff --git a/erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.txt b/erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.txt
index 600ebb7..1d33298 100644
--- a/erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.txt
+++ b/erpnext/accounts/search_criteria/cash_flow_statement/cash_flow_statement.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/__init__.py b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.js b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.js
deleted file mode 100644
index e098cc3..0000000
--- a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  this.hide_all_filters();
-  this.add_filter({fieldname:'report', label:'Report Type', fieldtype:'Select', options:NEWLINE + 'CENVAT CREDIT ACCOUNT - INPUTS (R.G.23 A - PART II)' + NEWLINE + 'CAPITAL GOODS - INPUTS (R.G. 23 C - PART II)', ignore : 1, parent:'Journal Voucher Detail'})
-  this.add_filter({fieldname:'main_acc_head', label:'Main Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-  this.add_filter({fieldname:'add_acc_head', label:'Additional Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-  this.add_filter({fieldname:'cvd_acc_head', label:'CVD Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-  this.add_filter({fieldname:'edu_cess_acc_head', label:'Edu Cess Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-  this.add_filter({fieldname:'sh_edu_cess_acc_head', label:'S.H.Edu Cess Account Head', fieldtype:'Link', options:'Account', ignore : 1, parent:'Journal Voucher Detail'});
-    
-
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Company'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df.filter_hide = 0;
-  
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Company'].df['report_default']=sys_defaults.company;
-
-  //this.large_report = 1;
-}
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.py b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.py
deleted file mode 100644
index cfdd45f..0000000
--- a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.py
+++ /dev/null
@@ -1,154 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Add columns
-# -----------
-row_list = [['Date', 'Date', '150px', '']
-           ,['ARI/INVOICE/Other Approved document/Bill of entry No.', 'Date', '150px', '']
-           ,['Date', 'Date', '150px', '']
-           ,['Baisc Excise Duty', 'Currency', '150px', '']
-           ,['Additional Duty', 'Currency', '150px', '']
-           ,['Education Cess', 'Currency', '150px', '']
-           ,['S.H.Education Cess', 'Currency', '150px', '']
-           ,[' Basic Excise Duty', 'Currency', '150px', '']
-           ,[' Education Cess', 'Currency', '150px', '']
-           ,[' S.H.Education Cess', 'Currency', '150px', '']
-           ,['Basic Excise Duty ', 'Currency', '150px', '']
-           ,['Education Cess ', 'Currency', '150px', '']
-           ,['S.H.Education Cess ', 'Currency', '150px', '']
-           ,['Remarks', 'Data', '150px', '']
-]
-
-if not filter_values['report']:
-  msgprint("Please Select Report Type. ")
-  raise Exception
-
-if 'CAPITAL' not in filter_values['report']:
-  row_list.insert(3,['Range/ Divsion/ Custom House from where received', 'Data', '150px', ''])
-  row_list.insert(4,['Folio No. & Entry No. in Part I', 'Data', '150px', ''])
-  row_list.insert(7,['CVD', 'Currency', '150px', ''])
-  row_list.insert(10,['ARI/INVOICE/ Other Approved document/Bill of entry No.', 'Data', '100px', ''])
-  row_list.insert(11,['Date', 'Date', '150px', ''])
-elif 'CAPITAL' in filter_values['report']:
-  row_list.insert(7,[' Basic Excise Duty ', 'Currency', '150px', ''])
-  row_list.insert(8,[' Education Cess ', 'Currency', '150px', ''])
-  row_list.insert(9,[' S.H.Education Cess ', 'Currency', '150px', ''])
-  row_list.insert(10,['ARI/INVOICE/ Other Approved document/Bill of entry No.', 'Data', '100px', ''])
-  row_list.insert(11,['Date', 'Date', '150px', ''])
-
-for r in row_list:
-  colnames.append(r[0])
-  coltypes.append(r[1])
-  colwidths.append(r[2])
-  coloptions.append(r[3])
-  col_idx[r[0]] = len(colnames)-1
-
-
-# get as_on_date for opening
-as_on_date = ''
-if filter_values.get('posting_date'):
-  as_on_date = add_days(filter_values['posting_date'], -1)
-
-ysd, from_date_year = sql("select year_start_date, name from `tabFiscal Year` where %s between year_start_date and date_add(year_start_date,interval 1 year)",as_on_date)[0]
-
-
-# Get Opening Balance
-def get_opening_balance(acc, fy, as_on_date, ysd, get_opening_balance, get_obj):
-  glc = get_obj('GL Control')
-  acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where name = '%s'" % acc)
-  return glc.get_as_on_balance(acc, fy, as_on_date, acc_det[0][0], acc_det[0][2], acc_det[0][3])[2]
-
-cum_sum_main_acc_head = cum_sum_add_acc_head = cum_sum_cvd_acc_head = cum_sum_edu_cess_acc_head = cum_sum_sh_edu_cess_acc_head = 0
-openg_main_acc_head = openg_add_acc_head = openg_cvd_acc_head = openg_edu_cess_acc_head = openg_sh_edu_cess_acc_head = 0
-
-# Get Opening of Basic Excise Duty
-if not filter_values['main_acc_head']: 
-  msgprint("Please Enter Main Account Head")
-  raise Exception
-cum_sum_main_acc_head = openg_main_acc_head = get_opening_balance(filter_values['main_acc_head'], from_date_year, as_on_date, ysd, get_opening_balance, get_obj)
-
-# Get Opening of add_acc_head
-if filter_values['add_acc_head'] : cum_sum_add_acc_head = openg_add_acc_head = get_opening_balance(filter_values['add_acc_head'], from_date_year, as_on_date, ysd, get_opening_balance, get_obj)
-
-# Get Opening of cvd_acc_head
-if filter_values['cvd_acc_head'] : cum_sum_cvd_acc_head = openg_cvd_acc_head = get_opening_balance(get_opening_balance, filter_values['cvd_acc_head'], from_date_year, as_on_date, ysd, get_opening_balance, get_obj)
-
-# Get Opening of edu_cess_acc_head
-if not filter_values['edu_cess_acc_head'] :
-  msgprint("Please Enter Edu Cess Account Head")
-  raise Exception
-cum_sum_edu_cess_acc_head = openg_edu_cess_acc_head = get_opening_balance(filter_values['edu_cess_acc_head'], from_date_year, as_on_date, ysd, get_opening_balance, get_obj)
-
-# Get Opening of sh_edu_cess_acc_head
-if not filter_values['sh_edu_cess_acc_head'] :
-  msgprint("Please Enter S.H.Edu Cess Account Head")
-  raise Exception
-cum_sum_sh_edu_cess_acc_head = openg_sh_edu_cess_acc_head = get_opening_balance(filter_values['sh_edu_cess_acc_head'], from_date_year, as_on_date, ysd, get_opening_balance, get_obj)
-
-
-for r in res:
-  remarks = r[col_idx['ARI/INVOICE/ Other Approved document/Bill of entry No.']]
-  r[col_idx['ARI/INVOICE/ Other Approved document/Bill of entry No.']] = ''
-  r.append('')
-  if 'CAPITAL' not in filter_values['report']:
-    r.append(0.00)
-    r.append(0.00)
-    r.append(0.00)
-    cum_sum_main_acc_head = flt(cum_sum_main_acc_head) + flt(r[col_idx['Baisc Excise Duty']])
-    cum_sum_add_acc_head = flt(cum_sum_add_acc_head) + flt(r[col_idx['Additional Duty']])
-    cum_sum_cvd_acc_head = flt(cum_sum_cvd_acc_head) + flt(r[col_idx['CVD']])
-    
-    r.append( cum_sum_main_acc_head + cum_sum_add_acc_head + cum_sum_cvd_acc_head)
-    cum_sum_edu_cess_acc_head = flt(cum_sum_edu_cess_acc_head) + flt(r[col_idx['Education Cess']])
-    r.append(cum_sum_edu_cess_acc_head)
-    cum_sum_sh_edu_cess_acc_head = flt(cum_sum_sh_edu_cess_acc_head) + flt(r[col_idx['S.H.Education Cess']])
-    r.append(cum_sum_sh_edu_cess_acc_head)
-  elif 'CAPITAL' in filter_values['report']:
-    # As there is no range and Folio No
-    r[col_idx['Baisc Excise Duty']] = r[col_idx['Education Cess']]
-    r[col_idx['Additional Duty']] = r[col_idx['S.H.Education Cess']]
-    r[col_idx['Education Cess']] = r[col_idx[' Education Cess ']]
-    r[col_idx['S.H.Education Cess']] = r[col_idx[' S.H.Education Cess ']]
-
-    cum_sum_main_acc_head = flt(cum_sum_main_acc_head) + flt(r[col_idx['Baisc Excise Duty']]) 
-    cum_sum_add_acc_head = flt(cum_sum_add_acc_head) + flt(r[col_idx['Additional Duty']]) 
-        
-    r[col_idx[' Basic Excise Duty ']]= flt(cum_sum_main_acc_head) + flt(cum_sum_add_acc_head)
-    cum_sum_edu_cess_acc_head = flt(cum_sum_edu_cess_acc_head) + flt(r[col_idx['Education Cess']])
-    r[col_idx[' Education Cess ']]= flt(cum_sum_edu_cess_acc_head)
-    cum_sum_sh_edu_cess_acc_head = flt(cum_sum_sh_edu_cess_acc_head) + flt(r[col_idx['S.H.Education Cess']])
-    r[col_idx[' S.H.Education Cess ']]= flt(cum_sum_sh_edu_cess_acc_head)
-    
-    r.append(0.00)
-    r.append(0.00)
-    r.append(0.00)
-    
-    r.append( cum_sum_main_acc_head + cum_sum_add_acc_head)
-    r.append(cum_sum_edu_cess_acc_head)
-    r.append(cum_sum_sh_edu_cess_acc_head)
-  r.append(remarks)
-
-
-out = []
-
-if 'CAPITAL' not in cstr(filter_values['report']):
-  out.append(['Opening Balance of Duty in Credit', '', '', '', '', '', '', '', '', '', '', '','','','', flt(openg_main_acc_head) + flt(openg_add_acc_head) + flt(openg_cvd_acc_head), flt(openg_edu_cess_acc_head), flt(openg_sh_edu_cess_acc_head),''])
-elif 'CAPITAL' in filter_values['report']:
-  out.append(['Opening Balance of Duty in Credit', '', '', '', '', '', '', '', '', '', '', '', '', '', '', flt(openg_main_acc_head) + flt(openg_add_acc_head) , flt(openg_edu_cess_acc_head), flt(openg_sh_edu_cess_acc_head)])
-out += res
-#if 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 click on 'Export' to open in a spreadsheet")
-#  raise Exception
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.sql b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.sql
deleted file mode 100644
index 6064fe4..0000000
--- a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.sql
+++ /dev/null
@@ -1,31 +0,0 @@
-SELECT t1.posting_date, t1.bill_no, t1.bill_date, t1.range, t1.name, SUM(CASE WHEN t2.account_head like '%(main_acc_head)s%' THEN t2.tax_amount ELSE 0.00 END),  SUM(CASE WHEN t2.account_head like '%(add_acc_head)s%' THEN t2.tax_amount ELSE 0.00 END),  SUM(CASE WHEN t2.account_head like '%(cvd_acc_head)s%' THEN t2.tax_amount ELSE 0.00 END),  SUM(CASE WHEN t2.account_head like '%(edu_cess_acc_head)s' THEN t2.tax_amount ELSE 0.00 END),  SUM(CASE WHEN t2.account_head like '%(sh_edu_cess_acc_head)s' THEN t2.tax_amount ELSE 0.00 END), t1.`remarks`
- FROM `tabPurchase Receipt` t1, `tabPurchase Tax Detail` t2
- WHERE t2.parent = t1.name
- AND t2.parent = 'Purchase Reciept'
- AND (t2.account_head LIKE '%(main_acc_head)s' and '%(main_acc_head)s%%' or '~~~~'
- OR t2.account_head LIKE '%(add_acc_head)s' and '%(add_acc_head)s%%' or '~~~~'
- OR t2.account_head LIKE '%(cvd_acc_head)s' and '%(cvd_acc_head)s%%' or '~~~~'
- OR t2.account_head LIKE '%(edu_cess_acc_head)s' and '%(edu_cess_acc_head)s%%' or '~~~~'
- OR t2.account_head LIKE '%(sh_edu_cess_acc_head)s%' and '%(sh_edu_cess_acc_head)s%%' or '~~~~')
- AND t1.`posting_date` >= '%(posting_date)s'
- AND t1.`posting_date` <= '%(posting_date1)s'
- AND t1.docstatus =1
- GROUP BY t1.`name`
-
-UNION
-
-SELECT t1.posting_date, t1.bill_no, t1.bill_date, '' AS 'Range', t1.name, SUM(CASE WHEN t2.account like '%(main_acc_head)s%' THEN t2.debit ELSE 0.00 END),  SUM(CASE WHEN t2.account like '%(add_acc_head)s%' THEN t2.debit ELSE 0.00 END),  SUM(CASE WHEN t2.account like '%(cvd_acc_head)s%' THEN t2.debit ELSE 0.00 END),  SUM(CASE WHEN t2.account like '%(edu_cess_acc_head)s' THEN t2.debit ELSE 0.00 END),  SUM(CASE WHEN t2.account like '%(sh_edu_cess_acc_head)s' THEN t2.debit ELSE 0.00 END), t1.`remark`
- FROM `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2
- WHERE (t2.debit is not NULL OR t2.debit != '')
- AND t2.debit > 0
- AND t2.parent = t1.name
- AND (t2.account LIKE '%(main_acc_head)s' and '%(main_acc_head)s%%' or '~~~~'
- OR t2.account LIKE '%(add_acc_head)s' and '%(add_acc_head)s%%' or '~~~~'
- OR t2.account LIKE '%(cvd_acc_head)s' and '%(cvd_acc_head)s%%' or '~~~~'
- OR t2.account LIKE '%(edu_cess_acc_head)s' and '%(edu_cess_acc_head)s%%' or '~~~~'
- OR t2.account LIKE '%(sh_edu_cess_acc_head)s%' and '%(sh_edu_cess_acc_head)s%%' or '~~~~') AND t1.`posting_date` >= '%(posting_date)s'
- AND t1.`posting_date` <= '%(posting_date1)s'
- AND t1.docstatus =1
- GROUP BY t1.`name`
-
-ORDER BY `posting_date`,`name`
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.txt b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.txt
deleted file mode 100644
index 806738c..0000000
--- a/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/cenvat_credit___input_or_capital_goods.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, cenvat_credit_-_input_or_capital_goods
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-11-01 10:56:14',
-		'docstatus': 0,
-		'modified': '2010-10-29 16:42:14',
-		'modified_by': 'Administrator',
-		'owner': 'jai@webnotestech.com'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'criteria_name': 'Cenvat Credit - Input or Capital Goods',
-		'dis_filters': 'fiscal_year',
-		'doc_type': 'Journal Voucher Detail',
-		'doctype': 'Search Criteria',
-		'filters': "{'Journal Voucher\x01Submitted':1,'Journal Voucher\x01Voucher Type':'','Journal Voucher\x01Is Opening':'','Journal Voucher\x01Fiscal Year':'','Journal Voucher\x01Company':'','Journal Voucher\x01TDS Applicable':'','Journal Voucher\x01TDS Category':'','Sales Invoice\x01Aging Based On':'','Purchase Invoice\x01Aging Based On':'Transaction Date','Journal Voucher Detail\x01Report Type':'CENVAT CREDIT ACCOUNT - INPUTS (R.G.23 A - PART II)'}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'page_len': 50,
-		'parent_doc_type': 'Journal Voucher',
-		'sort_by': 'ID',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, cenvat_credit_-_input_or_capital_goods
-	{
-		'doctype': 'Search Criteria',
-		'name': 'cenvat_credit_-_input_or_capital_goods'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/collection_report/collection_report.txt b/erpnext/accounts/search_criteria/collection_report/collection_report.txt
index 19d6491..dd78dfc 100644
--- a/erpnext/accounts/search_criteria/collection_report/collection_report.txt
+++ b/erpnext/accounts/search_criteria/collection_report/collection_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt b/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt
index a9dd156..2aed507 100644
--- a/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt
+++ b/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'swarnalata@webnotestech.com'
 	},
diff --git a/erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.txt b/erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.txt
index 2b6398c..9a7565c 100644
--- a/erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.txt
+++ b/erpnext/accounts/search_criteria/creditors_ledger/creditors_ledger.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'nabin@webnotestech.com'
 	},
diff --git a/erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.txt b/erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.txt
index 04e9132..0991097 100644
--- a/erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.txt
+++ b/erpnext/accounts/search_criteria/debtors_ledger/debtors_ledger.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'nabin@webnotestech.com'
 	},
diff --git a/erpnext/accounts/search_criteria/general_ledger/general_ledger.txt b/erpnext/accounts/search_criteria/general_ledger/general_ledger.txt
index 26468b0..5cf15ea 100644
--- a/erpnext/accounts/search_criteria/general_ledger/general_ledger.txt
+++ b/erpnext/accounts/search_criteria/general_ledger/general_ledger.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt b/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt
index bb4289d..206985e 100644
--- a/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt
+++ b/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt b/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt
index 4614263..5393e00 100644
--- a/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt
+++ b/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/search_criteria/lease_agreement_list/__init__.py b/erpnext/accounts/search_criteria/lease_agreement_list/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/lease_agreement_list/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.js b/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.js
deleted file mode 100644
index d25139c..0000000
--- a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-	this.hide_all_filters();
-
-	this.add_filter({fieldname:'date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'GL Entry', 'in_first_page':1});
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Date'].df['report_default']=sys_defaults.year_start_date;
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-}
-
-$dh(this.mytabs.tabs['More Filters']);
-$dh(this.mytabs.tabs['Select Columns']);
diff --git a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.py b/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.py
deleted file mode 100644
index 68f0167..0000000
--- a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-data =[
-		['Agreement No.','Data','100px',''],
-		['Lessee Name','Data','300px',''],
-		['Amount','Currency','120px','']
-	]
-
-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
-
diff --git a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.sql b/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.sql
deleted file mode 100644
index 6097b2f..0000000
--- a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-select la.name, la.account, la.invoice_amount
-from `tabLease Agreement` la
-where start_date between '%(date)s' and '%(date1)s' order by la.name
diff --git a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt b/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt
deleted file mode 100644
index 5e84916..0000000
--- a/erpnext/accounts/search_criteria/lease_agreement_list/lease_agreement_list.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Search Criteria, lease_agreement_list
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-07-27 16:17:04',
-		'docstatus': 0,
-		'modified': '2011-07-27 16:17:04',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Aging Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Lease Agreement List',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lease_agreement_list
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lease_agreement_list'
-	}
-]
diff --git a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.js b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.js
deleted file mode 100644
index 7d8152b..0000000
--- a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-	this.hide_all_filters();
-
-	this.add_filter({fieldname:'date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'GL Entry', 'in_first_page':1});
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Date'].df['report_default']=dateutil.obj_to_str(new Date());
-//	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df.filter_hide=1;
-
-}
-
-$dh(this.mytabs.tabs['More Filters']);
-$dh(this.mytabs.tabs['Select Columns']);
diff --git a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.py b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.py
deleted file mode 100644
index 692f6f8..0000000
--- a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-data =[
-		['Month','Data','100px',''],
-		['Year','Data','100px',''],
-		['Amount','Currency','120px','']
-	]
-
-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
-
diff --git a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.sql b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.sql
deleted file mode 100644
index 564a3fd..0000000
--- a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-select date_format(due_date,'%M') as mnt,year(due_date),sum(amount)
-
-from `tabLease Agreement` la,`tabLease Installment` lai
-
-where la.name=lai.parent and (lai.cheque_date is null or lai.cheque_date > '%(date)s')
-
-group by date_format(due_date,'%M-%Y')
-
-order by year(due_date),month(due_date)
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt
deleted file mode 100644
index 05a0f70..0000000
--- a/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/lease_monthly_future_installment_inflows.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Search Criteria, lease_monthly_future_installment_inflows
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-08-29 13:45:35',
-		'docstatus': 0,
-		'modified': '2011-08-29 13:45:35',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Aging Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Lease Monthly Future Installment Inflows',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lease_monthly_future_installment_inflows
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lease_monthly_future_installment_inflows'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/lease_over_due_list/__init__.py b/erpnext/accounts/search_criteria/lease_over_due_list/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/lease_over_due_list/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.js b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.js
deleted file mode 100644
index 7d8152b..0000000
--- a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-	this.hide_all_filters();
-
-	this.add_filter({fieldname:'date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'GL Entry', 'in_first_page':1});
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Date'].df['report_default']=dateutil.obj_to_str(new Date());
-//	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df.filter_hide=1;
-
-}
-
-$dh(this.mytabs.tabs['More Filters']);
-$dh(this.mytabs.tabs['Select Columns']);
diff --git a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.py b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.py
deleted file mode 100644
index debb3ca..0000000
--- a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-data =[
-		['Agreement No.','Data','100px',''],
-		['Lessee Name','Data','300px',''],
-		['Amount','Currency','120px',''],
-		['Age','Data','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
-
diff --git a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.sql b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.sql
deleted file mode 100644
index 1789f7e..0000000
--- a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.sql
+++ /dev/null
@@ -1,7 +0,0 @@
-select la.name,la.account,lai.amount,cast('%(date)s' as date)-due_date as age
-
-from `tabLease Agreement` la,`tabLease Installment` lai
-
-where la.name=lai.parent and lai.due_date<cast('%(date)s' as date) and (lai.cheque_date is null or lai.cheque_date > cast('%(date)s' as date))
-
-order by cast('%(date)s' as date)-due_date desc
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.txt b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.txt
deleted file mode 100644
index d145442..0000000
--- a/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Search Criteria, lease_over_due_list
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-08-29 13:45:35',
-		'docstatus': 0,
-		'modified': '2011-08-29 13:45:35',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Aging Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Lease Over Due List',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lease_over_due_list
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lease_over_due_list'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/lease_overdue_age_wise/__init__.py b/erpnext/accounts/search_criteria/lease_overdue_age_wise/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/lease_overdue_age_wise/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.js b/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.js
deleted file mode 100644
index 7d8152b..0000000
--- a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-	this.hide_all_filters();
-
-	this.add_filter({fieldname:'date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'GL Entry', 'in_first_page':1});
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Date'].df['report_default']=dateutil.obj_to_str(new Date());
-//	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df.filter_hide=1;
-
-}
-
-$dh(this.mytabs.tabs['More Filters']);
-$dh(this.mytabs.tabs['Select Columns']);
diff --git a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.py b/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.py
deleted file mode 100644
index 0723760..0000000
--- a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-data =[
-		['Lessee Name','Data','300px',''],
-		['Below 30 Days','Currency','120px',''],
-		['Below 90 Days','Currency','120px',''],
-		['Below 180 Days','Currency','120px',''],
-		['Below 360 Days','Currency','120px',''],
-		['Above 360 Days','Currency','120px',''],
-	]
-
-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
-
diff --git a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.sql b/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.sql
deleted file mode 100644
index 2e6912e..0000000
--- a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-select account,sum(od_30)as od_30,sum(od_90)as od_90,sum(od_180)as od_180,sum(od_360)as od_360,sum(od_1yr)as od_1yr from
-(
-	select account,case when age<=30 then amount end as od_30,case when age between 31 and 90 then amount end as od_90,case when age between 91 and 180 then amount end as od_180,case when age between 181 and 360 then amount end as od_360,case when age>360 then amount end as od_1yr from
-	(
-		select la.account,lai.amount,cast('%(date)s' as date)-due_date as age
-		from `tabLease Agreement` la,`tabLease Installment` lai
-		where la.name=lai.parent and lai.due_date<'%(date)s' and (lai.cheque_date is null or lai.cheque_date > '%(date)s')
-	)a
-)b group by account order by account
diff --git a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt b/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt
deleted file mode 100644
index 1c734a8..0000000
--- a/erpnext/accounts/search_criteria/lease_overdue_age_wise/lease_overdue_age_wise.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Search Criteria, lease_overdue_age_wise
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-08-29 13:45:35',
-		'docstatus': 0,
-		'modified': '2011-08-29 13:45:35',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Aging Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Lease Overdue Age Wise',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lease_overdue_age_wise
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lease_overdue_age_wise'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/__init__.py b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.js b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.js
deleted file mode 100644
index d25139c..0000000
--- a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-	this.hide_all_filters();
-
-	this.add_filter({fieldname:'date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'GL Entry', 'in_first_page':1});
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Date'].df['report_default']=sys_defaults.year_start_date;
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-}
-
-$dh(this.mytabs.tabs['More Filters']);
-$dh(this.mytabs.tabs['Select Columns']);
diff --git a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.py b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.py
deleted file mode 100644
index 692f6f8..0000000
--- a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-data =[
-		['Month','Data','100px',''],
-		['Year','Data','100px',''],
-		['Amount','Currency','120px','']
-	]
-
-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
-
diff --git a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.sql b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.sql
deleted file mode 100644
index cdd48b8..0000000
--- a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.sql
+++ /dev/null
@@ -1,5 +0,0 @@
-SELECT date_format(gl.posting_date,'%M'),year(gl.posting_date),sum(gl.credit) as amount
-FROM `tabGL Entry` gl, `tabAccount` a
-WHERE gl.account=a.name and a.master_type='Customer' and gl.credit>0 and gl.posting_date between '%(date)s' and '%(date1)s'
-GROUP BY month(gl.posting_date),year(gl.posting_date)
-ORDER BY year(gl.posting_date),month(gl.posting_date)
diff --git a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.txt b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.txt
deleted file mode 100644
index e6da15c..0000000
--- a/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/lease_receipt_summary_month_wise.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Search Criteria, lease_receipt_summary_month_wise
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-07-27 16:17:04',
-		'docstatus': 0,
-		'modified': '2011-07-27 16:17:04',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Aging Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Lease Receipt Summary Month Wise',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lease_receipt_summary_month_wise
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lease_receipt_summary_month_wise'
-	}
-]
diff --git a/erpnext/accounts/search_criteria/lease_receipts_client_wise/__init__.py b/erpnext/accounts/search_criteria/lease_receipts_client_wise/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/lease_receipts_client_wise/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.js b/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.js
deleted file mode 100644
index d25139c..0000000
--- a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-	this.hide_all_filters();
-
-	this.add_filter({fieldname:'date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'GL Entry', 'in_first_page':1});
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Date'].df['report_default']=sys_defaults.year_start_date;
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-}
-
-$dh(this.mytabs.tabs['More Filters']);
-$dh(this.mytabs.tabs['Select Columns']);
diff --git a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.py b/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.py
deleted file mode 100644
index 2d13808..0000000
--- a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-data =[
-		['Lessee Name','Data','300px',''],
-		['Amount','Currency','120px','']
-	]
-
-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
-
diff --git a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.sql b/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.sql
deleted file mode 100644
index af49c81..0000000
--- a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.sql
+++ /dev/null
@@ -1,5 +0,0 @@
-SELECT gl.account,sum(gl.credit) as amount
-FROM `tabGL Entry` gl, `tabAccount` a
-WHERE gl.account=a.name and a.master_type='Customer' and gl.posting_date between '%(date)s' and '%(date1)s' and ifnull(gl.is_cancelled, 'No') = 'No'
-GROUP BY gl.account
-ORDER BY posting_date
diff --git a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt b/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt
deleted file mode 100644
index 71c9b0e..0000000
--- a/erpnext/accounts/search_criteria/lease_receipts_client_wise/lease_receipts_client_wise.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-# Search Criteria, lease_receipts_client_wise
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-08-29 13:45:36',
-		'docstatus': 0,
-		'modified': '2011-08-29 13:45:36',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Aging Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Lease Receipts Client Wise',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'page_len': 50,
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lease_receipts_client_wise
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lease_receipts_client_wise'
-	}
-]
diff --git a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js
deleted file mode 100644
index 7d8152b..0000000
--- a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-	this.hide_all_filters();
-
-	this.add_filter({fieldname:'date', label:'Date', fieldtype:'Date', options:'',ignore : 1, parent:'GL Entry', 'in_first_page':1});
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Date'].df['report_default']=dateutil.obj_to_str(new Date());
-//	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df['report_default']=dateutil.obj_to_str(new Date());
-
-	this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Date'].df.filter_hide=1;
-
-}
-
-$dh(this.mytabs.tabs['More Filters']);
-$dh(this.mytabs.tabs['Select Columns']);
diff --git a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py
deleted file mode 100644
index 8c1842a..0000000
--- a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-data =[
-		['Year','Data','100px',''],
-		['Amount','Currency','120px','']
-	]
-
-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
-
diff --git a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql
deleted file mode 100644
index ec6c816..0000000
--- a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-select year(date_sub(due_date,interval 6 MONTH)) as yr,sum(amount)
-
-from `tabLease Agreement` la,`tabLease Installment` lai
-
-where la.name=lai.parent and (lai.cheque_date is null or lai.cheque_date > '%(date)s')
-
-group by year(date_sub(due_date,interval 6 MONTH))
-
-order by yr
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt
deleted file mode 100644
index 0969796..0000000
--- a/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Search Criteria, lease_yearly_future_installment_inflows
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2011-08-29 13:45:36',
-		'docstatus': 0,
-		'modified': '2011-08-29 13:45:36',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'GL Entry\x01ID,GL Entry\x01Owner,GL Entry\x01Posting Date,GL Entry\x01Aging Date,GL Entry\x01Account,GL Entry\x01Cost Center,GL Entry\x01Against,GL Entry\x01Against Voucher,GL Entry\x01Voucher Type,GL Entry\x01Voucher No,GL Entry\x01Remarks,GL Entry\x01Is Cancelled,GL Entry\x01Is Opening,GL Entry\x01Fiscal Year,GL Entry\x01Company',
-		'criteria_name': 'Lease Yearly Future Installment Inflows',
-		'doc_type': 'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': "{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':'','GL Entry\x01Fiscal Year':''}",
-		'module': 'Accounts',
-		'name': '__common__',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, lease_yearly_future_installment_inflows
-	{
-		'doctype': 'Search Criteria',
-		'name': 'lease_yearly_future_installment_inflows'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/__init__.py b/erpnext/accounts/search_criteria/monthly_ledger_summary_report/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.js b/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.js
deleted file mode 100644
index 2fc1c9c..0000000
--- a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  flds = ['ID','Owner','Cost Center','From Posting Date', 'To Posting Date', 'Against Voucher','Voucher Type','Voucher No','Is Cancelled','Is Opening','Remarks', 'From Aging Date', 'To Aging Date', 'Company']
-  for(i=0;i<flds.length;i++){
-    this.filter_fields_dict['GL Entry'+FILTER_SEP +flds[i]].df.filter_hide = 1;
-  }
-  this.filter_fields_dict['GL Entry'+FILTER_SEP +'Fiscal Year'].df['report_default']=sys_defaults.fiscal_year;
-  this.filter_fields_dict['GL Entry'+FILTER_SEP +'Fiscal Year'].df.in_first_page = 1;
-}
-
-this.mytabs.items['Select Columns'].hide();
-this.mytabs.items['More Filters'].hide();
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.py b/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.py
deleted file mode 100644
index d723f70..0000000
--- a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-if not filter_values['account']:
-  msgprint("Please Enter filter value for Account")
-  raise Exception
-
-colwidths[col_idx['Fiscal Month']] = '120px'
-colwidths[col_idx['Debit']] = '120px'
-colwidths[col_idx['Credit']] = '120px'
-
-
-month_lst={'1':'Jan','2':'Feb','3':'Mar','4':'Apr','5':'May','6':'Jun','7':'Jul','8':'Aug','9':'Sept','10':'Oct','11':'Nov','12':'Dec'}
-for r in res:
-  mnt = '%s'%r[col_idx['Fiscal Month']]
-  r[col_idx['Fiscal Month']]=month_lst[mnt]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.txt b/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.txt
deleted file mode 100644
index 3247aea..0000000
--- a/erpnext/accounts/search_criteria/monthly_ledger_summary_report/monthly_ledger_summary_report.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-# Search Criteria, monthly_ledger_summary_report
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-03-30 14:50:43',
-		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_col': u"month(`tabGL Entry`.posting_date) AS 'Fiscal Month'\nsum(`tabGL Entry`.debit) AS 'Debit'\nsum(`tabGL Entry`.credit) AS 'Credit'",
-		'add_cond': u'(`tabGL Entry`.debit > 0 or `tabGL Entry`.credit > 0)',
-		'criteria_name': u'Monthly Ledger Summary Report',
-		'dis_filters': u'company',
-		'doc_type': u'GL Entry',
-		'doctype': 'Search Criteria',
-		'filters': u"{'GL Entry\x01Voucher Type':'','GL Entry\x01Is Cancelled':'','GL Entry\x01Is Opening':''}",
-		'group_by': u'month(`tabGL Entry`.posting_date)',
-		'module': u'Accounts',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': u'`Fiscal Month`',
-		'sort_order': u'ASC',
-		'standard': u'Yes'
-	},
-
-	# Search Criteria, monthly_ledger_summary_report
-	{
-		'doctype': 'Search Criteria',
-		'name': u'monthly_ledger_summary_report'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/payment_receipt_report/payment_receipt_report.txt b/erpnext/accounts/search_criteria/payment_receipt_report/payment_receipt_report.txt
index 858fec2..d1ef6d1 100644
--- a/erpnext/accounts/search_criteria/payment_receipt_report/payment_receipt_report.txt
+++ b/erpnext/accounts/search_criteria/payment_receipt_report/payment_receipt_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'jai@webnotestech.com'
 	},
diff --git a/erpnext/accounts/search_criteria/payment_report/__init__.py b/erpnext/accounts/search_criteria/payment_report/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/search_criteria/payment_report/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/search_criteria/payment_report/payment_report.js b/erpnext/accounts/search_criteria/payment_report/payment_report.js
deleted file mode 100644
index 04ea91e..0000000
--- a/erpnext/accounts/search_criteria/payment_report/payment_report.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-report.customize_filters = function() {
-  this.hide_all_filters();
-
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Voucher Type'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Is Opening'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Company'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df.filter_hide = 0;
-  this.filter_fields_dict['Journal Voucher Detail'+FILTER_SEP +'Account'].df.filter_hide = 0;
-
-  this.add_filter({fieldname:'range_1', label:'Range 1', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
-  this.add_filter({fieldname:'range_2', label:'Range 2', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
-  this.add_filter({fieldname:'range_3', label:'Range 3', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
-  this.add_filter({fieldname:'range_4', label:'Range 4', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
-
-  this.add_filter({fieldname:'aging_based_on', label:'Aging Based On', fieldtype:'Select', options:NEWLINE+'Transaction Date'+NEWLINE+'Aging Date',ignore : 1, parent:'Purchase Invoice', 'report_default':'Aging Date'});  
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df.in_first_page = 1;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df.in_first_page = 1;
-  this.filter_fields_dict['Journal Voucher Detail'+FILTER_SEP +'Account'].df.in_first_page = 1;
-
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'From Posting Date'].df['report_default'] = sys_defaults.year_start_date;
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
-  this.filter_fields_dict['Journal Voucher'+FILTER_SEP +'Company'].df['report_default']=sys_defaults.company;
-
-}
-this.mytabs.items['Select Columns'].hide()
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/payment_report/payment_report.py b/erpnext/accounts/search_criteria/payment_report/payment_report.py
deleted file mode 100644
index 404b883..0000000
--- a/erpnext/accounts/search_criteria/payment_report/payment_report.py
+++ /dev/null
@@ -1,105 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-#check mendatory
-if not filter_values.get('posting_date') or not filter_values.get('posting_date1'):
-  msgprint("Please select From Posting Date and To Posting Date in 'Set Filters' section")
-  raise Exception
-else:
-  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 'Set Filters' section")
-  raise Exception
-  
-# 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]
-
-
-# Add columns
-# -----------
-row_list = [['ID','Data','150px',''],
-            ['Account','Data','150px',''],
-            ['Credit','Data','150px',''],
-            ['Debit','Data','150px',''],
-            ['Against Payable','Data','150px',''],
-            ['Is Advance','Data','150px',''],
-            ['Transaction Date','Date','150px',''],
-            ['Aging Date','Date','150px',''],
-            ['Cheque No','Data','100px',''],
-            ['Cheque Date','Date','150px',''],        
-            ['Supplier Type','Data','150px',''],
-            ['Remark','Data','250px',''],
-            ['Advance','Data','250px',''],
-            ['PV Transaction Date','Date','150px',''],
-            ['PV Aging Date','Date','150px',''],
-            ['Age (Days)','Data','100px',''],
-            ['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 r in row_list:
-  colnames.append(r[0])
-  coltypes.append(r[1])
-  colwidths.append(r[2])
-  coloptions.append(r[3])
-  col_idx[r[0]] = len(colnames)-1
-  
-
-for r in res:
-  if r[col_idx['Against Payable']]:
-    dt=sql("select date(modified), aging_date from `tabPurchase Invoice` where name='%s'"%r[col_idx['Against Payable']])
-    r.append('')
-    r.append(dt and cstr(dt[0][0]) or '')
-    r.append(dt and cstr(dt[0][1]) or '')
-  else:
-    r.append(r[col_idx['Debit']])
-    r.append('')
-    r.append('')
-
-  # Aging Credit Amount
-  val_l1 = val_l2 = val_l3 = val_l4 = val_l5_above = diff = 0
-
-  if r[col_idx['Against Payable']]:
-    amt = flt(r[col_idx['Debit']]) or (-1)*flt(r[col_idx['Credit']])
-
-    if aging_based_on == 'Transaction Date' and r[col_idx['PV Transaction Date']]:
-      diff = (getdate(r[col_idx['Transaction Date']]) - getdate(r[col_idx['PV Transaction Date']])).days
-    elif aging_based_on == 'Aging Date' and r[col_idx['PV Aging Date']]:
-      diff = (getdate(r[col_idx['Aging Date']]) - getdate(r[col_idx['PV Aging Date']])).days
-    
-    if diff < cint(filter_values['range_1']):
-      val_l1 = amt
-    if diff >= cint(filter_values['range_1']) and diff < cint(filter_values['range_2']):
-      val_l2 = amt
-    if diff >= cint(filter_values['range_2']) and diff < cint(filter_values['range_3']):
-      val_l3 = amt
-    if diff >= cint(filter_values['range_3']) and diff < cint(filter_values['range_4']):
-      val_l4 = amt
-    if diff >= cint(filter_values['range_4']):
-      val_l5_above = amt
-
-  r.append(diff)
-  r.append(val_l1)
-  r.append(val_l2)
-  r.append(val_l3)
-  r.append(val_l4)
-  r.append(val_l5_above)
diff --git a/erpnext/accounts/search_criteria/payment_report/payment_report.sql b/erpnext/accounts/search_criteria/payment_report/payment_report.sql
deleted file mode 100644
index dec4f4e..0000000
--- a/erpnext/accounts/search_criteria/payment_report/payment_report.sql
+++ /dev/null
@@ -1,12 +0,0 @@
-SELECT `tabJournal Voucher`.`name`,`tabJournal Voucher Detail`.`account`,`tabJournal Voucher Detail`.`credit`,`tabJournal Voucher Detail`.`debit`,`tabJournal Voucher Detail`.`against_voucher`,`tabJournal Voucher Detail`.`is_advance`,`tabJournal Voucher`.`voucher_date`,`tabJournal Voucher`.`aging_date`,`tabJournal Voucher`.`cheque_no`,`tabJournal Voucher`.`cheque_date`,`tabSupplier`.`supplier_type`,`tabJournal Voucher`.`remark`
- FROM `tabJournal Voucher Detail`,`tabJournal Voucher`,`tabAccount`,`tabSupplier`
- WHERE `tabJournal Voucher`.docstatus=1
- AND `tabJournal Voucher`.`posting_date`>='%(posting_date)s'
- AND `tabJournal Voucher`.`posting_date`<='%(posting_date1)s'
- AND `tabJournal Voucher`.`company` LIKE '%(company)s%%'
- AND `tabJournal Voucher Detail`.`account` LIKE '%(account)s%%'
- AND `tabAccount`.`master_type` = 'Supplier'
- AND `tabAccount`.`account_name` = `tabSupplier`.`name`
- AND `tabJournal Voucher Detail`.`account` = `tabAccount`.`name`
- AND `tabJournal Voucher Detail`.`parent` = `tabJournal Voucher`.`name`
- ORDER BY `tabJournal Voucher`.`name`
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/payment_report/payment_report.txt b/erpnext/accounts/search_criteria/payment_report/payment_report.txt
deleted file mode 100644
index 2c22090..0000000
--- a/erpnext/accounts/search_criteria/payment_report/payment_report.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-# Search Criteria, payment_report
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-03-30 14:50:44',
-		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': u'Journal Voucher\x01ID,Journal Voucher\x01Posting Date,Journal Voucher\x01Company,Journal Voucher\x01Cheque No,Journal Voucher\x01Cheque Date,Journal Voucher Detail\x01Account,Journal Voucher Detail\x01Debit,Journal Voucher Detail\x01Against Payable,Journal Voucher Detail\x01Is Advance',
-		'criteria_name': u'Payment Report',
-		'doc_type': u'Journal Voucher Detail',
-		'doctype': 'Search Criteria',
-		'filters': u"{'Journal Voucher\x01Submitted':1,'Journal Voucher\x01Voucher Type':'','Journal Voucher\x01Is Opening':'','Journal Voucher\x01Company':'','Journal Voucher\x01TDS Applicable':'','Journal Voucher\x01TDS Category':'','GL Entry\x01Range 1':'30','GL Entry\x01Range 2':'45','GL Entry\x01Range 3':'60','GL Entry\x01Range 4':'90','Sales Invoice\x01Aging Based On':'','Purchase Invoice\x01Aging Based On':''}",
-		'module': u'Accounts',
-		'name': '__common__',
-		'parent_doc_type': u'Journal Voucher',
-		'sort_by': u'`tabJournal Voucher`.`aging_date`',
-		'sort_order': u'DESC',
-		'standard': u'Yes'
-	},
-
-	# Search Criteria, payment_report
-	{
-		'doctype': 'Search Criteria',
-		'name': u'payment_report'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.txt b/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.txt
index d0dae73..c8a4562 100644
--- a/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.txt
+++ b/erpnext/accounts/search_criteria/progressive_total_excise_duty/progressive_total_excise_duty.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'jai@webnotestech.com'
 	},
diff --git a/erpnext/accounts/search_criteria/purchase_register/purchase_register.txt b/erpnext/accounts/search_criteria/purchase_register/purchase_register.txt
index 451332b..cbc5c41 100644
--- a/erpnext/accounts/search_criteria/purchase_register/purchase_register.txt
+++ b/erpnext/accounts/search_criteria/purchase_register/purchase_register.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/search_criteria/sales_register/sales_register.txt b/erpnext/accounts/search_criteria/sales_register/sales_register.txt
index f21fa0c..e68cd57 100644
--- a/erpnext/accounts/search_criteria/sales_register/sales_register.txt
+++ b/erpnext/accounts/search_criteria/sales_register/sales_register.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.txt b/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.txt
index 73e5cb6..cccd8d3 100644
--- a/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.txt
+++ b/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/service_tax_credit_account___inputs.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'jai@webnotestech.com'
 	},
diff --git a/erpnext/accounts/search_criteria/tds_return/tds_return.txt b/erpnext/accounts/search_criteria/tds_return/tds_return.txt
index d89d303..743488d 100644
--- a/erpnext/accounts/search_criteria/tds_return/tds_return.txt
+++ b/erpnext/accounts/search_criteria/tds_return/tds_return.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt
index 0fddd22..d3b1065 100644
--- a/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt
+++ b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/accounts/search_criteria/trial_balance/trial_balance.txt b/erpnext/accounts/search_criteria/trial_balance/trial_balance.txt
index 16bac7c..63e7b49 100644
--- a/erpnext/accounts/search_criteria/trial_balance/trial_balance.txt
+++ b/erpnext/accounts/search_criteria/trial_balance/trial_balance.txt
@@ -3,33 +3,33 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-14 10:23:28',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2011-06-22 12:29:43',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-04-03 12:49:53',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all Search Criteria
 	{
-		'columns': 'Account\x01ID',
-		'criteria_name': 'Trial Balance',
-		'description': 'Trial Balance',
-		'dis_filters': 'transaction_date',
-		'doc_type': 'Account',
+		'columns': u'Account\x01ID',
+		'criteria_name': u'Trial Balance',
+		'description': u'Trial Balance',
+		'dis_filters': u'transaction_date',
+		'doc_type': u'Account',
 		'doctype': 'Search Criteria',
-		'filters': "{'Account\x01Group or Ledger':'Ledger','Account\x01Is PL Account':'','Account\x01Account Type':'','Account\x01Show Group Balance':''}",
-		'module': 'Accounts',
+		'filters': u"{'Account\x01Group or Ledger':'Ledger','Account\x01Is PL Account':'','Account\x01Account Type':'','Account\x01Show Group Balance':''}",
+		'module': u'Accounts',
 		'name': '__common__',
 		'page_len': 50,
-		'sort_by': '`tabAccount`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
+		'sort_by': u'`tabAccount`.`name`',
+		'sort_order': u'DESC',
+		'standard': u'Yes'
 	},
 
 	# Search Criteria, trial_balance
 	{
 		'doctype': 'Search Criteria',
-		'name': 'trial_balance'
+		'name': u'trial_balance'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt
index 729eefa..ac1cd4c 100644
--- a/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt
+++ b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt b/erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt
index 9166eeb..2842f8d 100644
--- a/erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt
+++ b/erpnext/analysis/search_criteria/monthly_transaction_summary/monthly_transaction_summary.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.txt b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.txt
index 857e25e..8ba19cf 100644
--- a/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.txt
+++ b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:45',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:45',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'saumil@webnotestech.com'
 	},
diff --git a/erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt b/erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt
index 4d8a395..c86f1e8 100644
--- a/erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt
+++ b/erpnext/analysis/search_criteria/yearly_transaction_summary/yearly_transaction_summary.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:45',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:45',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/buying/DocType Mapper/Purchase Request-Purchase Order/Purchase Request-Purchase Order.txt b/erpnext/buying/DocType Mapper/Purchase Request-Purchase Order/Purchase Request-Purchase Order.txt
index e3f5970..befcb8c 100644
--- a/erpnext/buying/DocType Mapper/Purchase Request-Purchase Order/Purchase Request-Purchase Order.txt
+++ b/erpnext/buying/DocType Mapper/Purchase Request-Purchase Order/Purchase Request-Purchase Order.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-20 12:33:34',
+		'creation': '2010-08-08 17:09:34',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/buying/DocType Mapper/Sales Order-Purchase Request/Sales Order-Purchase Request.txt b/erpnext/buying/DocType Mapper/Sales Order-Purchase Request/Sales Order-Purchase Request.txt
index 5cc46c3..6dc79e6 100755
--- a/erpnext/buying/DocType Mapper/Sales Order-Purchase Request/Sales Order-Purchase Request.txt
+++ b/erpnext/buying/DocType Mapper/Sales Order-Purchase Request/Sales Order-Purchase Request.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2011-05-06 12:42:44',
+		'creation': '2011-05-20 10:07:55',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.js b/erpnext/buying/doctype/purchase_common/purchase_common.js
index c165388..9b402ad 100644
--- a/erpnext/buying/doctype/purchase_common/purchase_common.js
+++ b/erpnext/buying/doctype/purchase_common/purchase_common.js
@@ -287,11 +287,11 @@
 
 // **************** RE-CALCULATE VALUES ***************************
 
-cur_frm.cscript['Re-Calculate Values'] = function(doc, cdt, cdn) {
-	cur_frm.cscript['Calculate Tax'](doc,cdt,cdn);
+cur_frm.cscript.recalculate_values = function(doc, cdt, cdn) {
+	cur_frm.cscript.calculate_tax(doc,cdt,cdn);
 }
 
-cur_frm.cscript['Calculate Tax'] = function(doc, cdt, cdn) {
+cur_frm.cscript.calculate_tax = function(doc, cdt, cdn) {
 	var other_fname	= cur_frm.cscript.other_fname;
 
 	var cl = getchildren('Purchase Taxes and Charges', doc.name, other_fname, doc.doctype);
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js
index ce84e2a..1505792 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.js
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.js
@@ -62,7 +62,7 @@
 	if(doc.docstatus == 1 && doc.status != 'Stopped'){
 		var ch = getchildren('Purchase Order Item',doc.name,'po_details');
 		var allow_billing = 0; var allow_receipt = 0;
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+		cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 
 		for(var i in ch){
 			if(ch[i].qty > ch[i].received_qty) allow_receipt = 1; 
@@ -159,7 +159,7 @@
 
 
 //========================= Get Last Purhase Rate =====================================
-cur_frm.cscript['Get Last Purchase Rate'] = function(doc, cdt, cdn){
+cur_frm.cscript.get_last_purchase_rate = function(doc, cdt, cdn){
 	$c_obj(make_doclist(doc.doctype, doc.name), 'get_last_purchase_rate', '', 
 			function(r, rt) { 
 				refresh_field(cur_frm.cscript.fname);
diff --git a/erpnext/buying/doctype/purchase_request/purchase_request.js b/erpnext/buying/doctype/purchase_request/purchase_request.js
index e385573..1cb597a 100644
--- a/erpnext/buying/doctype/purchase_request/purchase_request.js
+++ b/erpnext/buying/doctype/purchase_request/purchase_request.js
@@ -63,7 +63,7 @@
 			cur_frm.add_custom_button('Make Purchase Order', cur_frm.cscript['Make Purchase Order'])
 			cur_frm.add_custom_button('Stop ' + cur_frm.cscript.indent_doctype_label, cur_frm.cscript['Stop Purchase Requisition'])
 		}
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+		cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 	}
  
 	if(doc.docstatus == 1 && doc.status == 'Stopped')
diff --git a/erpnext/buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.txt b/erpnext/buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.txt
index 8592ebf..2b41033 100644
--- a/erpnext/buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.txt
+++ b/erpnext/buying/search_criteria/itemwise_purchase_details/itemwise_purchase_details.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.txt b/erpnext/buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.txt
index 71200a5..093544f 100644
--- a/erpnext/buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.txt
+++ b/erpnext/buying/search_criteria/itemwise_receipt_details/itemwise_receipt_details.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.txt b/erpnext/buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.txt
index 23bf68e..cbdcc5c 100644
--- a/erpnext/buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.txt
+++ b/erpnext/buying/search_criteria/pending_po_items_to_bill/pending_po_items_to_bill.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'dhanalekshmi@webnotestech.com'
 	},
diff --git a/erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt b/erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt
index 516bcd2..185e155 100644
--- a/erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt
+++ b/erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'dhanalekshmi@webnotestech.com'
 	},
diff --git a/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt b/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt
index 4294135..9009ccf 100644
--- a/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt
+++ b/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/search_criteria/bills_to_be_paid/__init__.py b/erpnext/home/search_criteria/bills_to_be_paid/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/bills_to_be_paid/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt b/erpnext/home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt
deleted file mode 100644
index 6fb5f7f..0000000
--- a/erpnext/home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, bills-to_be_paid
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-05-13 17:26:48',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': '`tabPurchase Invoice`.outstanding_amount!=0\n`tabPurchase Invoice`.docstatus=1',
-		'columns': 'Purchase Invoice\x01ID,Purchase Invoice\x01Voucher Date,Purchase Invoice\x01Due Date,Purchase Invoice\x01Credit To,Purchase Invoice\x01Bill Date,Purchase Invoice\x01Outstanding Amount',
-		'criteria_name': 'Bills-To be paid',
-		'doc_type': 'Purchase Invoice',
-		'doctype': 'Search Criteria',
-		'filters': "{'Purchase Invoice\x01Submitted':1,'Purchase Invoice\x01Is Opening':'','Purchase Invoice\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabPurchase Invoice`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, bills-to_be_paid
-	{
-		'doctype': 'Search Criteria',
-		'name': 'bills-to_be_paid'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/bills_to_be_submitted/__init__.py b/erpnext/home/search_criteria/bills_to_be_submitted/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/bills_to_be_submitted/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt b/erpnext/home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt
deleted file mode 100644
index 1b4f922..0000000
--- a/erpnext/home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-# Search Criteria, bills-to_be_submitted
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-05-03 12:24:43',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Purchase Invoice\x01ID,Purchase Invoice\x01Voucher Date,Purchase Invoice\x01Due Date,Purchase Invoice\x01Credit To,Purchase Invoice\x01Bill No,Purchase Invoice\x01Bill Date,Purchase Invoice\x01Outstanding Amount',
-		'criteria_name': 'Bills-To be submitted',
-		'doc_type': 'Purchase Invoice',
-		'doctype': 'Search Criteria',
-		'filters': "{'Purchase Invoice\x01Saved':1,'Purchase Invoice\x01Is Opening':'','Purchase Invoice\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabPurchase Invoice`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, bills-to_be_submitted
-	{
-		'doctype': 'Search Criteria',
-		'name': 'bills-to_be_submitted'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/delivery_note_to_be_billed/__init__.py b/erpnext/home/search_criteria/delivery_note_to_be_billed/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/delivery_note_to_be_billed/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt b/erpnext/home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt
deleted file mode 100644
index d96981c..0000000
--- a/erpnext/home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-# Search Criteria, delivery_note-to_be_billed
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-05-13 17:24:34',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'add_cond': 'ifnull(`tabDelivery Note`.per_billed, 0) < 100',
-		'columns': 'Delivery Note\x01ID,Delivery Note\x01Owner,Delivery Note\x01Customer Name,Delivery Note\x01% Billed,Delivery Note\x01Company',
-		'criteria_name': 'Delivery Note-To be billed',
-		'doc_type': 'Delivery Note',
-		'doctype': 'Search Criteria',
-		'filters': "{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'Submitted','Delivery Note\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabDelivery Note`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, delivery_note-to_be_billed
-	{
-		'doctype': 'Search Criteria',
-		'name': 'delivery_note-to_be_billed'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/delivery_note_to_be_submitted/__init__.py b/erpnext/home/search_criteria/delivery_note_to_be_submitted/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/home/search_criteria/delivery_note_to_be_submitted/__init__.py
+++ /dev/null
diff --git a/erpnext/home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt b/erpnext/home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt
deleted file mode 100644
index 85fd748..0000000
--- a/erpnext/home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-# Search Criteria, delivery_note-to_be_submitted
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:32',
-		'docstatus': 0,
-		'modified': '2010-05-13 17:17:58',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Search Criteria
-	{
-		'columns': 'Delivery Note\x01ID,Delivery Note\x01Owner,Delivery Note\x01Customer Name,Delivery Note\x01Posting Date,Delivery Note\x01Company',
-		'criteria_name': 'Delivery Note-To be submitted',
-		'doc_type': 'Delivery Note',
-		'doctype': 'Search Criteria',
-		'filters': "{'Delivery Note\x01Saved':1,'Delivery Note\x01Status':'Draft','Delivery Note\x01Fiscal Year':''}",
-		'module': 'Home',
-		'name': '__common__',
-		'page_len': 50,
-		'sort_by': '`tabDelivery Note`.`name`',
-		'sort_order': 'DESC',
-		'standard': 'Yes'
-	},
-
-	# Search Criteria, delivery_note-to_be_submitted
-	{
-		'doctype': 'Search Criteria',
-		'name': 'delivery_note-to_be_submitted'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/home/search_criteria/invoices_overdue/invoices_overdue.txt b/erpnext/home/search_criteria/invoices_overdue/invoices_overdue.txt
index 671c8f8..d56d1ac 100644
--- a/erpnext/home/search_criteria/invoices_overdue/invoices_overdue.txt
+++ b/erpnext/home/search_criteria/invoices_overdue/invoices_overdue.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt b/erpnext/home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt
index 7029d85..79fe9b1 100644
--- a/erpnext/home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt
+++ b/erpnext/home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt b/erpnext/home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt
index 245e1e8..de0c203 100644
--- a/erpnext/home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt
+++ b/erpnext/home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt b/erpnext/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt
index a0a46be..6367859 100644
--- a/erpnext/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt
+++ b/erpnext/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt b/erpnext/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt
index a7b0a2e..23ad2c9 100644
--- a/erpnext/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt
+++ b/erpnext/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt b/erpnext/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt
index 0b79093..d3f144d 100644
--- a/erpnext/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt
+++ b/erpnext/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt b/erpnext/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt
index 7ee6c0d..153b05f 100644
--- a/erpnext/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt
+++ b/erpnext/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/search_criteria/sales_order_overdue/sales_order_overdue.txt b/erpnext/home/search_criteria/sales_order_overdue/sales_order_overdue.txt
index 9122cdf..5de3931 100644
--- a/erpnext/home/search_criteria/sales_order_overdue/sales_order_overdue.txt
+++ b/erpnext/home/search_criteria/sales_order_overdue/sales_order_overdue.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt b/erpnext/home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt
index 515688a..cbe8dbc 100644
--- a/erpnext/home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt
+++ b/erpnext/home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt b/erpnext/home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt
index f46a031..2e85942 100644
--- a/erpnext/home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt
+++ b/erpnext/home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt b/erpnext/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt
index 80f25ae..fe5ea2f 100644
--- a/erpnext/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt
+++ b/erpnext/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt b/erpnext/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt
index 14aaea0..db8f03d 100644
--- a/erpnext/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt
+++ b/erpnext/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt b/erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt
index d0ba642..76cdeac 100644
--- a/erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt
+++ b/erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/home/search_criteria/task_open/task_open.txt b/erpnext/home/search_criteria/task_open/task_open.txt
index 01a76b6..3794afc 100644
--- a/erpnext/home/search_criteria/task_open/task_open.txt
+++ b/erpnext/home/search_criteria/task_open/task_open.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/hr/DocType Mapper/Appraisal Template-Appraisal/Appraisal Template-Appraisal.txt b/erpnext/hr/DocType Mapper/Appraisal Template-Appraisal/Appraisal Template-Appraisal.txt
index 11fd209..ec2bd06 100644
--- a/erpnext/hr/DocType Mapper/Appraisal Template-Appraisal/Appraisal Template-Appraisal.txt
+++ b/erpnext/hr/DocType Mapper/Appraisal Template-Appraisal/Appraisal Template-Appraisal.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-20 12:33:34',
+		'creation': '2010-09-01 15:47:59',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'ashwini@webnotestech.com'
 	},
diff --git a/erpnext/hr/doctype/appraisal/appraisal.js b/erpnext/hr/doctype/appraisal/appraisal.js
index 70b00a2..de9db7f 100644
--- a/erpnext/hr/doctype/appraisal/appraisal.js
+++ b/erpnext/hr/doctype/appraisal/appraisal.js
@@ -60,7 +60,7 @@
 	}
 }
 
-cur_frm.cscript['Calculate Total Score'] = function(doc,cdt,cdn){
+cur_frm.cscript.calculate_total_score = function(doc,cdt,cdn){
 	//get_server_fields('calculate_total','','',doc,cdt,cdn,1);
 	var val = getchildren('Appraisal Goal', doc.name, 'appraisal_details', doc.doctype);
 	var total =0;
@@ -71,7 +71,7 @@
 	refresh_field('total_score')
 }
 
-/*cur_frm.cscript['Declare Completed'] = function(doc,cdt,cdn){
+/*cur_frm.cscript.declare_completed = function(doc,cdt,cdn){
 	$c_obj(make_doclist(doc.doctype, doc.name),'declare_completed','', function(r,rt){
 		if(r.message){
 			refresh_field('Status');
@@ -80,7 +80,7 @@
 	});
 }*/
 
-cur_frm.cscript['Declare Completed'] = function(doc,cdt,cdn){
+cur_frm.cscript.declare_completed = function(doc,cdt,cdn){
 	var declare_completed_dialog;
 	
 	set_declare_completed_dialog = function() {
diff --git a/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.js b/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.js
index 6c141cc..4c17982 100644
--- a/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.js
+++ b/erpnext/hr/doctype/attendance_control_panel/attendance_control_panel.js
@@ -26,7 +26,7 @@
 }
 
 //download attendance template - csv file
-cur_frm.cscript['Get Template'] = function(doc,cdt,cdn){
+cur_frm.cscript.get_template = function(doc,cdt,cdn){
 
   if(doc.att_to_date && !doc.att_fr_date)
     alert("Please enter 'Attendance To Date'");
@@ -37,7 +37,7 @@
 }
 
 //---------------------------------------------------------
-cur_frm.cscript['Import'] = function(doc,cdt,cdn){
+cur_frm.cscript.import = function(doc,cdt,cdn){
   if(!doc.file_list){
     alert("Please upload attendance data CSV file");
   }
diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.js b/erpnext/hr/doctype/expense_claim/expense_claim.js
index f9ce8bd..de83647 100644
--- a/erpnext/hr/doctype/expense_claim/expense_claim.js
+++ b/erpnext/hr/doctype/expense_claim/expense_claim.js
@@ -90,7 +90,7 @@
   }
 }
 
-cur_frm.cscript['Calculate Total Amount'] = function(doc,cdt,cdn){
+cur_frm.cscript.calculate_total_amount = function(doc,cdt,cdn){
   cur_frm.cscript.calculate_total(doc,cdt,cdn);
 }
 cur_frm.cscript.claim_amount = function(doc,cdt,cdn){
@@ -102,7 +102,7 @@
 
 wn.require('erpnext/setup/doctype/notification_control/notification_control.js');
 
-cur_frm.cscript['Approve'] = function(doc,cdt,cdn){
+cur_frm.cscript.approve = function(doc,cdt,cdn){
 
   if(user == doc.exp_approver){
     var approve_voucher_dialog;
@@ -171,7 +171,7 @@
   }
 }
 
-cur_frm.cscript['Reject'] = function(doc,cdt,cdn){
+cur_frm.cscript.reject = function(doc,cdt,cdn){
   if(user == doc.exp_approver){
     var reject_voucher_dialog;
     
@@ -235,7 +235,7 @@
 
 //update follow up
 //=================================================================================
-cur_frm.cscript['Update Voucher'] = function(doc){
+cur_frm.cscript.update_voucher = function(doc){
 
   $c_obj(make_doclist(doc.doctype, doc.name),'update_voucher','',function(r, rt){
     refresh_field('expense_voucher_details');
diff --git a/erpnext/hr/doctype/it_checklist/it_checklist.js b/erpnext/hr/doctype/it_checklist/it_checklist.js
index a97ae65..6299303 100644
--- a/erpnext/hr/doctype/it_checklist/it_checklist.js
+++ b/erpnext/hr/doctype/it_checklist/it_checklist.js
@@ -57,7 +57,7 @@
 //---------------------------------------------------------
 //On done button click check for all values filled or not, and accordingly add records in child tables
 
-cur_frm.cscript['Done']=function(doc,cdt,cdn){
+cur_frm.cscript.done=function(doc,cdt,cdn){
   var mydoc=doc;
 
   if(doc.employee && doc.fiscal_year && doc.metro && doc.sr_citizen && doc.part_sr_citizen && doc.basic && doc.gross_income){
diff --git a/erpnext/hr/doctype/salary_manager/salary_manager.js b/erpnext/hr/doctype/salary_manager/salary_manager.js
index 91eac1a..d486110 100644
--- a/erpnext/hr/doctype/salary_manager/salary_manager.js
+++ b/erpnext/hr/doctype/salary_manager/salary_manager.js
@@ -23,7 +23,7 @@
 
 //Create salary slip
 //-----------------------
-cur_frm.cscript['Create Salary Slip'] = function(doc, cdt, cdn) {
+cur_frm.cscript.create_salary_slip = function(doc, cdt, cdn) {
 	var callback = function(r, rt){
 		if (r.message)
 			display_activity_log(r.message);
@@ -35,7 +35,7 @@
 
 //Submit salary slip
 //-----------------------
-cur_frm.cscript['Submit Salary Slip'] = function(doc, cdt, cdn) {
+cur_frm.cscript.submit_salary_slip = function(doc, cdt, cdn) {
 	var check = confirm("Do you really want to Submit all Salary Slip for month : " + doc.month+" and fiscal year : "+doc.fiscal_year);
 	if(check){
 		var callback = function(r, rt){
@@ -48,7 +48,7 @@
 
 // Make Bank Voucher
 //-----------------------
-cur_frm.cscript['Make Bank Voucher'] = function(doc,cdt,cdn){
+cur_frm.cscript.make_bank_voucher = function(doc,cdt,cdn){
   if(doc.month && doc.fiscal_year){
   	cur_frm.cscript.make_jv(doc, cdt, cdn);
   }
diff --git a/erpnext/hr/search_criteria/employee_appraisals/employee_appraisals.txt b/erpnext/hr/search_criteria/employee_appraisals/employee_appraisals.txt
index 5bc5289..c338770 100644
--- a/erpnext/hr/search_criteria/employee_appraisals/employee_appraisals.txt
+++ b/erpnext/hr/search_criteria/employee_appraisals/employee_appraisals.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'ashwini@webnotestech.com'
 	},
diff --git a/erpnext/hr/search_criteria/employee_information/employee_information.txt b/erpnext/hr/search_criteria/employee_information/employee_information.txt
index 9934f77..84cb448 100644
--- a/erpnext/hr/search_criteria/employee_information/employee_information.txt
+++ b/erpnext/hr/search_criteria/employee_information/employee_information.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'harshada@webnotestech.com'
 	},
diff --git a/erpnext/hr/search_criteria/employees_birthday/employees_birthday.txt b/erpnext/hr/search_criteria/employees_birthday/employees_birthday.txt
index 965d05a..42cfff2 100644
--- a/erpnext/hr/search_criteria/employees_birthday/employees_birthday.txt
+++ b/erpnext/hr/search_criteria/employees_birthday/employees_birthday.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/hr/search_criteria/employeewise_leave_transaction_details/employeewise_leave_transaction_details.txt b/erpnext/hr/search_criteria/employeewise_leave_transaction_details/employeewise_leave_transaction_details.txt
index 5a04479..8cea593 100644
--- a/erpnext/hr/search_criteria/employeewise_leave_transaction_details/employeewise_leave_transaction_details.txt
+++ b/erpnext/hr/search_criteria/employeewise_leave_transaction_details/employeewise_leave_transaction_details.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.txt b/erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.txt
index 9ad2e99..64a0eb2 100644
--- a/erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.txt
+++ b/erpnext/hr/search_criteria/monthly_attendance_details/monthly_attendance_details.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'harshada@webnotestech.com'
 	},
diff --git a/erpnext/hr/search_criteria/monthly_salary_register/monthly_salary_register.txt b/erpnext/hr/search_criteria/monthly_salary_register/monthly_salary_register.txt
index e829f64..4df2a0f 100644
--- a/erpnext/hr/search_criteria/monthly_salary_register/monthly_salary_register.txt
+++ b/erpnext/hr/search_criteria/monthly_salary_register/monthly_salary_register.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.txt b/erpnext/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.txt
index b8d0171..eee5bfa 100644
--- a/erpnext/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.txt
+++ b/erpnext/hr/search_criteria/new_or_left_employees_for_a_month/new_or_left_employees_for_a_month.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'harshada@webnotestech.com'
 	},
diff --git a/erpnext/hr/search_criteria/pending_appraisals/pending_appraisals.txt b/erpnext/hr/search_criteria/pending_appraisals/pending_appraisals.txt
index cf22c7a..b62b452 100644
--- a/erpnext/hr/search_criteria/pending_appraisals/pending_appraisals.txt
+++ b/erpnext/hr/search_criteria/pending_appraisals/pending_appraisals.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'ashwini@webnotestech.com'
 	},
diff --git a/erpnext/hr/search_criteria/salary_register/salary_register.txt b/erpnext/hr/search_criteria/salary_register/salary_register.txt
index e7f33f0..700423b 100644
--- a/erpnext/hr/search_criteria/salary_register/salary_register.txt
+++ b/erpnext/hr/search_criteria/salary_register/salary_register.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'harshada@webnotestech.com'
 	},
diff --git a/erpnext/hr/search_criteria/salary_slips/salary_slips.txt b/erpnext/hr/search_criteria/salary_slips/salary_slips.txt
index 960b226..9951896 100644
--- a/erpnext/hr/search_criteria/salary_slips/salary_slips.txt
+++ b/erpnext/hr/search_criteria/salary_slips/salary_slips.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/hr/search_criteria/salary_structure_details/salary_structure_details.txt b/erpnext/hr/search_criteria/salary_structure_details/salary_structure_details.txt
index 1b72656..a0e3438 100644
--- a/erpnext/hr/search_criteria/salary_structure_details/salary_structure_details.txt
+++ b/erpnext/hr/search_criteria/salary_structure_details/salary_structure_details.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/patches/jan_mar_2012/rename_dt.py b/erpnext/patches/jan_mar_2012/rename_dt.py
index 2984599..5d5e1bf 100644
--- a/erpnext/patches/jan_mar_2012/rename_dt.py
+++ b/erpnext/patches/jan_mar_2012/rename_dt.py
@@ -7,12 +7,13 @@
 from webnotes.utils import make_esc
 import os
 
-def execute1():
-	rendt = get_dt_to_be_renamed()
-	rename_dt_files(rendt)
-	#update_local_file_system()
-
 def execute():
+	#rendt = get_dt_to_be_renamed()
+	#rename_dt_files(rendt)
+	#update_local_file_system()
+	replace_labels_with_fieldnames()
+
+def execute1():
 	# delete dt, mapper
 	delete_dt_and_mapper()
 	
@@ -47,11 +48,10 @@
 		mod = '_'.join(webnotes.conn.sql("select module from `tabDocType Mapper` where name = %s", ren_mapper[d])[0][0].lower().split())
 		reload_doc(mod, 'DocType Mapper', ren_mapper[d])
 	
-	webnotes.conn.sql("DELETE FROM `tabSearch Criteria` WHERE name=''")
-	webnotes.conn.sql("""UPDATE `tabSearch Criteria` SET standard='No'
-			WHERE name IN ('appraisal_custom', 'bills-to_be_paid',
+	webnotes.conn.sql("""DELETE FROM `tabSearch Criteria`
+			WHERE name IN ('', 'bills-to_be_paid',
 			'bills-to_be_submitted', 'cenvat_credit_-_input_or_capital_goods',
-			'custom_test', 'custom_test1', 'delivery_note-to_be_billed',
+			'appraisal_custom', 'custom_test', 'custom_test1', 'delivery_note-to_be_billed',
 			'delivery_note-to_be_submitted', 'delivery_notes',
 			'employee_leave_balance_report', 'flat_bom_report',
 			'general_ledger1', 'lead_interested',
@@ -59,7 +59,13 @@
 			'projectwise_delivered_qty_and_costs_as_per_purchase_cost',
 			'projectwise_pending_qty_and_costs_as_per_purchase_cost', 'sales',
 			'sales_order1', 'sales_order_pending_items',
-			'territory_wise_sales_-_target_vs_actual_', 'test_report')""")
+			'territory_wise_sales_-_target_vs_actual_', 'test_report',
+			'lease_agreement_list', 'lease_monthly_future_installment_inflows',
+			'lease_over_due_list', 'lease_overdue_age_wise',
+			'lease_receipt_summary_month_wise', 'lease_receipts_client_wise',
+			'lease_yearly_future_installment_inflows',
+			'monthly_ledger_summary_report', 'payables_-_as_on_outstanding',
+			'payment_report')""")
 
 	# reload custom search criteria
 	for d in  webnotes.conn.sql("""select name, module from
@@ -102,7 +108,16 @@
 	for d in del_mapper:
 		delete_doc('DocType Mapper', d)
 
-	del_dt = ['Widget Control', 'Update Delivery Date Detail', 'Update Delivery Date', 'Tag Detail', 'Supplier rating', 'Stylesheet', 'Question Tag', 'PRO PP Detail', 'PRO Detail', 'PPW Detail', 'PF Detail', 'Personalize', 'Patch Util', 'Page Template', 'Module Def Role', 'Module Def Item', 'File Group', 'File Browser Control', 'File', 'Educational Qualifications', 'Earn Deduction Detail', 'DocType Property Setter', 'Contact Detail', 'BOM Report Detail', 'BOM Replace Utility Detail', 'BOM Replace Utility', 'Absent Days Detail', 'Activity Dashboard Control', 'Raw Materials Supplied', 'Setup Wizard Control', 'Company Group'] # docformat
+	del_dt = ['Widget Control', 'Update Delivery Date Detail', 'Update Delivery	Date',
+			'Tag Detail', 'Supplier rating', 'Stylesheet', 'Question Tag',
+			'PRO PP Detail', 'PRO Detail', 'PPW Detail', 'PF Detail',
+			'Personalize', 'Patch Util', 'Page Template', 'Module Def Role',
+			'Module Def Item', 'File Group', 'File Browser Control', 'File',
+			'Educational Qualifications', 'Earn Deduction Detail',
+			'DocType Property Setter', 'Contact Detail', 'BOM Report Detail', 
+			'BOM Replace Utility Detail', 'BOM Replace Utility', 
+			'Absent Days Detail', 'Activity Dashboard Control', 'Raw Materials Supplied',
+			'Setup Wizard Control', 'Company Group', 'Lease Agreement', 'Lease Installment'] # docformat
 
 	for d in del_dt:
 		delete_doc('DocType', d)
@@ -347,3 +362,47 @@
 				+ ' ' + esc(path + ren_mapper[d] + '/' + ren_mapper[d] + '.txt'))
 		print 'git mv ' + esc(path + ren_mapper[d] + '/'+ d + '.txt') + ' ' + esc(path + ren_mapper[d] + '/' + ren_mapper[d] + '.txt')
 		
+
+def replace_labels_with_fieldnames():
+	"""
+		This is used for replacing instances like cur_frm.cscript['LABEL'] with
+		cur_frm.cscript.FIELDNAME in js files
+	"""
+	doctype = {}
+	doctype.update(prepare_dict_of_label_fieldname('/var/www/erpnext/erpnext/'))
+	doctype.update(prepare_dict_of_label_fieldname('/var/www/erpnext/lib/py'))
+	#print doctype
+	
+	for doc in doctype:
+		label_fieldname = doctype[doc]
+		for d in label_fieldname:
+			#label = "cur_frm.cscript['%s']" % d
+			#fieldname = "cur_frm.cscript.%s" % label_fieldname[d]
+			label = d
+			fieldname = label_fieldname[d]
+			print colored('Changing... ' + doc + ': ' + label + ' --> '+ fieldname, 'yellow')
+			#res = replace_code('/var/www/erpnext/', label, fieldname, 'js')
+			res = replace_code('/var/www/erpnext/', label, fieldname, 'js',
+					'hide_field\(.*%s' % label)
+			if res == 'skip':
+				break
+
+def prepare_dict_of_label_fieldname(module_path):
+	from webnotes.model.utils import peval_doclist
+	from webnotes.model.sync import get_file_path
+	doctype = {}
+	for path, folders, files in os.walk(module_path):
+		if path == module_path:
+			modules_list = folders
+		for f in files:
+			if f.endswith(".txt"):
+				rel_path = os.path.relpath(path, webnotes.defs.modules_path)
+				path_tuple = rel_path.split(os.sep)
+				if (len(path_tuple)==3 and path_tuple[0] in modules_list and
+						path_tuple[1] == 'doctype'):
+					file_name = f[:-4]
+					with open(get_file_path(path_tuple[0], file_name), 'r') as fn:
+						doclist = peval_doclist(fn.read())
+						doctype[file_name] = dict(([d.get('label'),d.get('fieldname')] \
+								for d in doclist if d.get('doctype')=='DocField'))
+	return doctype
diff --git a/erpnext/production/doctype/production_planning_tool/production_planning_tool.js b/erpnext/production/doctype/production_planning_tool/production_planning_tool.js
index 847f00a..11d6e44 100644
--- a/erpnext/production/doctype/production_planning_tool/production_planning_tool.js
+++ b/erpnext/production/doctype/production_planning_tool/production_planning_tool.js
@@ -29,7 +29,7 @@
 }
 
 
-cur_frm.cscript['Download Raw Material'] = function(doc, cdt, cdn) {
+cur_frm.cscript.download_raw_material = function(doc, cdt, cdn) {
 	var callback = function(r, rt){
 		if (r.message) 
 			$c_obj_csv(make_doclist(cdt, cdn), 'download_raw_materials', '', '');
diff --git a/erpnext/production/search_criteria/consumption_against_production/consumption_against_production.txt b/erpnext/production/search_criteria/consumption_against_production/consumption_against_production.txt
index d4db609..54d6a19 100644
--- a/erpnext/production/search_criteria/consumption_against_production/consumption_against_production.txt
+++ b/erpnext/production/search_criteria/consumption_against_production/consumption_against_production.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'jai@webnotestech.com'
 	},
diff --git a/erpnext/production/search_criteria/delivery_plan/delivery_plan.txt b/erpnext/production/search_criteria/delivery_plan/delivery_plan.txt
index 6f3d30f..5ea811a 100644
--- a/erpnext/production/search_criteria/delivery_plan/delivery_plan.txt
+++ b/erpnext/production/search_criteria/delivery_plan/delivery_plan.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.txt b/erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.txt
index c5c726e..6f0c3eb 100644
--- a/erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.txt
+++ b/erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'jai@webnotestech.com'
 	},
diff --git a/erpnext/production/search_criteria/production_orders_in_process/production_orders_in_process.txt b/erpnext/production/search_criteria/production_orders_in_process/production_orders_in_process.txt
index e831d00..51eb1f4 100644
--- a/erpnext/production/search_criteria/production_orders_in_process/production_orders_in_process.txt
+++ b/erpnext/production/search_criteria/production_orders_in_process/production_orders_in_process.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'jai@webnotestech.com'
 	},
diff --git a/erpnext/projects/doctype/project_activity/project_activity.js b/erpnext/projects/doctype/project_activity/project_activity.js
index 02a6dbf..7da3976 100644
--- a/erpnext/projects/doctype/project_activity/project_activity.js
+++ b/erpnext/projects/doctype/project_activity/project_activity.js
@@ -88,7 +88,7 @@
     unhide_field(fl); }
 }
 
-cur_frm.cscript['Add'] = function(doc, dt, dn) {
+cur_frm.cscript.add = function(doc, dt, dn) {
   var callback = function(r,rt) {
     
     // refresh listing
diff --git a/erpnext/projects/doctype/task/task.js b/erpnext/projects/doctype/task/task.js
index 322b8a1..c88382b 100644
--- a/erpnext/projects/doctype/task/task.js
+++ b/erpnext/projects/doctype/task/task.js
@@ -44,7 +44,7 @@
 cur_frm.cscript.refresh = function(doc,cdt,cdn) {
   cur_frm.clear_custom_buttons();
   if(doc.status == 'Pending Review' && (doc.senders_name == user_fullname || doc.senders_email == user)) {
-    cur_frm.add_custom_button('Declare Completed', cur_frm.cscript['Declare Completed']);
+    cur_frm.add_custom_button('Declare Completed', cur_frm.cscript.declare_completed);
     cur_frm.add_custom_button('Reopen Task', cur_frm.cscript['Reopen Task']);
   }
   if(doc.status == 'Open' && !doc.__islocal) {
@@ -111,7 +111,7 @@
   });  
 }
 
-cur_frm.cscript['Declare Completed'] = function(){
+cur_frm.cscript.declare_completed = function(){
   $c_obj(make_doclist(cur_frm.doc.doctype, cur_frm.doc.name),'declare_completed', '',function(r, rt) {
     if(r.message == 'true'){
       doc.status = 'Closed'; //for refresh
diff --git a/erpnext/projects/search_criteria/dispatch_report/dispatch_report.txt b/erpnext/projects/search_criteria/dispatch_report/dispatch_report.txt
index 0d52fab..0927411 100644
--- a/erpnext/projects/search_criteria/dispatch_report/dispatch_report.txt
+++ b/erpnext/projects/search_criteria/dispatch_report/dispatch_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'ashwini@webnotestech.com'
 	},
diff --git a/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.txt b/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.txt
index d45bd10..e4143ba 100644
--- a/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.txt
+++ b/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/projectwise_delivered_qty_and_costs.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'harshada@webnotestech.com'
 	},
diff --git a/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.txt b/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.txt
index 05807a3..e795202 100644
--- a/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.txt
+++ b/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/projectwise_pending_qty_and_costs.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'ashwini@webnotestech.com'
 	},
diff --git a/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.txt b/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.txt
index c09a9e9..4a11bac 100644
--- a/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.txt
+++ b/erpnext/projects/search_criteria/projectwise_purchase_details/projectwise_purchase_details.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'ashwini@webnotestech.com'
 	},
diff --git a/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.txt b/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.txt
index c884739..0ecb1be 100644
--- a/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.txt
+++ b/erpnext/projects/search_criteria/projectwise_sales_details/projectwise_sales_details.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'harshada@webnotestech.com'
 	},
diff --git a/erpnext/projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt b/erpnext/projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt
index c009cdd..c36a326 100644
--- a/erpnext/projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt
+++ b/erpnext/projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'harshada@webnotestech.com'
 	},
diff --git a/erpnext/projects/search_criteria/timesheet_report/timesheet_report.txt b/erpnext/projects/search_criteria/timesheet_report/timesheet_report.txt
index b7580eb..64586eb 100644
--- a/erpnext/projects/search_criteria/timesheet_report/timesheet_report.txt
+++ b/erpnext/projects/search_criteria/timesheet_report/timesheet_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'ashwini@webnotestech.com'
 	},
diff --git a/erpnext/selling/DocType Mapper/Lead-Opportunity/Lead-Opportunity.txt b/erpnext/selling/DocType Mapper/Lead-Opportunity/Lead-Opportunity.txt
index dbedbf7..ff4a925 100644
--- a/erpnext/selling/DocType Mapper/Lead-Opportunity/Lead-Opportunity.txt
+++ b/erpnext/selling/DocType Mapper/Lead-Opportunity/Lead-Opportunity.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-20 12:33:34',
+		'creation': '2010-08-08 17:09:34',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/DocType Mapper/Opportunity-Quotation/Opportunity-Quotation.txt b/erpnext/selling/DocType Mapper/Opportunity-Quotation/Opportunity-Quotation.txt
index 726b1a1..18543e8 100644
--- a/erpnext/selling/DocType Mapper/Opportunity-Quotation/Opportunity-Quotation.txt
+++ b/erpnext/selling/DocType Mapper/Opportunity-Quotation/Opportunity-Quotation.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-09-20 12:33:34',
+		'creation': '2010-08-08 17:09:34',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/doctype/installation_note/installation_note.js b/erpnext/selling/doctype/installation_note/installation_note.js
index 36c2fa9..44f6ac8 100644
--- a/erpnext/selling/doctype/installation_note/installation_note.js
+++ b/erpnext/selling/doctype/installation_note/installation_note.js
@@ -42,7 +42,7 @@
   return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"  ORDER BY  `tabTerritory`.`name` ASC LIMIT 50';
 }
 
-cur_frm.cscript['Get Items'] = function(doc, dt, dn) {
+cur_frm.cscript.get_items = function(doc, dt, dn) {
   var callback = function(r,rt) { 
 	  unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
 	  cur_frm.refresh();
diff --git a/erpnext/selling/doctype/lead/lead.js b/erpnext/selling/doctype/lead/lead.js
index 73f5af8..bd2c88f 100644
--- a/erpnext/selling/doctype/lead/lead.js
+++ b/erpnext/selling/doctype/lead/lead.js
@@ -41,7 +41,7 @@
   if(!doc.__islocal && !in_list(['Converted', 'Lead Lost'], doc.status)) {
     cur_frm.add_custom_button('Create Customer', cur_frm.cscript['Create Customer']);
     cur_frm.add_custom_button('Create Opportunity', cur_frm.cscript['Create Opportunity']);
-    cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+    cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
   }
 }
 
@@ -122,7 +122,7 @@
 
 // send email
 // ===============================================================
-cur_frm.cscript['Send Email'] = function(doc,cdt,cdn){
+cur_frm.cscript.send_email = function(doc,cdt,cdn){
   if(doc.__islocal != 1){
     $c_obj(make_doclist(doc.doctype, doc.name),'send_mail','',function(r,rt){});
   }else{
diff --git a/erpnext/selling/doctype/opportunity/opportunity.js b/erpnext/selling/doctype/opportunity/opportunity.js
index 545dcd2..6e6fbd3 100644
--- a/erpnext/selling/doctype/opportunity/opportunity.js
+++ b/erpnext/selling/doctype/opportunity/opportunity.js
@@ -34,7 +34,7 @@
 	if(doc.docstatus == 1) {
 		cur_frm.add_custom_button('Create Quotation', cur_frm.cscript['Create Quotation']);
 		cur_frm.add_custom_button('Opportunity Lost', cur_frm.cscript['Declare Opportunity Lost']);
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+		cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 	}
 
 	//cur_frm.cscript.clear_values(doc,cdt,cdn);
diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js
index c194248..a589a32 100644
--- a/erpnext/selling/doctype/quotation/quotation.js
+++ b/erpnext/selling/doctype/quotation/quotation.js
@@ -88,7 +88,7 @@
 	if(doc.docstatus == 1 && doc.status!='Order Lost') {
 		cur_frm.add_custom_button('Make Sales Order', cur_frm.cscript['Make Sales Order']);
 		cur_frm.add_custom_button('Set as Lost', cur_frm.cscript['Declare Order Lost']);
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+		cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 	}
 
 	if (!doc.docstatus) hide_field(['Update Communication Log']);
@@ -178,7 +178,7 @@
 }
 
 //pull enquiry details
-cur_frm.cscript['Pull Opportunity Detail'] = function(doc,cdt,cdn){
+cur_frm.cscript.pull_enquiry_detail = function(doc,cdt,cdn){
 
 	var callback = function(r,rt){
 		if(r.message){
@@ -292,7 +292,7 @@
 //===================validation function =================================
 
 cur_frm.cscript.validate = function(doc,cdt,cdn){
-	cur_frm.cscript['Re-Calculate Values'](doc, cdt, cdn);
+	cur_frm.cscript.recalculate_values(doc, cdt, cdn);
 	cur_frm.cscript.quot_to_validate(doc,cdt,cdn);
 }
 
diff --git a/erpnext/selling/doctype/sales_common/sales_common.js b/erpnext/selling/doctype/sales_common/sales_common.js
index 4cd5d51..fd043af 100644
--- a/erpnext/selling/doctype/sales_common/sales_common.js
+++ b/erpnext/selling/doctype/sales_common/sales_common.js
@@ -363,8 +363,8 @@
 }
 
 // ********************* Get Charges ****************************
-cur_frm.cscript['Get Taxes and Charges'] = function(doc, cdt, cdn) {
-	$c_obj(make_doclist(doc.doctype,doc.name),'get_other_charges','', function(r, rt) { cur_frm.cscript['Calculate Taxes and Charges'](doc, cdt, cdn);});
+cur_frm.cscript.get_charges = function(doc, cdt, cdn) {
+	$c_obj(make_doclist(doc.doctype,doc.name),'get_other_charges','', function(r, rt) { cur_frm.cscript.calculate_charges(doc, cdt, cdn);});
 }
 
 
@@ -739,11 +739,11 @@
 
 // **************** RE-CALCULATE VALUES ***************************
 
-cur_frm.cscript['Re-Calculate Values'] = function(doc, cdt, cdn) {	
-	cur_frm.cscript['Calculate Taxes and Charges'](doc,cdt,cdn);
+cur_frm.cscript.recalculate_values = function(doc, cdt, cdn) {	
+	cur_frm.cscript.calculate_charges(doc,cdt,cdn);
 }
 
-cur_frm.cscript['Calculate Taxes and Charges'] = function(doc, cdt, cdn) {
+cur_frm.cscript.calculate_charges = function(doc, cdt, cdn) {
 	var other_fname	= cur_frm.cscript.other_fname;
 
 	var cl = getchildren('Sales Taxes and Charges', doc.name, other_fname, doc.doctype);
@@ -828,7 +828,7 @@
 			validated = false;
 		}
 	}
-	cur_frm.cscript['Calculate Taxes and Charges'] (doc, cdt, cdn);
+	cur_frm.cscript.calculate_charges (doc, cdt, cdn);
 
 	if (cur_frm.cscript.calc_adjustment_amount) cur_frm.cscript.calc_adjustment_amount(doc);
 }
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index d3d89d3..1fe5fe1 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -64,14 +64,14 @@
 
 	if(doc.docstatus==1) {
 		if(doc.status != 'Stopped') {
-			cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+			cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 			// delivery note
 			if(doc.per_delivered < 100 && doc.order_type!='Maintenance')
 				cur_frm.add_custom_button('Make Delivery', cur_frm.cscript['Make Delivery Note']);
 			
 			// maintenance
 			if(doc.per_delivered < 100 && doc.order_type=='Maintenance') {
-				cur_frm.add_custom_button('Make Maint. Visit', cur_frm.cscript['Make Maintenance Visit']);
+				cur_frm.add_custom_button('Make Maint. Visit', cur_frm.cscript.make_maintenance_visit);
 				cur_frm.add_custom_button('Make Maint. Schedule', cur_frm.cscript['Make Maintenance Schedule']);
 			}
 
@@ -135,7 +135,7 @@
 	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
 }
 
-cur_frm.cscript['Pull Quotation Items'] = function(doc,dt,dn) {
+cur_frm.cscript.pull_quotation_details = function(doc,dt,dn) {
 	var callback = function(r,rt){
 		var doc = locals[cur_frm.doctype][cur_frm.docname];					
 		if(r.message){							
@@ -233,7 +233,7 @@
 }
 
 //------------ make maintenance visit ------------
-cur_frm.cscript['Make Maintenance Visit'] = function() {
+cur_frm.cscript.make_maintenance_visit = function() {
 	var doc = cur_frm.doc;
 
 	if (doc.docstatus == 1) { 
diff --git a/erpnext/selling/search_criteria/customer_address_contact/customer_address_contact.txt b/erpnext/selling/search_criteria/customer_address_contact/customer_address_contact.txt
index ecba9f2..52d6d63 100644
--- a/erpnext/selling/search_criteria/customer_address_contact/customer_address_contact.txt
+++ b/erpnext/selling/search_criteria/customer_address_contact/customer_address_contact.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.txt b/erpnext/selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.txt
index 2142617..b3d2359 100644
--- a/erpnext/selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.txt
+++ b/erpnext/selling/search_criteria/delivered_items_to_be_install/delivered_items_to_be_install.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill/delivery_note_itemwise_pending_to_bill.txt b/erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill/delivery_note_itemwise_pending_to_bill.txt
index 72973ad..762aa9e 100644
--- a/erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill/delivery_note_itemwise_pending_to_bill.txt
+++ b/erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill/delivery_note_itemwise_pending_to_bill.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'jai@webnotestech.com'
 	},
diff --git a/erpnext/selling/search_criteria/follow_up_report/follow_up_report.txt b/erpnext/selling/search_criteria/follow_up_report/follow_up_report.txt
index d4ab9bf..56b547f 100644
--- a/erpnext/selling/search_criteria/follow_up_report/follow_up_report.txt
+++ b/erpnext/selling/search_criteria/follow_up_report/follow_up_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'ashwini@webnotestech.com'
 	},
diff --git a/erpnext/selling/search_criteria/gross_profit/gross_profit.txt b/erpnext/selling/search_criteria/gross_profit/gross_profit.txt
index 7e6b71f..b98ced6 100644
--- a/erpnext/selling/search_criteria/gross_profit/gross_profit.txt
+++ b/erpnext/selling/search_criteria/gross_profit/gross_profit.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt b/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt
index 8c63609..894aeee 100644
--- a/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt
+++ b/erpnext/selling/search_criteria/itemwise_delivery_details/itemwise_delivery_details.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt b/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt
index 42ef2a7..3566ea9 100644
--- a/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt
+++ b/erpnext/selling/search_criteria/itemwise_sales_details/itemwise_sales_details.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt b/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt
index 5fb0a53..22717c6 100644
--- a/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt
+++ b/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/sales_orderwise_booking_&_delivery_summary.txt b/erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/sales_orderwise_booking_&_delivery_summary.txt
index 669bb63..fa03e9f 100644
--- a/erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/sales_orderwise_booking_&_delivery_summary.txt
+++ b/erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/sales_orderwise_booking_&_delivery_summary.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.txt b/erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.txt
index 936309a..6b61745 100644
--- a/erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.txt
+++ b/erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/sales_orderwise_pending_amount_to_bill.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'dhanalekshmi@webnotestech.com'
 	},
diff --git a/erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/sales_orderwise_pending_qty_to_deliver.txt b/erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/sales_orderwise_pending_qty_to_deliver.txt
index ad37ce6..7a73d4a 100644
--- a/erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/sales_orderwise_pending_qty_to_deliver.txt
+++ b/erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/sales_orderwise_pending_qty_to_deliver.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'dhanalekshmi@webnotestech.com'
 	},
diff --git a/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.txt b/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.txt
index a98260a..f001b70 100644
--- a/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.txt
+++ b/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/sales_persons_target_variance_item_group_wise.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt
index 815adc4..2ca30f7 100755
--- a/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt
+++ b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:52',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:52',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/search_criteria/target_variance_report/target_variance_report.txt b/erpnext/selling/search_criteria/target_variance_report/target_variance_report.txt
index 84ea8eb..06ed049 100644
--- a/erpnext/selling/search_criteria/target_variance_report/target_variance_report.txt
+++ b/erpnext/selling/search_criteria/target_variance_report/target_variance_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'harshada@webnotestech.com'
 	},
diff --git a/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.txt b/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.txt
index f98b780..69bb310 100644
--- a/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.txt
+++ b/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/territories_target_variance_item_group_wise.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.txt b/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.txt
index 2272795..b895894 100644
--- a/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.txt
+++ b/erpnext/selling/search_criteria/territory_sales___variance_report/territory_sales___variance_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.txt b/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.txt
index 8783e1f..510d81b 100644
--- a/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.txt
+++ b/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/selling/search_criteria/variance_report/variance_report.txt b/erpnext/selling/search_criteria/variance_report/variance_report.txt
index fc044c0..f45df2f 100644
--- a/erpnext/selling/search_criteria/variance_report/variance_report.txt
+++ b/erpnext/selling/search_criteria/variance_report/variance_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:45',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:45',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/setup/doctype/email_digest/email_digest.js b/erpnext/setup/doctype/email_digest/email_digest.js
index 67de256..1380e77 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.js
+++ b/erpnext/setup/doctype/email_digest/email_digest.js
@@ -60,7 +60,7 @@
 	}, 1);
 }
 
-cur_frm.cscript['Add/Remove Recipients'] = function(doc, dt, dn) {
+cur_frm.cscript.addremove_recipients = function(doc, dt, dn) {
 	// Get profile list
 	$c_obj(make_doclist(dt, dn), 'get_profiles', '', function(r, rt) {
 		if(r.exc) {
diff --git a/erpnext/setup/doctype/permission_control/permission_control.py b/erpnext/setup/doctype/permission_control/permission_control.py
index fef322e..41f3a48 100644
--- a/erpnext/setup/doctype/permission_control/permission_control.py
+++ b/erpnext/setup/doctype/permission_control/permission_control.py
@@ -74,8 +74,9 @@
 						d.fields.get('role')]) if perm.doctype=='DocPerm']
 
 		fl = ['', 'owner'] + [d.fieldname for d in doclist \
-				if d.doctype=='DocField' and d.fieldtype=='Link' \
-				and cstr(d.options)!='']
+				if d.doctype=='DocField' and ((d.fieldtype=='Link' \
+				and cstr(d.options)!='') or (d.fieldtype=='Select' and
+					'link:' in cstr(d.options).lower()))]
 
 		return {
 			'perms':ptype,
diff --git a/erpnext/setup/doctype/price_list/price_list.js b/erpnext/setup/doctype/price_list/price_list.js
index 173e42f..67caaf1 100644
--- a/erpnext/setup/doctype/price_list/price_list.js
+++ b/erpnext/setup/doctype/price_list/price_list.js
@@ -30,7 +30,7 @@
 	}
 }
 
-cur_frm.cscript['Clear Prices'] = function(doc, cdt, cdn) {
+cur_frm.cscript.clear_prices = function(doc, cdt, cdn) {
 	if(confirm("This action will clear all rates for '"+ doc.name +"' from the Item Master and cannot be un-done. Are you sure you want to continue?")) {
 		$c_obj([doc], 'clear_prices', '', function(r, rt) { });
 	}
diff --git a/erpnext/stock/DocType Mapper/Sales Invoice-Delivery Note/Sales Invoice-Delivery Note.txt b/erpnext/stock/DocType Mapper/Sales Invoice-Delivery Note/Sales Invoice-Delivery Note.txt
index a09e0cf..608a1d7 100755
--- a/erpnext/stock/DocType Mapper/Sales Invoice-Delivery Note/Sales Invoice-Delivery Note.txt
+++ b/erpnext/stock/DocType Mapper/Sales Invoice-Delivery Note/Sales Invoice-Delivery Note.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2010-12-15 08:40:46',
+		'creation': '2010-12-14 17:56:41',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index 810c385..d9368bd 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -66,7 +66,7 @@
 	if (doc.docstatus!=1) {
 		hide_field(['SMS', 'Send SMS', 'message', 'customer_mobile_no', 'Repair Delivery Note']);
 	} else {
-		cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+		cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 		unhide_field(['SMS','Send SMS', 'message', 'customer_mobile_no', 'Repair Delivery Note']);
 	}
 
@@ -111,7 +111,7 @@
 	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
 }
 
-cur_frm.cscript['Get Items'] = function(doc,dt,dn) {
+cur_frm.cscript.get_items = function(doc,dt,dn) {
 	var callback = function(r,rt){
 		var doc = locals[cur_frm.doctype][cur_frm.docname];					
 		if(r.message){							
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index b15c0c5..97be19a 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -93,7 +93,7 @@
 // takes the first attachment and creates
 // a table with both image and attachment in HTML
 // in the "alternate_description" field
-cur_frm.cscript['Add Image'] = function(doc, dt, dn) {
+cur_frm.cscript.add_image = function(doc, dt, dn) {
 	if(!doc.file_list) {
 		msgprint('Please attach a file first!');
 	}
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
index eefd706..abeac49 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -69,7 +69,7 @@
 			if(ch[i].qty > ch[i].billed_qty) allow_billing = 1;
 		}
 	 cur_frm.add_custom_button('Make Purchase Invoice', cur_frm.cscript['Make Purchase Invoice']);
-	 cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
+	 cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 	}
 	else{
 		hide_field(['Repair Purchase Receipt']);
@@ -109,7 +109,7 @@
 
 // Get Purchase Order Button
 // -----------------
-cur_frm.cscript['Pull Purchase Order Details'] = function(doc, dt, dn) {
+cur_frm.cscript.pull_purchase_order_details = function(doc, dt, dn) {
 	var callback = function(r,rt) { 
 		unhide_field(['supplier_address','contact_person','supplier_name','address_display', 'contact_display', 'contact_mobile','contact_email']);				
 		refresh_many(['supplier','supplier_address','contact_person', 'supplier_name', 'address_display', 'contact_display','contact_mobile', 'contact_email', 'purchase_receipt_details', 'purchase_tax_details']);
diff --git a/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.js b/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.js
index 131e012..771cb82 100644
--- a/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.js
+++ b/erpnext/stock/doctype/sales_and_purchase_return_tool/sales_and_purchase_return_tool.js
@@ -65,7 +65,7 @@
 
 // Create item table
 //-------------------------------
-cur_frm.cscript['Get Items'] = function(doc, cdt, cdn) {
+cur_frm.cscript.get_items = function(doc, cdt, cdn) {
 	flag = 0
 	if(doc.return_type == 'Sales Return') {
 		if (doc.delivery_note_no && doc.sales_invoice_no) {
@@ -96,7 +96,7 @@
 
 // Make Stock Entry
 //-------------------------------
-cur_frm.cscript['Make Stock Entry'] = function(doc, cdt, cdn) {
+cur_frm.cscript.make_stock_entry = function(doc, cdt, cdn) {
 	var cl = getchildren('Sales and Purchase Return Item', doc.name, 'return_details');
 	if (!cl.length)
 		msgprint("Item table can not be blank. Please click on 'Get Items'.");
@@ -170,7 +170,7 @@
 
 // Make excise voucher
 //-------------------------------
-cur_frm.cscript['Make Excise Invoice'] = function(doc) {
+cur_frm.cscript.make_excise_invoice = function(doc) {
 	var excise = LocalDB.create('Journal Voucher');
 	excise = locals['Journal Voucher'][excise];
 	excise.voucher_type = 'Excise Voucher';
@@ -178,7 +178,7 @@
 }
 // Make debit note
 //------------------------------
-cur_frm.cscript['Make Debit Note'] = function(doc) {
+cur_frm.cscript.make_debit_note = function(doc) {
 	var doclist = make_doclist(doc.doctype, doc.name);
 	$c('accounts.get_new_jv_details', {
 			doclist: JSON.stringify(doclist),
@@ -191,7 +191,7 @@
 }
 // Make credit note
 //------------------------------
-cur_frm.cscript['Make Credit Note'] = function(doc) {
+cur_frm.cscript.make_credit_note = function(doc) {
 	var doclist = make_doclist(doc.doctype, doc.name);
 	$c('accounts.get_new_jv_details', {
 			doclist: JSON.stringify(doclist),
diff --git a/erpnext/stock/doctype/sales_bom/sales_bom.js b/erpnext/stock/doctype/sales_bom/sales_bom.js
index be159e7..f7f6e4d 100644
--- a/erpnext/stock/doctype/sales_bom/sales_bom.js
+++ b/erpnext/stock/doctype/sales_bom/sales_bom.js
@@ -41,6 +41,6 @@
   $c_obj(make_doclist(cdt,cdn), 'get_rates', '', function(r,rt){refresh_field('sales_bom_items');});
 }
 
-cur_frm.cscript['Find Sales BOM'] = function(doc, dt, dn) {
+cur_frm.cscript.find_sales_bom = function(doc, dt, dn) {
   $c_obj(make_doclist(dt,dn), 'check_duplicate', 1, '');
 }
\ No newline at end of file
diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js
index 613c230..a297e0b 100644
--- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js
+++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js
@@ -18,6 +18,6 @@
 	if (doc.docstatus) hide_field('Steps');
 }
 
-cur_frm.cscript['Download Template'] = function(doc, cdt, cdn) {
+cur_frm.cscript.download_template = function(doc, cdt, cdn) {
 	$c_obj_csv(make_doclist(cdt, cdn), 'get_template', '');
 }
diff --git a/erpnext/stock/search_criteria/itemwise_price_list/itemwise_price_list.txt b/erpnext/stock/search_criteria/itemwise_price_list/itemwise_price_list.txt
index 1fa4441..d9e9973 100644
--- a/erpnext/stock/search_criteria/itemwise_price_list/itemwise_price_list.txt
+++ b/erpnext/stock/search_criteria/itemwise_price_list/itemwise_price_list.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'harshada@webnotestech.com'
 	},
diff --git a/erpnext/stock/search_criteria/stock_aging_report/stock_aging_report.txt b/erpnext/stock/search_criteria/stock_aging_report/stock_aging_report.txt
index 5a1ef1d..f2b0306 100644
--- a/erpnext/stock/search_criteria/stock_aging_report/stock_aging_report.txt
+++ b/erpnext/stock/search_criteria/stock_aging_report/stock_aging_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'ashwini@webnotestech.com'
 	},
diff --git a/erpnext/stock/search_criteria/stock_ledger/stock_ledger.txt b/erpnext/stock/search_criteria/stock_ledger/stock_ledger.txt
index c28f592..d7ede00 100644
--- a/erpnext/stock/search_criteria/stock_ledger/stock_ledger.txt
+++ b/erpnext/stock/search_criteria/stock_ledger/stock_ledger.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/stock/search_criteria/stock_level/stock_level.txt b/erpnext/stock/search_criteria/stock_level/stock_level.txt
index 1783ba4..f19016e 100644
--- a/erpnext/stock/search_criteria/stock_level/stock_level.txt
+++ b/erpnext/stock/search_criteria/stock_level/stock_level.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/stock/search_criteria/stock_report/stock_report.txt b/erpnext/stock/search_criteria/stock_report/stock_report.txt
index d6858fe..8a92201 100644
--- a/erpnext/stock/search_criteria/stock_report/stock_report.txt
+++ b/erpnext/stock/search_criteria/stock_report/stock_report.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:44',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:44',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/support/doctype/customer_issue/customer_issue.js b/erpnext/support/doctype/customer_issue/customer_issue.js
index 72d592e..cb909ac 100644
--- a/erpnext/support/doctype/customer_issue/customer_issue.js
+++ b/erpnext/support/doctype/customer_issue/customer_issue.js
@@ -63,7 +63,7 @@
 
 
 
-cur_frm.cscript['Make Maintenance Visit'] = function(doc, cdt, cdn) {
+cur_frm.cscript.make_maintenance_visit = function(doc, cdt, cdn) {
   if (doc.docstatus == 1) { 
     $c_obj(make_doclist(doc.doctype, doc.name),'check_maintenance_visit','',
       function(r,rt){
diff --git a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js
index 0113d1f..efa3eac 100644
--- a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js
+++ b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js
@@ -63,7 +63,7 @@
 }
 
 // Get Items based on SO Selected
-cur_frm.cscript['Get Items'] = function(doc, dt, dn) {
+cur_frm.cscript.get_items = function(doc, dt, dn) {
   var callback = function(r,rt) { 
 	  unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
 	  cur_frm.refresh();
@@ -114,7 +114,7 @@
   }
 }
 
-cur_frm.cscript['Generate Schedule'] = function(doc, cdt, cdn) {
+cur_frm.cscript.generate_schedule = function(doc, cdt, cdn) {
   if (!doc.__islocal) {
     $c('runserverobj', args={'method':'generate_schedule', 'docs':compress_doclist(make_doclist(cdt,cdn))},
       function(r,rt){
diff --git a/erpnext/support/doctype/maintenance_visit/maintenance_visit.js b/erpnext/support/doctype/maintenance_visit/maintenance_visit.js
index d9d47c6..a2c0772 100644
--- a/erpnext/support/doctype/maintenance_visit/maintenance_visit.js
+++ b/erpnext/support/doctype/maintenance_visit/maintenance_visit.js
@@ -60,7 +60,7 @@
   return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
 }
 
-cur_frm.cscript['Get Items'] = function(doc, dt, dn) {
+cur_frm.cscript.get_items = function(doc, dt, dn) {
   var callback = function(r,rt) { 
 	  unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
 	  cur_frm.refresh();
diff --git a/erpnext/support/search_criteria/amc_summary/amc_summary.txt b/erpnext/support/search_criteria/amc_summary/amc_summary.txt
index 9a0743b..e650095 100644
--- a/erpnext/support/search_criteria/amc_summary/amc_summary.txt
+++ b/erpnext/support/search_criteria/amc_summary/amc_summary.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:50',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:50',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/support/search_criteria/customer_issues/customer_issues.txt b/erpnext/support/search_criteria/customer_issues/customer_issues.txt
index 25d5cec..c313235 100644
--- a/erpnext/support/search_criteria/customer_issues/customer_issues.txt
+++ b/erpnext/support/search_criteria/customer_issues/customer_issues.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:31',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:31',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.txt b/erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.txt
index 8f74845..2e6e11d 100644
--- a/erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.txt
+++ b/erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/maintenance_orderwise_pending_amount_to_bill.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'ashwini@webnotestech.com'
 	},
diff --git a/erpnext/support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.txt b/erpnext/support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.txt
index d0030a7..a81b187 100644
--- a/erpnext/support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.txt
+++ b/erpnext/support/search_criteria/maintenance_schedule_details/maintenance_schedule_details.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:43',
+		'creation': '2012-04-03 12:49:51',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:43',
+		'modified': '2012-04-03 12:49:51',
 		'modified_by': u'Administrator',
 		'owner': u'nabin@webnotestech.com'
 	},
diff --git a/erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt b/erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt
index 442a7bdf..a80ee64 100644
--- a/erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt
+++ b/erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 14:50:45',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 14:50:45',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt b/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt
index 52e69df..cdc76d2 100644
--- a/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt
+++ b/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-30 13:33:32',
+		'creation': '2012-04-03 12:49:53',
 		'docstatus': 0,
-		'modified': '2012-03-30 13:33:32',
+		'modified': '2012-04-03 12:49:53',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/utilities/doctype/reposting_tool/reposting_tool.js b/erpnext/utilities/doctype/reposting_tool/reposting_tool.js
index 006ef9a..d44a2cd 100644
--- a/erpnext/utilities/doctype/reposting_tool/reposting_tool.js
+++ b/erpnext/utilities/doctype/reposting_tool/reposting_tool.js
@@ -18,7 +18,7 @@
 var msg = [];
 var binidx = 0;
 
-cur_frm.cscript['Repost Bin'] = function(doc,cdt,cdn) {
+cur_frm.cscript.repost_bin = function(doc,cdt,cdn) {
   args = {'check': 'Bin'};
   $c_obj('Reposting Tool','get_count_for_reposting', docstring(args), function(r,rt) {
        bin_list = r.message;
@@ -50,7 +50,7 @@
 //======================================================
 var acc_list = [];
 var accidx = 0;
-cur_frm.cscript['Repost Account Balances'] = function(doc,cdt,cdn) {
+cur_frm.cscript.repost_account_balances = function(doc,cdt,cdn) {
   args = {'check': 'Account Balance'};
   $c_obj('Reposting Tool','get_count_for_reposting', docstring(args), function(r,rt) {
        acc_list = r.message;
diff --git a/erpnext/utilities/doctype/sms_control/sms_control.js b/erpnext/utilities/doctype/sms_control/sms_control.js
index e28e9b2..cd3db12 100644
--- a/erpnext/utilities/doctype/sms_control/sms_control.js
+++ b/erpnext/utilities/doctype/sms_control/sms_control.js
@@ -77,7 +77,7 @@
 	}
 }
 
-cur_frm.cscript['Send SMS'] = function(doc,dt,dn) {
+cur_frm.cscript.send_sms = function(doc,dt,dn) {
 	var doc = cur_frm.doc;
 	var sms_man = new SMSManager();
 	var default_msg = {
diff --git a/wnf.py b/wnf.py
index 4cd1c8b..ad450cd 100755
--- a/wnf.py
+++ b/wnf.py
@@ -18,9 +18,12 @@
 
 import os, sys
 
-def replace_code(start, txt1, txt2, extn):
+def replace_code(start, txt1, txt2, extn, search=None):
 	"""replace all txt1 by txt2 in files with extension (extn)"""
+	import webnotes.utils
 	import os, re
+	esc = webnotes.utils.make_esc('[]')
+	if not search: search = esc(txt1)
 	for wt in os.walk(start, followlinks=1):
 		for fn in wt[2]:
 			if fn.split('.')[-1]==extn:
@@ -29,7 +32,7 @@
 					with open(fpath, 'r') as f:
 						content = f.read()
 				
-					if re.search(txt1, content):
+					if re.search(search, content):
 						res = search_replace_with_prompt(fpath, txt1, txt2)
 						if res == 'skip':
 							return 'skip'
