From ce04526db8703da9bc10a31b09f147aca963c999 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Thu, 30 Jan 2020 15:33:51 +0530 Subject: [PATCH 1/3] fix: Do not show any finance book record if no finance book filter is applied --- erpnext/accounts/report/cash_flow/cash_flow.py | 2 ++ erpnext/accounts/report/financial_statements.py | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/report/cash_flow/cash_flow.py b/erpnext/accounts/report/cash_flow/cash_flow.py index 0b124774479..702c81ccb76 100644 --- a/erpnext/accounts/report/cash_flow/cash_flow.py +++ b/erpnext/accounts/report/cash_flow/cash_flow.py @@ -136,6 +136,8 @@ def get_account_type_based_gl_data(company, start_date, end_date, account_type, cond = """ AND (finance_book in (%s, %s, '') OR finance_book IS NULL) """ %(frappe.db.escape(filters.finance_book), frappe.db.escape(company_fb)) + else: + cond = "AND (finance_book = '' OR finance_book IS NULL)" gl_sum = frappe.db.sql_list(""" select sum(credit) - sum(debit) diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py index 32d9075f443..a1ecaae2a11 100644 --- a/erpnext/accounts/report/financial_statements.py +++ b/erpnext/accounts/report/financial_statements.py @@ -13,7 +13,7 @@ import frappe, erpnext from erpnext.accounts.report.utils import get_currency, convert_to_presentation_currency from erpnext.accounts.utils import get_fiscal_year from frappe import _ -from frappe.utils import (flt, getdate, get_first_day, add_months, add_days, formatdate) +from frappe.utils import (flt, getdate, get_first_day, add_months, add_days, formatdate, cstr) from six import itervalues from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import get_accounting_dimensions @@ -356,7 +356,7 @@ def set_gl_entries_by_account( "company": company, "from_date": from_date, "to_date": to_date, - "finance_book": filters.get("finance_book") + "finance_book": cstr(filters.get("finance_book")) } if filters.get("include_default_book_entries"): @@ -411,6 +411,8 @@ def get_additional_conditions(from_date, ignore_closing_entries, filters): additional_conditions.append("(finance_book in (%(finance_book)s, %(company_fb)s, '') OR finance_book IS NULL)") else: additional_conditions.append("(finance_book in (%(finance_book)s, '') OR finance_book IS NULL)") + else: + additional_conditions.append("(finance_book = '' OR finance_book IS NULL)") if accounting_dimensions: for dimension in accounting_dimensions: From ba44f28202245341017a4ba00638dd6fab973464 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Fri, 31 Jan 2020 09:08:29 +0530 Subject: [PATCH 2/3] fix: Filtering fixes in financial statement --- erpnext/accounts/report/cash_flow/cash_flow.py | 9 ++++----- .../consolidated_financial_statement.py | 9 ++++----- erpnext/accounts/report/financial_statements.py | 11 ++++------- 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/erpnext/accounts/report/cash_flow/cash_flow.py b/erpnext/accounts/report/cash_flow/cash_flow.py index 702c81ccb76..3c2aa654d98 100644 --- a/erpnext/accounts/report/cash_flow/cash_flow.py +++ b/erpnext/accounts/report/cash_flow/cash_flow.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals import frappe from frappe import _ -from frappe.utils import cint +from frappe.utils import cint, cstr from erpnext.accounts.report.financial_statements import (get_period_list, get_columns, get_data) from erpnext.accounts.report.profit_and_loss_statement.profit_and_loss_statement import get_net_profit_loss from erpnext.accounts.utils import get_fiscal_year @@ -130,14 +130,13 @@ def get_account_type_based_gl_data(company, start_date, end_date, account_type, filters = frappe._dict(filters) if filters.finance_book: - cond = " AND (finance_book in (%s, '') OR finance_book IS NULL)" %(frappe.db.escape(filters.finance_book)) if filters.include_default_book_entries: company_fb = frappe.db.get_value("Company", company, 'default_finance_book') - cond = """ AND (finance_book in (%s, %s, '') OR finance_book IS NULL) """ %(frappe.db.escape(filters.finance_book), frappe.db.escape(company_fb)) - else: - cond = "AND (finance_book = '' OR finance_book IS NULL)" + else: + cond = " AND (finance_book in (%s, '') OR finance_book IS NULL)" %(frappe.db.escape(cstr(filters.finance_book))) + gl_sum = frappe.db.sql_list(""" select sum(credit) - sum(debit) 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 e9eb819cc64..4a79b6a340e 100644 --- a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py +++ b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py @@ -387,11 +387,10 @@ def get_additional_conditions(from_date, ignore_closing_entries, filters): if from_date: additional_conditions.append("gl.posting_date >= %(from_date)s") - if filters.get("finance_book"): - if filters.get("include_default_book_entries"): - additional_conditions.append("(finance_book in (%(finance_book)s, %(company_fb)s, '') OR finance_book IS NULL)") - else: - additional_conditions.append("(finance_book in (%(finance_book)s, '') OR finance_book IS NULL)") + if filters.get("include_default_book_entries"): + additional_conditions.append("(finance_book in (%(finance_book)s, %(company_fb)s, '') OR finance_book IS NULL)") + else: + additional_conditions.append("(finance_book in (%(finance_book)s, '') OR finance_book IS NULL)") return " and {}".format(" and ".join(additional_conditions)) if additional_conditions else "" diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py index a1ecaae2a11..57e8e0ea8fc 100644 --- a/erpnext/accounts/report/financial_statements.py +++ b/erpnext/accounts/report/financial_statements.py @@ -406,14 +406,11 @@ def get_additional_conditions(from_date, ignore_closing_entries, filters): filters.cost_center = get_cost_centers_with_children(filters.cost_center) additional_conditions.append("cost_center in %(cost_center)s") - if filters.get("finance_book"): - if filters.get("include_default_book_entries"): - additional_conditions.append("(finance_book in (%(finance_book)s, %(company_fb)s, '') OR finance_book IS NULL)") - else: - additional_conditions.append("(finance_book in (%(finance_book)s, '') OR finance_book IS NULL)") + if filters.get("include_default_book_entries"): + additional_conditions.append("(finance_book in (%(finance_book)s, %(company_fb)s, '') OR finance_book IS NULL)") else: - additional_conditions.append("(finance_book = '' OR finance_book IS NULL)") - + additional_conditions.append("(finance_book in (%(finance_book)s, '') OR finance_book IS NULL)") + if accounting_dimensions: for dimension in accounting_dimensions: if filters.get(dimension): From 34c33baa820c18c7ca01db401075b0e0a07db6d3 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Fri, 31 Jan 2020 11:16:30 +0530 Subject: [PATCH 3/3] fix: Cash flow filter fix --- erpnext/accounts/report/cash_flow/cash_flow.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/erpnext/accounts/report/cash_flow/cash_flow.py b/erpnext/accounts/report/cash_flow/cash_flow.py index 3c2aa654d98..e349a6aaaf0 100644 --- a/erpnext/accounts/report/cash_flow/cash_flow.py +++ b/erpnext/accounts/report/cash_flow/cash_flow.py @@ -129,14 +129,13 @@ def get_account_type_based_gl_data(company, start_date, end_date, account_type, cond = "" filters = frappe._dict(filters) - if filters.finance_book: - if filters.include_default_book_entries: - company_fb = frappe.db.get_value("Company", company, 'default_finance_book') - cond = """ AND (finance_book in (%s, %s, '') OR finance_book IS NULL) - """ %(frappe.db.escape(filters.finance_book), frappe.db.escape(company_fb)) - else: - cond = " AND (finance_book in (%s, '') OR finance_book IS NULL)" %(frappe.db.escape(cstr(filters.finance_book))) - + if filters.include_default_book_entries: + company_fb = frappe.db.get_value("Company", company, 'default_finance_book') + cond = """ AND (finance_book in (%s, %s, '') OR finance_book IS NULL) + """ %(frappe.db.escape(filters.finance_book), frappe.db.escape(company_fb)) + else: + cond = " AND (finance_book in (%s, '') OR finance_book IS NULL)" %(frappe.db.escape(cstr(filters.finance_book))) + gl_sum = frappe.db.sql_list(""" select sum(credit) - sum(debit)