fix mandehesab, bazdid, sms

This commit is contained in:
javad committed 2026-10-16 17:54:07 +03:30
1 parent 7e5c83bea2
commit 1fd27d0445
22 files changed
+16462 -5918

No files matched your search

+15 -1
View File
@@ -3,11 +3,21 @@ from persiantools.jdatetime import JalaliDate, JalaliDateTime
class _SafeDict(dict):
"""دیکشنری که برای کلیدهای ناشناخته رشته خالی برمی‌گرداند (بدون خطا)."""
"""دیکشنری امن برای ``str.format_map``.
* کلیدِ ناشناخته ⇒ رشتهٔ خالی (بدون ``KeyError``).
* کلیدِ شناخته‌شده با مقدار ``None`` ⇒ رشتهٔ خالی. فیلدهای اختیاری مدل
(مثل ``Sarresid.check_sayyad_id`` یا ``check_row_number``) ممکن است ``NULL``
باشند؛ بدون این تبدیل، ``None`` عیناً در متن پیامک چاپ می‌شد.
"""
def __missing__(self, key):
return ""
def __getitem__(self, key):
value = super().__getitem__(key) if key in self else ""
return "" if value is None else value
def format_amount(value):
try:
@@ -35,6 +45,10 @@ def render_template(text, context=None):
ctx = dict(context or {})
if "amount" in ctx:
ctx.setdefault("amount_sep", format_amount(ctx["amount"]))
if "balance" in ctx:
# مثل «مبلغ»، نسخهٔ جداکننده‌دار هم آماده می‌شود تا در قالب‌ها
# ``{balance_sep}`` در دسترس باشد (۳٬۵۰۰٬۰۰۰ → "3,500,000").
ctx.setdefault("balance_sep", format_amount(ctx["balance"]))
if "date" in ctx:
ctx.setdefault("date_raw", ctx["date"])
ctx["date"] = format_jalali(ctx["date"])