Skip to content

Commit

Permalink
Merge pull request #33393 from deepeshgarg007/cc_filter_cashflow_report
Browse files Browse the repository at this point in the history
fix: Cost center filter not working in cash flow report
  • Loading branch information
deepeshgarg007 committed Dec 20, 2022
2 parents 9253875 + 068df9f commit 1da14b7
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions erpnext/accounts/report/cash_flow/cash_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

from erpnext.accounts.report.financial_statements import (
get_columns,
get_cost_centers_with_children,
get_data,
get_filtered_list_for_consolidated_report,
get_period_list,
Expand Down Expand Up @@ -160,10 +161,11 @@ def get_account_type_based_data(company, account_type, period_list, accumulated_
total = 0
for period in period_list:
start_date = get_start_date(period, accumulated_values, company)
filters.start_date = start_date
filters.end_date = period["to_date"]
filters.account_type = account_type

amount = get_account_type_based_gl_data(
company, start_date, period["to_date"], account_type, filters
)
amount = get_account_type_based_gl_data(company, filters)

if amount and account_type == "Depreciation":
amount *= -1
Expand All @@ -175,7 +177,7 @@ def get_account_type_based_data(company, account_type, period_list, accumulated_
return data


def get_account_type_based_gl_data(company, start_date, end_date, account_type, filters=None):
def get_account_type_based_gl_data(company, filters=None):
cond = ""
filters = frappe._dict(filters or {})

Expand All @@ -191,17 +193,21 @@ def get_account_type_based_gl_data(company, start_date, end_date, account_type,
frappe.db.escape(cstr(filters.finance_book))
)

if filters.get("cost_center"):
filters.cost_center = get_cost_centers_with_children(filters.cost_center)
cond += " and cost_center in %(cost_center)s"

gl_sum = frappe.db.sql_list(
"""
select sum(credit) - sum(debit)
from `tabGL Entry`
where company=%s and posting_date >= %s and posting_date <= %s
where company=%(company)s and posting_date >= %(start_date)s and posting_date <= %(end_date)s
and voucher_type != 'Period Closing Voucher'
and account in ( SELECT name FROM tabAccount WHERE account_type = %s) {cond}
and account in ( SELECT name FROM tabAccount WHERE account_type = %(account_type)s) {cond}
""".format(
cond=cond
),
(company, start_date, end_date, account_type),
filters,
)

return gl_sum[0] if gl_sum and gl_sum[0] else 0
Expand Down

0 comments on commit 1da14b7

Please sign in to comment.