diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
index 4932ae1..eb41ef6 100755
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -481,13 +481,8 @@
 			conditions.append("company=%s")
 			values.append(self.filters.company)
 
-		company_finance_book = erpnext.get_default_finance_book(self.filters.company)
-
-		if not self.filters.finance_book or (self.filters.finance_book == company_finance_book):
+		if self.filters.finance_book:
 			conditions.append("ifnull(finance_book,'') in (%s, '')")
-			values.append(company_finance_book)
-		elif self.filters.finance_book:
-			conditions.append("ifnull(finance_book,'') = %s")
 			values.append(self.filters.finance_book)
 
 		if self.filters.get(party_type_field):
diff --git a/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py b/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py
index 3613131..16bef56 100644
--- a/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py
+++ b/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py
@@ -31,11 +31,8 @@
 
 		filters_data.append(["against_voucher", "in", assets])
 
-	company_finance_book = erpnext.get_default_finance_book(filters.get("company"))
-	if (not filters.get('finance_book') or (filters.get('finance_book') == company_finance_book)):
+	if filters.get("finance_book"):
 		filters_data.append(["finance_book", "in", ['', filters.get('finance_book')]])
-	elif filters.get("finance_book"):
-		filters_data.append(["finance_book", "=", filters.get('finance_book')])
 
 	gl_entries = frappe.get_all('GL Entry',
 		filters= filters_data,
diff --git a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py
index 8428f26..0024931 100644
--- a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py
+++ b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py
@@ -355,7 +355,8 @@
 				"to_date": to_date,
 				"lft": root_lft,
 				"rgt": root_rgt,
-				"company": d.name
+				"company": d.name,
+				"finance_book": filters.get("finance_book")
 			},
 			as_dict=True)
 
@@ -385,14 +386,8 @@
 	if from_date:
 		additional_conditions.append("gl.posting_date >= %(from_date)s")
 
-	company_finance_book = erpnext.get_default_finance_book(filters.get("company"))
-
-	if not filters.get('finance_book') or (filters.get('finance_book') == company_finance_book):
-		additional_conditions.append("ifnull(finance_book, '') in (%s, '')" %
-			frappe.db.escape(company_finance_book))
-	elif filters.get("finance_book"):
-		additional_conditions.append("ifnull(finance_book, '') = %s " %
-			frappe.db.escape(filters.get("finance_book")))
+	if filters.get("finance_book"):
+		additional_conditions.append("ifnull(finance_book, '') in (%(finance_book)s, '')")
 
 	return " and {}".format(" and ".join(additional_conditions)) if additional_conditions else ""
 
diff --git a/erpnext/accounts/report/customer_ledger_summary/customer_ledger_summary.py b/erpnext/accounts/report/customer_ledger_summary/customer_ledger_summary.py
index 23b963b..7872dbe 100644
--- a/erpnext/accounts/report/customer_ledger_summary/customer_ledger_summary.py
+++ b/erpnext/accounts/report/customer_ledger_summary/customer_ledger_summary.py
@@ -184,12 +184,8 @@
 		if self.filters.company:
 			conditions.append("gle.company=%(company)s")
 
-		self.filters.company_finance_book = erpnext.get_default_finance_book(self.filters.company)
-
-		if not self.filters.finance_book or (self.filters.finance_book == self.filters.company_finance_book):
-			conditions.append("ifnull(finance_book,'') in (%(company_finance_book)s, '')")
-		elif self.filters.finance_book:
-			conditions.append("ifnull(finance_book,'') = %(finance_book)s")
+		if self.filters.finance_book:
+			conditions.append("ifnull(finance_book,'') in (%(finance_book)s, '')")
 
 		if self.filters.get("party"):
 			conditions.append("party=%(party)s")
diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py
index 43fb87c..f358b4a 100644
--- a/erpnext/accounts/report/financial_statements.py
+++ b/erpnext/accounts/report/financial_statements.py
@@ -392,14 +392,8 @@
 			filters.cost_center = get_cost_centers_with_children(filters.cost_center)
 			additional_conditions.append("cost_center in %(cost_center)s")
 
-		company_finance_book = erpnext.get_default_finance_book(filters.get("company"))
-
-		if not filters.get('finance_book') or (filters.get('finance_book') == company_finance_book):
-			additional_conditions.append("ifnull(finance_book, '') in (%s, '')" %
-				frappe.db.escape(company_finance_book))
-		elif filters.get("finance_book"):
-			additional_conditions.append("ifnull(finance_book, '') = %s " %
-				frappe.db.escape(filters.get("finance_book")))
+		if filters.get("finance_book"):
+			additional_conditions.append("ifnull(finance_book, '') in (%(finance_book)s, '')")
 
 	return " and {}".format(" and ".join(additional_conditions)) if additional_conditions else ""
 
diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py
index ecb18f7..44ca8d3 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.py
+++ b/erpnext/accounts/report/general_ledger/general_ledger.py
@@ -186,12 +186,8 @@
 	if filters.get("project"):
 		conditions.append("project in %(project)s")
 
-	company_finance_book = erpnext.get_default_finance_book(filters.get("company"))
-	if not filters.get("finance_book") or (filters.get("finance_book") == company_finance_book):
-		filters['finance_book'] = company_finance_book
+	if filters.get("finance_book"):
 		conditions.append("ifnull(finance_book, '') in (%(finance_book)s, '')")
-	elif filters.get("finance_book"):
-		conditions.append("ifnull(finance_book, '') = %(finance_book)s")
 
 	from frappe.desk.reportview import build_match_conditions
 	match_conditions = build_match_conditions("GL Entry")
