fix(sms_settings): add patch to pre-fill roles into SMS Settings Roles Table

(cherry picked from commit 3501beb2bd)

# Conflicts:
#	erpnext/patches.txt
This commit is contained in:
AarDG10
2026-08-31 11:09:09 +05:30
committed by Mergify
parent 1b44df480f
commit 4b89ddffde
2 changed files with 44 additions and 0 deletions

View File

@@ -502,6 +502,11 @@ erpnext.patches.v16_0.recalculate_purchase_receipt_billing_status
erpnext.patches.v16_0.add_currency_to_blanket_orders
erpnext.patches.v16_0.repair_work_order_material_transfer
erpnext.patches.v16_0.remove_frappe_crm_custom_fields
<<<<<<< HEAD
erpnext.patches.v16_0.rename_secondary_item_type_field
erpnext.patches.v16_0.append_fieldname_to_pos_search_fields
erpnext.patches.v16_0.set_secondary_item_valuation_type
=======
erpnext.patches.v16_0.add_batch_split_stock_entry_type
erpnext.patches.v16_0.add_transaction_roles_to_sms_settings
>>>>>>> 3501beb (fix(sms_settings): add patch to pre-fill roles into SMS Settings Roles Table)

View File

@@ -0,0 +1,39 @@
import frappe
from frappe import _
STANDARD_TRANSACTION_ROLES = [
"Sales User",
"Sales Manager",
"Purchase User",
"Purchase Manager",
"Stock User",
"Stock Manager",
"Accounts User",
"Accounts Manager",
]
def execute():
"""Seed SMS Settings.allowed_roles with ERPNext's standard transaction roles."""
frappe.reload_doctype("SMS Settings")
if not frappe.get_meta("SMS Settings").has_field("allowed_roles"):
frappe.throw(
_(
"SMS Settings.allowed_roles not found. Update the Frappe Framework app to a "
"version that includes this field, then re-run bench migrate."
)
)
sms_settings = frappe.get_single("SMS Settings")
existing_roles = {d.role for d in sms_settings.get("allowed_roles")}
added = False
for role in STANDARD_TRANSACTION_ROLES:
if role not in existing_roles and frappe.db.exists("Role", role):
sms_settings.append("allowed_roles", {"role": role})
added = True
if added:
sms_settings.flags.ignore_mandatory = True
sms_settings.save()