From dc4ac7ec53c66484d6f98f5e71ba904314628984 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Wed, 24 Dec 2025 16:03:00 +0330 Subject: [PATCH] fix price chart --- .../statistics/components/RevenueChart.tsx | 89 ++++++++++++------- src/shared/SideBar.tsx | 18 ++-- src/shared/components/CustomersSubMenu.tsx | 4 +- src/shared/components/OrdersSubMenu.tsx | 4 +- 4 files changed, 73 insertions(+), 42 deletions(-) diff --git a/src/pages/statistics/components/RevenueChart.tsx b/src/pages/statistics/components/RevenueChart.tsx index 55d2ba3..17ec2da 100644 --- a/src/pages/statistics/components/RevenueChart.tsx +++ b/src/pages/statistics/components/RevenueChart.tsx @@ -102,47 +102,76 @@ const RevenueChart: FC = () => { dataKey?: string value?: number color?: string + payload?: { + cash?: number + online?: number + month?: string + } }> label?: string }) => { const { active, payload, label } = props - if (!active || !payload || payload.length === 0) { + if (!active || !payload || payload.length === 0 || !label) { return null } - const cashValue = payload.find((item) => item.dataKey === 'cash')?.value as number | undefined - const onlineValue = payload.find((item) => item.dataKey === 'online')?.value as number | undefined + // استفاده از paymentsChartData.data مستقیم برای دریافت داده‌های واقعی + // پیدا کردن آخرین آیتمی که label آن با formatDateLabel match می‌کند + let dataPoint: { cash: number; online: number } | null = null + + if (paymentsChartData?.data) { + // پیدا کردن همه آیتم‌های match شده و استفاده از آخرین + const matchingItems: Array<{ cash: number; online: number }> = [] + for (const item of paymentsChartData.data) { + const formattedLabel = formatDateLabel(item.date, selectedTab) + if (formattedLabel === label) { + matchingItems.push({ cash: item.cash, online: item.online }) + } + } + if (matchingItems.length > 0) { + dataPoint = matchingItems[matchingItems.length - 1] + } + } + + // اگر پیدا نکردیم، از chartData استفاده می‌کنیم + if (!dataPoint) { + const matchingItems = chartData.filter((item) => item.month === label) + if (matchingItems.length > 0) { + dataPoint = matchingItems[matchingItems.length - 1] + } + } + + if (!dataPoint) { + return null + } + + const cashValue = dataPoint.cash + const onlineValue = dataPoint.online return (

{label}

- {cashValue !== undefined && ( -
-
- پرداخت نقدی: - - {cashValue.toLocaleString('fa-IR')} تومان - -
- )} - {onlineValue !== undefined && ( -
-
- پرداخت آنلاین: - - {onlineValue.toLocaleString('fa-IR')} تومان - -
- )} - {cashValue !== undefined && onlineValue !== undefined && ( -
- جمع: - - {(cashValue + onlineValue).toLocaleString('fa-IR')} تومان - -
- )} +
+
+ پرداخت نقدی: + + {cashValue.toLocaleString('fa-IR')} تومان + +
+
+
+ پرداخت آنلاین: + + {onlineValue.toLocaleString('fa-IR')} تومان + +
+
+ جمع: + + {(cashValue + onlineValue).toLocaleString('fa-IR')} تومان + +
) @@ -159,7 +188,7 @@ const RevenueChart: FC = () => { return (
{/* Header */} -
+

مجموع درآمد

diff --git a/src/shared/SideBar.tsx b/src/shared/SideBar.tsx index d3349db..f3e6efe 100644 --- a/src/shared/SideBar.tsx +++ b/src/shared/SideBar.tsx @@ -77,6 +77,15 @@ const SideBar: FC = () => { activeName='' /> + } + title={t('sidebar.orders')} + isActive={isActive('orders')} + link={Pages.orders.list} + name='orders' + activeName='orders' + /> + } title={t('sidebar.foods')} @@ -103,14 +112,7 @@ const SideBar: FC = () => { activeName='payment_methods' /> - } - title={t('sidebar.orders')} - isActive={isActive('orders')} - link={Pages.orders.list} - name='orders' - activeName='orders' - /> + } title={t('sidebar.customers')} diff --git a/src/shared/components/CustomersSubMenu.tsx b/src/shared/components/CustomersSubMenu.tsx index 0165090..663b39c 100644 --- a/src/shared/components/CustomersSubMenu.tsx +++ b/src/shared/components/CustomersSubMenu.tsx @@ -33,11 +33,11 @@ const CustomersSubMenu: FC = () => { isActive={isActive('list')} link={Pages.customers.list} /> - + /> */}
) diff --git a/src/shared/components/OrdersSubMenu.tsx b/src/shared/components/OrdersSubMenu.tsx index 1ad93bd..85bc4c7 100644 --- a/src/shared/components/OrdersSubMenu.tsx +++ b/src/shared/components/OrdersSubMenu.tsx @@ -33,11 +33,11 @@ const OrdersSubMenu: FC = () => { isActive={isActive('list')} link={Pages.orders.list} /> - + /> */}
)