diff --git a/src/utils/productOrderLimit.ts b/src/utils/productOrderLimit.ts index 5281bb5..9e9fb31 100644 --- a/src/utils/productOrderLimit.ts +++ b/src/utils/productOrderLimit.ts @@ -7,6 +7,9 @@ function toAsciiDigits(value: string): string { .replace(/[٠-٩]/g, (d) => String(ARABIC_DIGITS.indexOf(d))) } +/** سقف مبلغ قابل round-trip در فرم ادمین (Number.MAX_SAFE_INTEGER) */ +export const MAX_SAFE_ORDER_CASH = Number.MAX_SAFE_INTEGER + /** پارس مبلغ محدودیت سفارش — ارقام فارسی/عربی و جداکننده هزارگان */ export function parseOrderLimitCashValue(value: unknown): number | undefined { if (value === undefined || value === null || value === '') { @@ -23,7 +26,8 @@ export function parseOrderLimitCashValue(value: unknown): number | undefined { return undefined } - return Math.trunc(num) + // مقادیر نزدیک 2^63 در JSON خراب می‌شوند و روی سرور overflow منفی می‌سازند + return Math.min(Math.trunc(num), MAX_SAFE_ORDER_CASH) } function orderLimitInputsPresent(form: {