diff --git a/salesmanagement/api/get_performance.php b/salesmanagement/api/get_performance.php index b16aee1..fe954f4 100644 --- a/salesmanagement/api/get_performance.php +++ b/salesmanagement/api/get_performance.php @@ -238,7 +238,9 @@ try { SELECT COALESCE(SUM(contract_amount), 0) as total_sales, COALESCE(SUM(payout_amount), 0) as total_comm, -- 정산 지급액 합계 - COUNT(*) as total_count + COUNT(*) as total_count, + SUM(CASE WHEN join_approved = 0 THEN 1 ELSE 0 END) as pending_join, + SUM(CASE WHEN join_approved = 1 AND payment_approved = 0 THEN 1 ELSE 0 END) as pending_payment FROM sales_tenant_products "); $tpData = $stmt->fetch(PDO::FETCH_ASSOC); @@ -256,7 +258,9 @@ try { $totalStats = [ 'totalSales' => $tpData['total_sales'] + $srData['total_sales'], 'totalCommission' => $tpData['total_comm'] + $srData['total_comm'], - 'totalCount' => $tpData['total_count'] + $srData['total_count'] + 'totalCount' => $tpData['total_count'] + $srData['total_count'], + 'pendingJoin' => (int)($tpData['pending_join'] ?? 0), + 'pendingPayment' => (int)($tpData['pending_payment'] ?? 0) ]; } else { $totalStats = calculateTotalStats($pdo, $rootUserId, $rootUserId, 0); diff --git a/salesmanagement/index.php b/salesmanagement/index.php index e3bbc49..5b28327 100644 --- a/salesmanagement/index.php +++ b/salesmanagement/index.php @@ -430,10 +430,8 @@ totalSales: 0, totalCommission: 0, totalCount: 0, - monthlySales: 0, - monthlyCommission: 0, - monthlyCount: 0, - pendingApprovals: 0 + pendingJoin: 0, + pendingPayment: 0 }); useEffect(() => { @@ -442,34 +440,17 @@ const fetchOperatorDashboard = async () => { try { - // Fetch global stats + // Fetch global stats including pending counts from backend const res = await fetch(`api/get_performance.php`); const result = await res.json(); - // Fetch tenant product statistics for pending count - const tenantRes = await fetch('api/sales_tenants.php?action=list_tenants'); - const tenantData = await tenantRes.json(); - - let pendingCount = 0; - if (tenantData.success) { - for (const tenant of tenantData.data) { - const prodRes = await fetch(`api/sales_tenants.php?action=tenant_products&tenant_id=${tenant.id}`); - const prodData = await prodRes.json(); - if (prodData.success) { - pendingCount += prodData.data.filter(p => p.join_approved == 0 || p.payment_approved == 0).length; - } - } - } - if (result.success && result.total_stats) { setOperatorStats({ totalSales: result.total_stats.totalSales || 0, totalCommission: result.total_stats.totalCommission || 0, totalCount: result.total_stats.totalCount || 0, - monthlySales: result.period_stats?.total_period_commission || 0, // Just a placeholder for monthly - monthlyCommission: result.period_stats?.total_period_commission || 0, - monthlyCount: 0, - pendingApprovals: pendingCount + pendingJoin: result.total_stats.pendingJoin || 0, + pendingPayment: result.total_stats.pendingPayment || 0 }); } } catch (err) { @@ -495,7 +476,7 @@ {/* Dashboard Metrics */} -