Merge pull request #16140 from deepeshgarg007/total_row_report_fix

This commit is contained in:
Suraj Shetty 2022-02-28 09:20:30 +05:30 committed by GitHub
commit e10cd292f8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 16 deletions

View file

@ -330,7 +330,8 @@ result = [
}
]
result = add_total_row(result, columns, meta=None, report_settings=report_settings)
result = add_total_row(result, columns, meta=None, is_tree=report_settings['tree'],
parent_field=report_settings['parent_field'])
self.assertEqual(result[-1][0], "Total")
self.assertEqual(result[-1][1], 200)
self.assertEqual(result[-1][2], 150.50)

View file

@ -73,7 +73,7 @@ def get_report_result(report, filters):
return res
@frappe.read_only()
def generate_report_result(report, filters=None, user=None, custom_columns=None, report_settings=None):
def generate_report_result(report, filters=None, user=None, custom_columns=None, is_tree=False, parent_field=None):
user = user or frappe.session.user
filters = filters or []
@ -108,7 +108,7 @@ def generate_report_result(report, filters=None, user=None, custom_columns=None,
result = get_filtered_data(report.ref_doctype, columns, result, user)
if cint(report.add_total_row) and result and not skip_total_row:
result = add_total_row(result, columns, report_settings=report_settings)
result = add_total_row(result, columns, is_tree=is_tree, parent_field=parent_field)
return {
"result": result,
@ -210,7 +210,7 @@ def get_script(report_name):
@frappe.whitelist()
@frappe.read_only()
def run(report_name, filters=None, user=None, ignore_prepared_report=False, custom_columns=None, report_settings=None):
def run(report_name, filters=None, user=None, ignore_prepared_report=False, custom_columns=None, is_tree=False, parent_field=None):
report = get_report_doc(report_name)
if not user:
user = frappe.session.user
@ -238,7 +238,7 @@ def run(report_name, filters=None, user=None, ignore_prepared_report=False, cust
dn = ""
result = get_prepared_report_result(report, filters, dn, user)
else:
result = generate_report_result(report, filters, user, custom_columns, report_settings)
result = generate_report_result(report, filters, user, custom_columns, is_tree, parent_field)
result["add_total_row"] = report.add_total_row and not result.get(
"skip_total_row", False
@ -435,18 +435,9 @@ def build_xlsx_data(columns, data, visible_idx, include_indentation, ignore_visi
return result, column_widths
def add_total_row(result, columns, meta=None, report_settings=None):
def add_total_row(result, columns, meta=None, is_tree=False, parent_field=None):
total_row = [""] * len(columns)
has_percent = []
is_tree = False
parent_field = ''
if report_settings:
if isinstance(report_settings, (str,)):
report_settings = json.loads(report_settings)
is_tree = report_settings.get('tree')
parent_field = report_settings.get('parent_field')
for i, col in enumerate(columns):
fieldtype, options, fieldname = None, None, None

View file

@ -578,7 +578,8 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList {
args: {
report_name: this.report_name,
filters: filters,
report_settings: this.report_settings
is_tree: this.report_settings.tree,
parent_field: this.report_settings.parent_field
},
callback: resolve,
always: () => this.page.btn_secondary.prop('disabled', false)