From c9d22386ed40a775884de743f2a52e36d49a5add Mon Sep 17 00:00:00 2001 From: diptanilsaha Date: Wed, 17 Sep 2025 11:42:36 +0530 Subject: [PATCH] fix: added print format validation on process statement of accounts --- .../process_statement_of_accounts.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py index 758188b4704..96389f67e1e 100644 --- a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py +++ b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py @@ -111,9 +111,23 @@ class ProcessStatementOfAccounts(Document): self.from_date = add_months(self.to_date, -1 * self.filter_duration) if self.print_format: - print_format_type = frappe.db.get_value("Print Format", self.print_format, "print_format_type") - if print_format_type != "Jinja": + pf = frappe.db.get_value( + "Print Format", + self.print_format, + ["print_format_type", "print_format_for", "report", "disabled"], + as_dict=True, + ) + if not pf: + frappe.throw(title=_("Invalid Print Format"), msg=_("Selected Print Format does not exist.")) + if pf.print_format_type != "Jinja": frappe.throw(title=_("Invalid Print Format"), msg=_("Print Format Type should be Jinja.")) + if pf.print_format_for != "Report" or pf.report != self.report or pf.disabled: + frappe.throw( + title=_("Invalid Print Format"), + msg=_( + "Print Format must be an enabled Report Print Format matching the selected Report." + ), + ) def validate_account(self): if not self.account: