fix(accounts): translate accounting dimension validation labels

(cherry picked from commit b84b631898)
This commit is contained in:
Sudharsanan11
2026-10-26 16:25:32 +05:30
parent 0942b42e34
commit 6c4b0599e5
3 changed files with 18 additions and 6 deletions
@@ -103,6 +103,13 @@ def get_dimension_filter_map():
return frappe.flags.dimension_filter_map
def get_dimension_label(meta, fieldname):
"""Translated label of the dimension field, or the unscrubbed fieldname when the field no longer exists."""
if meta.has_field(fieldname):
return meta.get_translated_label(fieldname)
return frappe.unscrub(fieldname)
def build_map(map_object, dimension, account, filter_value, allow_or_restrict, is_mandatory):
map_object.setdefault(
(dimension, account),
@@ -11,6 +11,7 @@ from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import (
)
from erpnext.accounts.doctype.accounting_dimension_filter.accounting_dimension_filter import (
get_dimension_filter_map,
get_dimension_label,
)
from erpnext.accounts.doctype.gl_entry.gl_entry import (
validate_balance_type,
@@ -97,10 +98,11 @@ class PaymentLedgerEntry(Document):
account = key[1]
if self.account == account:
dimension_label = get_dimension_label(self.meta, dimension)
if value["is_mandatory"] and not self.get(dimension):
frappe.throw(
_("{0} is mandatory for account {1}").format(
frappe.bold(frappe.unscrub(dimension)), frappe.bold(self.account)
frappe.bold(dimension_label), frappe.bold(self.account)
),
MandatoryAccountDimensionError,
)
@@ -110,7 +112,7 @@ class PaymentLedgerEntry(Document):
frappe.throw(
_("Invalid value {0} for {1} against account {2}").format(
frappe.bold(self.get(dimension)),
frappe.bold(frappe.unscrub(dimension)),
frappe.bold(dimension_label),
frappe.bold(self.account),
),
InvalidAccountDimensionError,
@@ -120,7 +122,7 @@ class PaymentLedgerEntry(Document):
frappe.throw(
_("Invalid value {0} for {1} against account {2}").format(
frappe.bold(self.get(dimension)),
frappe.bold(frappe.unscrub(dimension)),
frappe.bold(dimension_label),
frappe.bold(self.account),
),
InvalidAccountDimensionError,
+6 -3
View File
@@ -17,6 +17,7 @@ from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import (
)
from erpnext.accounts.doctype.accounting_dimension_filter.accounting_dimension_filter import (
get_dimension_filter_map,
get_dimension_label,
)
from erpnext.accounts.doctype.accounting_period.accounting_period import ClosedAccountingPeriod
from erpnext.accounts.doctype.budget.budget import validate_expense_against_budget
@@ -857,15 +858,17 @@ def set_as_cancel(voucher_type, voucher_no):
def validate_allowed_dimensions(gl_entry, dimension_filter_map):
meta = frappe.get_meta("GL Entry")
for key, value in dimension_filter_map.items():
dimension = key[0]
account = key[1]
if gl_entry.account == account:
dimension_label = get_dimension_label(meta, dimension)
if value["is_mandatory"] and not gl_entry.get(dimension):
frappe.throw(
_("{0} is mandatory for account {1}").format(
frappe.bold(frappe.unscrub(dimension)), frappe.bold(gl_entry.account)
frappe.bold(dimension_label), frappe.bold(gl_entry.account)
),
MandatoryAccountDimensionError,
)
@@ -875,7 +878,7 @@ def validate_allowed_dimensions(gl_entry, dimension_filter_map):
frappe.throw(
_("Invalid value {0} for {1} against account {2}").format(
frappe.bold(gl_entry.get(dimension)),
frappe.bold(frappe.unscrub(dimension)),
frappe.bold(dimension_label),
frappe.bold(gl_entry.account),
),
InvalidAccountDimensionError,
@@ -885,7 +888,7 @@ def validate_allowed_dimensions(gl_entry, dimension_filter_map):
frappe.throw(
_("Invalid value {0} for {1} against account {2}").format(
frappe.bold(gl_entry.get(dimension)),
frappe.bold(frappe.unscrub(dimension)),
frappe.bold(dimension_label),
frappe.bold(gl_entry.account),
),
InvalidAccountDimensionError,