fix: ensure defaults removed in bad frappe patch get set again (#31659)
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 40c512c..1d5f5d7 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -267,6 +267,7 @@
erpnext.patches.v13_0.enable_ksa_vat_docs #1
erpnext.patches.v13_0.show_india_localisation_deprecation_warning
erpnext.patches.v13_0.show_hr_payroll_deprecation_warning
+erpnext.patches.v13_0.reset_corrupt_defaults
[post_model_sync]
execute:frappe.delete_doc_if_exists('Workspace', 'ERPNext Integrations Settings')
diff --git a/erpnext/patches/v13_0/reset_corrupt_defaults.py b/erpnext/patches/v13_0/reset_corrupt_defaults.py
new file mode 100644
index 0000000..7a6d50f
--- /dev/null
+++ b/erpnext/patches/v13_0/reset_corrupt_defaults.py
@@ -0,0 +1,29 @@
+import frappe
+
+
+def execute():
+ """
+ This patch is needed to fix parent incorrectly set as `__2fa` because of
+ https://github.com/frappe/frappe/commit/a822092211533ff17ff9b92dd86f6f868ed63e2e
+ """
+
+ for doctype in (
+ "Accounts Settings",
+ "Stock Settings",
+ "Selling Settings",
+ "Buying Settings",
+ "CRM Settings",
+ "Global Defaults",
+ "Healthcare Settings",
+ "Education Settings",
+ ):
+ try:
+ frappe.get_single(doctype).save()
+ except Exception:
+ pass
+
+ try:
+ pos_profile = frappe.get_last_doc("POS Profile")
+ pos_profile.set_defaults()
+ except Exception:
+ pass