From 5bbcb73808464a18fdc4b216cf1c9e50c2db2023 Mon Sep 17 00:00:00 2001 From: Shllokkk Date: Sun, 29 Mar 2026 02:02:59 +0530 Subject: [PATCH 1/3] fix: revamp print formats for accounts receivable summary and accounts payable summary reports --- .../__init__.py | 0 .../accounts_payable_summary_standard.json | 33 ++++ .../__init__.py | 0 .../accounts_receivable_summary_standard.json | 33 ++++ .../accounts_payable_summary.html | 173 +++++++++++++++++- .../accounts_receivable_summary.html | 173 +++++++++++++++++- 6 files changed, 410 insertions(+), 2 deletions(-) create mode 100644 erpnext/accounts/print_format/accounts_payable_summary_standard/__init__.py create mode 100644 erpnext/accounts/print_format/accounts_payable_summary_standard/accounts_payable_summary_standard.json create mode 100644 erpnext/accounts/print_format/accounts_receivable_summary_standard/__init__.py create mode 100644 erpnext/accounts/print_format/accounts_receivable_summary_standard/accounts_receivable_summary_standard.json diff --git a/erpnext/accounts/print_format/accounts_payable_summary_standard/__init__.py b/erpnext/accounts/print_format/accounts_payable_summary_standard/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/accounts/print_format/accounts_payable_summary_standard/accounts_payable_summary_standard.json b/erpnext/accounts/print_format/accounts_payable_summary_standard/accounts_payable_summary_standard.json new file mode 100644 index 00000000000..24a12fd1cb0 --- /dev/null +++ b/erpnext/accounts/print_format/accounts_payable_summary_standard/accounts_payable_summary_standard.json @@ -0,0 +1,33 @@ +{ + "absolute_value": 0, + "align_labels_right": 0, + "creation": "2026-03-29 01:59:18.659670", + "custom_format": 1, + "default_print_language": "en", + "disabled": 0, + "docstatus": 0, + "doctype": "Print Format", + "font_size": 14, + "html": "\n\n
\n\n
\n\n
\n
\n {%= __(report.report_name) %}\n
\n
\n\n
\n
\n
\n {%= __(\"Supplier\") %}:\n {%= (filters.party && filters.party.length && filters.party.join(\", \")) || __(\"All Parties\") %}\n
\n
\n\n
\n
\n {%= __(\"Ageing Based On\") %}:\n {%= __(filters.ageing_based_on) %}\n
\n
\n {%= __(\"As on Date\") %}:\n {%= frappe.datetime.str_to_user(filters.report_date) %}\n
\n
\n
\n\n \n
\n \n \n \n \n \n \n \n \n \n \n\n \n {% for (var i = 0, l = data.length; i < l; i++) { \n var row = data[i];\n if (!(row.party || row.is_total_row)) continue;\n %}\n \n \n \n\n \n \n \n \n \n {% } %}\n \n
{%= __(\"Supplier\") %}{%= __(\"Total Invoiced Amount\") %}{%= __(\"Total Paid Amount\") %}{%= __(\"Debit Note Amount\") %}{%= __(\"Total Outstanding Amount\") %}
\n {% if (row.is_total_row) { %}\n {%= __(\"Total\") %}\n {% } else { %}\n {%= row.party %}\n {% } %}\n \n {%= format_currency(row.invoiced, row.currency) %}\n \n {%= format_currency(row.paid, row.currency) %}\n \n {%= format_currency(row.debit_note, row.currency) %}\n \n {%= format_currency(row.outstanding, row.currency) %}\n
\n
\n\n

\n {%= __(\"Printed on {0}\", [\n frappe.datetime.str_to_user(frappe.datetime.get_datetime_as_string())\n ]) %}\n

\n\n
", + "idx": 0, + "line_breaks": 0, + "margin_bottom": 15.0, + "margin_left": 15.0, + "margin_right": 15.0, + "margin_top": 15.0, + "modified": "2026-03-29 02:01:02.803591", + "modified_by": "Administrator", + "module": "Accounts", + "name": "Accounts Payable Summary Standard", + "owner": "Administrator", + "page_number": "Hide", + "pdf_generator": "chrome", + "print_format_builder": 0, + "print_format_builder_beta": 0, + "print_format_for": "Report", + "print_format_type": "JS", + "raw_printing": 0, + "report": "Accounts Payable Summary", + "show_section_headings": 0, + "standard": "Yes" +} diff --git a/erpnext/accounts/print_format/accounts_receivable_summary_standard/__init__.py b/erpnext/accounts/print_format/accounts_receivable_summary_standard/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/accounts/print_format/accounts_receivable_summary_standard/accounts_receivable_summary_standard.json b/erpnext/accounts/print_format/accounts_receivable_summary_standard/accounts_receivable_summary_standard.json new file mode 100644 index 00000000000..24128210dd2 --- /dev/null +++ b/erpnext/accounts/print_format/accounts_receivable_summary_standard/accounts_receivable_summary_standard.json @@ -0,0 +1,33 @@ +{ + "absolute_value": 0, + "align_labels_right": 0, + "creation": "2026-03-29 01:45:09.285854", + "custom_format": 1, + "default_print_language": "en", + "disabled": 0, + "docstatus": 0, + "doctype": "Print Format", + "font_size": 14, + "html": "\n\n
\n\n
\n\n
\n
\n {%= __(report.report_name) %}\n
\n
\n\n
\n
\n
\n {%= __(\"Customer\") %}:\n {%= (filters.party && filters.party.length && filters.party.join(\", \")) || __(\"All Parties\") %}\n
\n
\n\n
\n
\n {%= __(\"Ageing Based On\") %}:\n {%= __(filters.ageing_based_on) %}\n
\n
\n {%= __(\"As on Date\") %}:\n {%= frappe.datetime.str_to_user(filters.report_date) %}\n
\n
\n
\n\n \n
\n \n \n \n \n \n \n \n \n \n \n\n \n {% for (var i = 0, l = data.length; i < l; i++) { \n var row = data[i];\n if (!(row.party || row.is_total_row)) continue;\n %}\n \n \n \n\n \n \n \n \n \n {% } %}\n \n
{%= __(\"Customer\") %}{%= __(\"Total Invoiced Amount\") %}{%= __(\"Total Paid Amount\") %}{%= __(\"Debit Note Amount\") %}{%= __(\"Total Outstanding Amount\") %}
\n {% if (row.is_total_row) { %}\n {%= __(\"Total\") %}\n {% } else { %}\n {%= row.party %}\n {% } %}\n \n {%= format_currency(row.invoiced, row.currency) %}\n \n {%= format_currency(row.paid, row.currency) %}\n \n {%= format_currency(row.credit_note, row.currency) %}\n \n {%= format_currency(row.outstanding, row.currency) %}\n
\n
\n\n

\n {%= __(\"Printed on {0}\", [\n frappe.datetime.str_to_user(frappe.datetime.get_datetime_as_string())\n ]) %}\n

\n\n
", + "idx": 0, + "line_breaks": 0, + "margin_bottom": 15.0, + "margin_left": 15.0, + "margin_right": 15.0, + "margin_top": 15.0, + "modified": "2026-03-29 02:00:53.128608", + "modified_by": "Administrator", + "module": "Accounts", + "name": "Accounts Receivable Summary Standard", + "owner": "Administrator", + "page_number": "Hide", + "pdf_generator": "chrome", + "print_format_builder": 0, + "print_format_builder_beta": 0, + "print_format_for": "Report", + "print_format_type": "JS", + "raw_printing": 0, + "report": "Accounts Receivable Summary", + "show_section_headings": 0, + "standard": "Yes" +} diff --git a/erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.html b/erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.html index d3020b22a40..00aac67a8cd 100644 --- a/erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.html +++ b/erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.html @@ -1 +1,172 @@ -{% include "accounts/report/accounts_receivable/accounts_receivable.html" %} + + +
+ +
+ +
+
+ {%= __(report.report_name) %} +
+
+ +
+
+
+ {%= __("Supplier") %}: + {%= (filters.party && filters.party.length && filters.party.join(", ")) || __("All Parties") %} +
+
+ +
+
+ {%= __("Ageing Based On") %}: + {%= __(filters.ageing_based_on) %} +
+
+ {%= __("As on Date") %}: + {%= frappe.datetime.str_to_user(filters.report_date) %} +
+
+
+ + +
+ + + + + + + + + + + + + {% for (var i = 0, l = data.length; i < l; i++) { + var row = data[i]; + if (!(row.party || row.is_total_row)) continue; + %} + + + + + + + + + + {% } %} + +
{%= __("Supplier") %}{%= __("Total Invoiced Amount") %}{%= __("Total Paid Amount") %}{%= __("Debit Note Amount") %}{%= __("Total Outstanding Amount") %}
+ {% if (row.is_total_row) { %} + {%= __("Total") %} + {% } else { %} + {%= row.party %} + {% } %} + + {%= format_currency(row.invoiced, row.currency) %} + + {%= format_currency(row.paid, row.currency) %} + + {%= format_currency(row.debit_note, row.currency) %} + + {%= format_currency(row.outstanding, row.currency) %} +
+
+ +

+ {%= __("Printed on {0}", [ + frappe.datetime.str_to_user(frappe.datetime.get_datetime_as_string()) + ]) %} +

+ +
\ No newline at end of file diff --git a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.html b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.html index d3020b22a40..af7df3851ec 100644 --- a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.html +++ b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.html @@ -1 +1,172 @@ -{% include "accounts/report/accounts_receivable/accounts_receivable.html" %} + + +
+ +
+ +
+
+ {%= __(report.report_name) %} +
+
+ +
+
+
+ {%= __("Customer") %}: + {%= (filters.party && filters.party.length && filters.party.join(", ")) || __("All Parties") %} +
+
+ +
+
+ {%= __("Ageing Based On") %}: + {%= __(filters.ageing_based_on) %} +
+
+ {%= __("As on Date") %}: + {%= frappe.datetime.str_to_user(filters.report_date) %} +
+
+
+ + +
+ + + + + + + + + + + + + {% for (var i = 0, l = data.length; i < l; i++) { + var row = data[i]; + if (!(row.party || row.is_total_row)) continue; + %} + + + + + + + + + + {% } %} + +
{%= __("Customer") %}{%= __("Total Invoiced Amount") %}{%= __("Total Paid Amount") %}{%= __("Debit Note Amount") %}{%= __("Total Outstanding Amount") %}
+ {% if (row.is_total_row) { %} + {%= __("Total") %} + {% } else { %} + {%= row.party %} + {% } %} + + {%= format_currency(row.invoiced, row.currency) %} + + {%= format_currency(row.paid, row.currency) %} + + {%= format_currency(row.credit_note, row.currency) %} + + {%= format_currency(row.outstanding, row.currency) %} +
+
+ +

+ {%= __("Printed on {0}", [ + frappe.datetime.str_to_user(frappe.datetime.get_datetime_as_string()) + ]) %} +

+ +
\ No newline at end of file From 86ee9959a215e76543e6455b6bd2962b49c05258 Mon Sep 17 00:00:00 2001 From: Shllokkk Date: Wed, 1 Apr 2026 12:30:05 +0530 Subject: [PATCH 2/3] fix: minor bugs in print templates --- .../accounts_payable_summary_standard.json | 4 ++-- .../accounts_receivable_summary_standard.json | 4 ++-- .../accounts_payable_summary/accounts_payable_summary.html | 2 -- .../accounts_receivable_summary.html | 4 +--- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/erpnext/accounts/print_format/accounts_payable_summary_standard/accounts_payable_summary_standard.json b/erpnext/accounts/print_format/accounts_payable_summary_standard/accounts_payable_summary_standard.json index 24a12fd1cb0..95da0e221aa 100644 --- a/erpnext/accounts/print_format/accounts_payable_summary_standard/accounts_payable_summary_standard.json +++ b/erpnext/accounts/print_format/accounts_payable_summary_standard/accounts_payable_summary_standard.json @@ -8,14 +8,14 @@ "docstatus": 0, "doctype": "Print Format", "font_size": 14, - "html": "\n\n
\n\n
\n\n
\n
\n {%= __(report.report_name) %}\n
\n
\n\n
\n
\n
\n {%= __(\"Supplier\") %}:\n {%= (filters.party && filters.party.length && filters.party.join(\", \")) || __(\"All Parties\") %}\n
\n
\n\n
\n
\n {%= __(\"Ageing Based On\") %}:\n {%= __(filters.ageing_based_on) %}\n
\n
\n {%= __(\"As on Date\") %}:\n {%= frappe.datetime.str_to_user(filters.report_date) %}\n
\n
\n
\n\n \n
\n \n \n \n \n \n \n \n \n \n \n\n \n {% for (var i = 0, l = data.length; i < l; i++) { \n var row = data[i];\n if (!(row.party || row.is_total_row)) continue;\n %}\n \n \n \n\n \n \n \n \n \n {% } %}\n \n
{%= __(\"Supplier\") %}{%= __(\"Total Invoiced Amount\") %}{%= __(\"Total Paid Amount\") %}{%= __(\"Debit Note Amount\") %}{%= __(\"Total Outstanding Amount\") %}
\n {% if (row.is_total_row) { %}\n {%= __(\"Total\") %}\n {% } else { %}\n {%= row.party %}\n {% } %}\n \n {%= format_currency(row.invoiced, row.currency) %}\n \n {%= format_currency(row.paid, row.currency) %}\n \n {%= format_currency(row.debit_note, row.currency) %}\n \n {%= format_currency(row.outstanding, row.currency) %}\n
\n
\n\n

\n {%= __(\"Printed on {0}\", [\n frappe.datetime.str_to_user(frappe.datetime.get_datetime_as_string())\n ]) %}\n

\n\n
", + "html": "\n\n
\n\n
\n\n
\n
\n {%= __(report.report_name) %}\n
\n
\n\n
\n
\n
\n {%= __(\"Supplier\") %}:\n {%= (filters.party && filters.party.length && filters.party.join(\", \")) || __(\"All Parties\") %}\n
\n
\n\n
\n
\n {%= __(\"Ageing Based On\") %}:\n {%= __(filters.ageing_based_on) %}\n
\n
\n {%= __(\"As on Date\") %}:\n {%= frappe.datetime.str_to_user(filters.report_date) %}\n
\n
\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n\n \n {% for (var i = 0, l = data.length; i < l; i++) { \n var row = data[i];\n if (!(row.party || row.is_total_row)) continue;\n %}\n \n \n\n \n \n \n \n \n {% } %}\n \n
{%= __(\"Supplier\") %}{%= __(\"Total Invoiced Amount\") %}{%= __(\"Total Paid Amount\") %}{%= __(\"Debit Note Amount\") %}{%= __(\"Total Outstanding Amount\") %}
\n {% if (row.is_total_row) { %}\n {%= __(\"Total\") %}\n {% } else { %}\n {%= row.party %}\n {% } %}\n \n {%= format_currency(row.invoiced, row.currency) %}\n \n {%= format_currency(row.paid, row.currency) %}\n \n {%= format_currency(row.debit_note, row.currency) %}\n \n {%= format_currency(row.outstanding, row.currency) %}\n
\n
\n\n

\n {%= __(\"Printed on {0}\", [\n frappe.datetime.str_to_user(frappe.datetime.get_datetime_as_string())\n ]) %}\n

\n\n
", "idx": 0, "line_breaks": 0, "margin_bottom": 15.0, "margin_left": 15.0, "margin_right": 15.0, "margin_top": 15.0, - "modified": "2026-03-29 02:01:02.803591", + "modified": "2026-04-01 12:31:46.117872", "modified_by": "Administrator", "module": "Accounts", "name": "Accounts Payable Summary Standard", diff --git a/erpnext/accounts/print_format/accounts_receivable_summary_standard/accounts_receivable_summary_standard.json b/erpnext/accounts/print_format/accounts_receivable_summary_standard/accounts_receivable_summary_standard.json index 24128210dd2..b430495a1f5 100644 --- a/erpnext/accounts/print_format/accounts_receivable_summary_standard/accounts_receivable_summary_standard.json +++ b/erpnext/accounts/print_format/accounts_receivable_summary_standard/accounts_receivable_summary_standard.json @@ -8,14 +8,14 @@ "docstatus": 0, "doctype": "Print Format", "font_size": 14, - "html": "\n\n
\n\n
\n\n
\n
\n {%= __(report.report_name) %}\n
\n
\n\n
\n
\n
\n {%= __(\"Customer\") %}:\n {%= (filters.party && filters.party.length && filters.party.join(\", \")) || __(\"All Parties\") %}\n
\n
\n\n
\n
\n {%= __(\"Ageing Based On\") %}:\n {%= __(filters.ageing_based_on) %}\n
\n
\n {%= __(\"As on Date\") %}:\n {%= frappe.datetime.str_to_user(filters.report_date) %}\n
\n
\n
\n\n \n
\n \n \n \n \n \n \n \n \n \n \n\n \n {% for (var i = 0, l = data.length; i < l; i++) { \n var row = data[i];\n if (!(row.party || row.is_total_row)) continue;\n %}\n \n \n \n\n \n \n \n \n \n {% } %}\n \n
{%= __(\"Customer\") %}{%= __(\"Total Invoiced Amount\") %}{%= __(\"Total Paid Amount\") %}{%= __(\"Debit Note Amount\") %}{%= __(\"Total Outstanding Amount\") %}
\n {% if (row.is_total_row) { %}\n {%= __(\"Total\") %}\n {% } else { %}\n {%= row.party %}\n {% } %}\n \n {%= format_currency(row.invoiced, row.currency) %}\n \n {%= format_currency(row.paid, row.currency) %}\n \n {%= format_currency(row.credit_note, row.currency) %}\n \n {%= format_currency(row.outstanding, row.currency) %}\n
\n
\n\n

\n {%= __(\"Printed on {0}\", [\n frappe.datetime.str_to_user(frappe.datetime.get_datetime_as_string())\n ]) %}\n

\n\n
", + "html": "\n\n
\n\n
\n\n
\n
\n {%= __(report.report_name) %}\n
\n
\n\n
\n
\n
\n {%= __(\"Customer\") %}:\n {%= (filters.party && filters.party.length && filters.party.join(\", \")) || __(\"All Parties\") %}\n
\n
\n\n
\n
\n {%= __(\"Ageing Based On\") %}:\n {%= __(filters.ageing_based_on) %}\n
\n
\n {%= __(\"As on Date\") %}:\n {%= frappe.datetime.str_to_user(filters.report_date) %}\n
\n
\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n\n \n {% for (var i = 0, l = data.length; i < l; i++) {\n var row = data[i];\n if (!(row.party || row.is_total_row)) continue;\n %}\n \n \n\n \n \n \n \n \n {% } %}\n \n
{%= __(\"Customer\") %}{%= __(\"Total Invoiced Amount\") %}{%= __(\"Total Paid Amount\") %}{%= __(\"Credit Note Amount\") %}{%= __(\"Total Outstanding Amount\") %}
\n {% if (row.is_total_row) { %}\n {%= __(\"Total\") %}\n {% } else { %}\n {%= row.party %}\n {% } %}\n \n {%= format_currency(row.invoiced, row.currency) %}\n \n {%= format_currency(row.paid, row.currency) %}\n \n {%= format_currency(row.credit_note, row.currency) %}\n \n {%= format_currency(row.outstanding, row.currency) %}\n
\n
\n\n

\n {%= __(\"Printed on {0}\", [\n frappe.datetime.str_to_user(frappe.datetime.get_datetime_as_string())\n ]) %}\n

\n\n
", "idx": 0, "line_breaks": 0, "margin_bottom": 15.0, "margin_left": 15.0, "margin_right": 15.0, "margin_top": 15.0, - "modified": "2026-03-29 02:00:53.128608", + "modified": "2026-04-01 12:31:21.651910", "modified_by": "Administrator", "module": "Accounts", "name": "Accounts Receivable Summary Standard", diff --git a/erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.html b/erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.html index 00aac67a8cd..9f42c9f65a3 100644 --- a/erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.html +++ b/erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.html @@ -117,7 +117,6 @@ -
@@ -136,7 +135,6 @@ if (!(row.party || row.is_total_row)) continue; %} -
{% if (row.is_total_row) { %} {%= __("Total") %} diff --git a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.html b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.html index af7df3851ec..48e42b439d4 100644 --- a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.html +++ b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.html @@ -117,7 +117,6 @@ -
@@ -125,7 +124,7 @@ - + @@ -136,7 +135,6 @@ if (!(row.party || row.is_total_row)) continue; %} -
{%= __("Customer") %} {%= __("Total Invoiced Amount") %} {%= __("Total Paid Amount") %}{%= __("Debit Note Amount") %}{%= __("Credit Note Amount") %} {%= __("Total Outstanding Amount") %}
{% if (row.is_total_row) { %} {%= __("Total") %} From 44e0b36093e8ffd176d007f194cfd05615780ff1 Mon Sep 17 00:00:00 2001 From: Shllokkk Date: Sun, 12 Apr 2026 13:14:24 +0530 Subject: [PATCH 3/3] fix: minor changes in print templates --- .../accounts_payable_summary.html | 40 ++++++++++++------- .../accounts_receivable_summary.html | 40 ++++++++++++------- 2 files changed, 50 insertions(+), 30 deletions(-) diff --git a/erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.html b/erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.html index 9f42c9f65a3..885e9f5d6b3 100644 --- a/erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.html +++ b/erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.html @@ -72,6 +72,10 @@ font-weight: 500; } + .report-subtitle { + margin: 10px 0 14px; + } + .text-center { text-align: center; } .text-right { text-align: right; font-variant-numeric: tabular-nums; } .text-left { text-align: left; } @@ -97,25 +101,31 @@ -
-
-
- {%= __("Supplier") %}: - {%= (filters.party && filters.party.length && filters.party.join(", ")) || __("All Parties") %} -
+ {% if (subtitle && subtitle.trim()) { %} +
+ {{ subtitle }}
+ {% } else { %} +
+
+
+ {%= __("Supplier") %}: + {%= (filters.party && filters.party.length && filters.party.join(", ")) || __("All Parties") %} +
+
-
-
- {%= __("Ageing Based On") %}: - {%= __(filters.ageing_based_on) %} -
-
- {%= __("As on Date") %}: - {%= frappe.datetime.str_to_user(filters.report_date) %} +
+
+ {%= __("Ageing Based On") %}: + {%= __(filters.ageing_based_on) %} +
+
+ {%= __("As on Date") %}: + {%= frappe.datetime.str_to_user(filters.report_date) %} +
-
+ {% } %}
diff --git a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.html b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.html index 48e42b439d4..235fea669bd 100644 --- a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.html +++ b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.html @@ -72,6 +72,10 @@ font-weight: 500; } + .report-subtitle { + margin: 10px 0 14px; + } + .text-center { text-align: center; } .text-right { text-align: right; font-variant-numeric: tabular-nums; } .text-left { text-align: left; } @@ -97,25 +101,31 @@ -
-
-
- {%= __("Customer") %}: - {%= (filters.party && filters.party.length && filters.party.join(", ")) || __("All Parties") %} -
+ {% if (subtitle && subtitle.trim()) { %} +
+ {{ subtitle }}
+ {% } else { %} +
+
+
+ {%= __("Customer") %}: + {%= (filters.party && filters.party.length && filters.party.join(", ")) || __("All Parties") %} +
+
-
-
- {%= __("Ageing Based On") %}: - {%= __(filters.ageing_based_on) %} -
-
- {%= __("As on Date") %}: - {%= frappe.datetime.str_to_user(filters.report_date) %} +
+
+ {%= __("Ageing Based On") %}: + {%= __(filters.ageing_based_on) %} +
+
+ {%= __("As on Date") %}: + {%= frappe.datetime.str_to_user(filters.report_date) %} +
-
+ {% } %}