From d2b09f71c3153f71252dea7f7d066ab446188ec2 Mon Sep 17 00:00:00 2001 From: Shllokkk Date: Sat, 16 May 2026 17:57:46 +0530 Subject: [PATCH] fix: populate missing letter_head_for in tabLetter Head and set default letterheads --- erpnext/patches.txt | 3 +- ...ault_letter_head_for_doctype_and_report.py | 44 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 erpnext/patches/v16_0/set_default_letter_head_for_doctype_and_report.py diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 918d4a1b054..d8f432f1d96 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -480,4 +480,5 @@ erpnext.patches.v16_0.merge_repost_settings_to_accounts_settings erpnext.patches.v16_0.set_root_type_in_account_categories erpnext.patches.v16_0.scr_inv_dimension erpnext.patches.v16_0.packed_item_inv_dimen -erpnext.patches.v16_0.set_not_applicable_on_german_item_tax_templates \ No newline at end of file +erpnext.patches.v16_0.set_not_applicable_on_german_item_tax_templates +erpnext.patches.v16_0.set_default_letter_head_for_doctype_and_report \ No newline at end of file diff --git a/erpnext/patches/v16_0/set_default_letter_head_for_doctype_and_report.py b/erpnext/patches/v16_0/set_default_letter_head_for_doctype_and_report.py new file mode 100644 index 00000000000..c6826cdba17 --- /dev/null +++ b/erpnext/patches/v16_0/set_default_letter_head_for_doctype_and_report.py @@ -0,0 +1,44 @@ +import frappe +from frappe.query_builder import DocType + + +def execute(): + LH = DocType("Letter Head") + update_letter_head_for_query = ( + frappe.qb.update(LH).set(LH.letter_head_for, "DocType").where(LH.letter_head_for.isnull()) + ) + + update_letter_head_for_query.run() + + for letter_head_for in ("DocType", "Report"): + default_exists = frappe.db.exists( + "Letter Head", + { + "is_default": 1, + "letter_head_for": letter_head_for, + }, + ) + + if default_exists: + continue + + standard_letter_head = frappe.db.get_value( + "Letter Head", + { + "standard": "Yes", + "disabled": 0, + "letter_head_for": letter_head_for, + }, + "name", + ) + + if not standard_letter_head: + continue + + frappe.db.set_value( + "Letter Head", + standard_letter_head, + "is_default", + 1, + update_modified=False, + )