diff --git a/erpnext/crm/report/campaign_efficiency/campaign_efficiency.js b/erpnext/crm/report/campaign_efficiency/campaign_efficiency.js
index 74a1851..2b25f1d 100644
--- a/erpnext/crm/report/campaign_efficiency/campaign_efficiency.js
+++ b/erpnext/crm/report/campaign_efficiency/campaign_efficiency.js
@@ -1,7 +1,6 @@
 // Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
 // For license information, please see license.txt
-frappe.require("assets/erpnext/js/financial_statements.js", function() {
-	frappe.query_reports["Campaign Efficiency"] = {
+frappe.query_reports["Campaign Efficiency"] = {
 		"filters": [
 			{
 				"fieldname": "from_date",
@@ -16,6 +15,5 @@
 				"default": frappe.defaults.get_user_default("year_end_date"),
 			}
 		]
-	}
-});
+	};
 
diff --git a/erpnext/crm/report/campaign_efficiency/campaign_efficiency.py b/erpnext/crm/report/campaign_efficiency/campaign_efficiency.py
index 6bf8bd8..aad64ff 100644
--- a/erpnext/crm/report/campaign_efficiency/campaign_efficiency.py
+++ b/erpnext/crm/report/campaign_efficiency/campaign_efficiency.py
@@ -28,7 +28,8 @@
 		conditions += " and date(creation) >= %(from_date)s"
 	if filters.to_date:
 		conditions += " and date(creation) <= %(to_date)s"
-	data = frappe.db.sql("""select campaign_name as "Campaign Name", count(name) as "Lead Count" from `tabLead` where 1 = 1 %s group by campaign_name""" % (conditions,),filters, as_dict=1)
+	data = frappe.db.sql("""select campaign_name as "Campaign Name", count(name) as "Lead Count" from `tabLead` 
+							where 1 = 1 %s group by campaign_name""" % (conditions,),filters, as_dict=1)
 	dl=list(data)
 	for row in dl:
 		is_quot_count_zero = False
@@ -54,16 +55,19 @@
 	
 def get_lead_opp_count(campaign):
 	opportunity_count = frappe.db.sql("""select count(name) from `tabOpportunity` 
-										where lead in (select name from `tabLead` where campaign_name = %s)""",campaign)
+											where lead in (select name from `tabLead` where campaign_name = %s)""",campaign)
 	return flt(opportunity_count[0][0]) if opportunity_count else 0
 	
 def get_quotation_ordered_count(campaign):
 	quotation_ordered_count = frappe.db.sql("""select count(name) from `tabQuotation` 
-												where status = 'Ordered' and lead in (select name from `tabLead` where campaign_name = %s)""",campaign)
+												where status = 'Ordered' and lead in 
+												(select name from `tabLead` where campaign_name = %s)""",campaign)
 	return flt(quotation_ordered_count[0][0]) if quotation_ordered_count else 0
 	
 def get_order_amount(campaign):
 	ordered_count_amount = frappe.db.sql("""select sum(base_net_amount) from `tabSales Order Item` 
-											where prevdoc_docname in (select name from `tabQuotation` 
-											where status = 'Ordered' and lead in (select name from `tabLead` where campaign_name = %s))""",campaign)
+												where prevdoc_docname in 
+												(select name from `tabQuotation` 
+												where status = 'Ordered' and lead in 
+												(select name from `tabLead` where campaign_name = %s))""",campaign)
 	return flt(ordered_count_amount[0][0]) if ordered_count_amount else 0
\ No newline at end of file
diff --git a/erpnext/crm/report/lead_owner_efficiency/lead_owner_efficiency.js b/erpnext/crm/report/lead_owner_efficiency/lead_owner_efficiency.js
index 217070b..bbfd6ac 100644
--- a/erpnext/crm/report/lead_owner_efficiency/lead_owner_efficiency.js
+++ b/erpnext/crm/report/lead_owner_efficiency/lead_owner_efficiency.js
@@ -1,6 +1,5 @@
 // Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
 // For license information, please see license.txt
-frappe.require("assets/erpnext/js/financial_statements.js", function() {
 	frappe.query_reports["Lead Owner Efficiency"] = {
 		"filters": [
 			{
@@ -15,7 +14,4 @@
 				"fieldtype": "Date",
 				"default": frappe.defaults.get_user_default("year_end_date"),
 			}
-		]
-	}
-});
-
+		]};
diff --git a/erpnext/crm/report/lead_owner_efficiency/lead_owner_efficiency.py b/erpnext/crm/report/lead_owner_efficiency/lead_owner_efficiency.py
index 0c63c95..7ac5518 100644
--- a/erpnext/crm/report/lead_owner_efficiency/lead_owner_efficiency.py
+++ b/erpnext/crm/report/lead_owner_efficiency/lead_owner_efficiency.py
@@ -54,16 +54,18 @@
 	
 def get_lead_opp_count(leadowner):
 	opportunity_count = frappe.db.sql("""select count(name) from `tabOpportunity` 
-										where lead in (select name from `tabLead` where lead_owner = %s)""",leadowner)
+											where lead in (select name from `tabLead` where lead_owner = %s)""",leadowner)
 	return flt(opportunity_count[0][0]) if opportunity_count else 0
 	
 def get_quotation_ordered_count(leadowner):
 	quotation_ordered_count = frappe.db.sql("""select count(name) from `tabQuotation` 
-												where status = 'Ordered' and lead in (select name from `tabLead` where lead_owner = %s)""",leadowner)
+												where status = 'Ordered' and lead in 
+												(select name from `tabLead` where lead_owner = %s)""",leadowner)
 	return flt(quotation_ordered_count[0][0]) if quotation_ordered_count else 0
 	
 def get_order_amount(leadowner):
 	ordered_count_amount = frappe.db.sql("""select sum(base_net_amount) from `tabSales Order Item` 
-											where prevdoc_docname in (select name from `tabQuotation` 
-											where status = 'Ordered' and lead in (select name from `tabLead` where lead_owner = %s))""",leadowner)
+												where prevdoc_docname in (select name from `tabQuotation` 
+												where status = 'Ordered' and lead in 
+												(select name from `tabLead` where lead_owner = %s))""",leadowner)
 	return flt(ordered_count_amount[0][0]) if ordered_count_amount else 0
\ No newline at end of file
