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: