feat: add final numbers

This commit is contained in:
2026-08-02 13:38:43 +03:30
parent a447222201
commit cce279a60d
2 changed files with 25 additions and 2 deletions
+22 -2
View File
@@ -37,6 +37,26 @@ const emptyFilters: PurchaseFilters = {
status: undefined,
};
// قیمت نهایی خرید (مبلغ قابل‌نمایش در جدول).
// وقتی محصول تخفیف دارد، مقدار نهایی همان «قیمت کلی تخفیف‌خورده» است؛
// اما در پکیج‌هایی که تخفیف ندارند، «قیمت» خود محصول مقدار نهایی است.
const getPurchaseFinalPrice = (purchase: Purchase): number => {
const product = purchase.product;
// اگر محصول تخفیف دارد، قیمت نهایی همان قیمت تخفیف‌خورده است
const discountedPrice = product?.discounted_price;
if (discountedPrice) {
const parsed = parseInt(discountedPrice.replace(/[^\d]/g, ''), 10);
if (!Number.isNaN(parsed) && parsed > 0) return parsed;
}
// بدون تخفیف → قیمت اصلی محصول (فقط وقتی discount نداشته باشد)
if (product?.price) return product.price;
// برگشت به مبلغ ثبت‌شدهٔ تراکنش وقتی محصول در دسترس نیست
return purchase.amount || 0;
};
export default function PurchasesPage() {
const { token } = useAuth();
const [packages, setPackages] = useState<PackageName[]>([]);
@@ -209,7 +229,7 @@ export default function PurchasesPage() {
<th className="px-4 py-3">کاربر</th>
<th className="px-4 py-3">پکیج</th>
<th className="px-4 py-3">محصول</th>
<th className="px-4 py-3">مبلغ</th>
<th className="px-4 py-3">قیمت نهایی</th>
<th className="px-4 py-3">منبع پرداخت</th>
<th className="px-4 py-3">وضعیت</th>
<th className="px-4 py-3">تاریخ</th>
@@ -241,7 +261,7 @@ export default function PurchasesPage() {
</div>
</td>
<td className="px-4 py-3.5 text-sm text-gray-900 dark:text-gray-100 whitespace-nowrap font-medium">
{formatPrice(purchase.amount)} تومان
{formatPrice(getPurchaseFinalPrice(purchase))} تومان
</td>
<td className="px-4 py-3.5 whitespace-nowrap">
<span className="px-2.5 py-1 inline-flex text-xs leading-5 font-semibold rounded-lg bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300">