diff --git a/src/FrontOffice.Main/FrontOffice.Main.csproj b/src/FrontOffice.Main/FrontOffice.Main.csproj index f8dcfe2..081ff3b 100644 --- a/src/FrontOffice.Main/FrontOffice.Main.csproj +++ b/src/FrontOffice.Main/FrontOffice.Main.csproj @@ -12,7 +12,7 @@ - + diff --git a/src/FrontOffice.Main/Pages/Commission/CommissionDashboardPage.razor b/src/FrontOffice.Main/Pages/Commission/CommissionDashboardPage.razor index 45721c3..074c232 100644 --- a/src/FrontOffice.Main/Pages/Commission/CommissionDashboardPage.razor +++ b/src/FrontOffice.Main/Pages/Commission/CommissionDashboardPage.razor @@ -28,10 +28,11 @@ Style="max-width: 150px;" /> همه - ایجاد شده + در انتظار پرداخت شده درخواست برداشت برداشت شده + شکست خورده لغو شده @@ -65,8 +66,8 @@ @context.AmountFormatted - - @context.Status + + @context.StatusText @context.DatePersian @@ -91,8 +92,8 @@ @payout.WeekDisplayName - - @payout.Status + + @payout.StatusText @payout.AmountFormatted diff --git a/src/FrontOffice.Main/Pages/Commission/CommissionHistoryPage.razor b/src/FrontOffice.Main/Pages/Commission/CommissionHistoryPage.razor index ad0967c..ac1a38d 100644 --- a/src/FrontOffice.Main/Pages/Commission/CommissionHistoryPage.razor +++ b/src/FrontOffice.Main/Pages/Commission/CommissionHistoryPage.razor @@ -61,8 +61,8 @@ @context.AmountFormatted - - @context.Status + + @context.StatusText diff --git a/src/FrontOffice.Main/Pages/Commission/WeeklyBalancePage.razor.cs b/src/FrontOffice.Main/Pages/Commission/WeeklyBalancePage.razor.cs index 5cd3e30..1f6aadb 100644 --- a/src/FrontOffice.Main/Pages/Commission/WeeklyBalancePage.razor.cs +++ b/src/FrontOffice.Main/Pages/Commission/WeeklyBalancePage.razor.cs @@ -39,16 +39,18 @@ public partial class WeeklyBalancePage : ComponentBase { await _weekSelector.EnsureLoadedAsync(); - // Handle query parameter ?week=46 (WeekOrder) or ?week=123 (Id) + // Handle query parameter ?week=2 (WeekDefinitionId) if (!string.IsNullOrEmpty(QueryWeekNumber)) { - // Try to parse as integer (first try as WeekOrder, then as Id) - if (int.TryParse(QueryWeekNumber, out int weekOrder)) + // Try to parse as WeekDefinitionId first (most common from dashboard links) + if (long.TryParse(QueryWeekNumber, out long id)) { - _selectedWeekDefinition = _weekSelector.FindByWeekOrder(weekOrder); - if (_selectedWeekDefinition == null && long.TryParse(QueryWeekNumber, out long id)) + _selectedWeekDefinition = _weekSelector.FindById(id); + + // Fallback: try as WeekOrder if not found by Id + if (_selectedWeekDefinition == null && int.TryParse(QueryWeekNumber, out int weekOrder)) { - _selectedWeekDefinition = _weekSelector.FindById(id); + _selectedWeekDefinition = _weekSelector.FindByWeekOrder(weekOrder); } } } diff --git a/src/FrontOffice.Main/Utilities/CommissionDtos.cs b/src/FrontOffice.Main/Utilities/CommissionDtos.cs index 2d19736..f82fe79 100644 --- a/src/FrontOffice.Main/Utilities/CommissionDtos.cs +++ b/src/FrontOffice.Main/Utilities/CommissionDtos.cs @@ -13,9 +13,31 @@ public class CommissionPayoutDto public int BalancesEarned { get; set; } public long TotalAmount { get; set; } public string AmountFormatted { get; set; } = string.Empty; - public string Status { get; set; } = string.Empty; - public string StatusBadgeColor { get; set; } = string.Empty; + public int Status { get; set; } public string DatePersian { get; set; } = string.Empty; + + // Computed properties for UI + public string StatusText => Status switch + { + 0 => "در انتظار", + 1 => "پرداخت شده", + 2 => "درخواست برداشت", + 3 => "برداشت شده", + 4 => "شکست خورده", + 5 => "لغو شده", + _ => "نامشخص" + }; + + public string StatusColor => Status switch + { + 0 => "warning", + 1 => "success", + 2 => "info", + 3 => "success", + 4 => "error", + 5 => "default", + _ => "default" + }; } /// diff --git a/src/FrontOffice.Main/Utilities/CommissionService.cs b/src/FrontOffice.Main/Utilities/CommissionService.cs index bee9bfe..10a3f4b 100644 --- a/src/FrontOffice.Main/Utilities/CommissionService.cs +++ b/src/FrontOffice.Main/Utilities/CommissionService.cs @@ -98,10 +98,12 @@ public class CommissionService { request.Status = status switch { - "Pending" or "ایجاد شده" => 0, - "Calculated" or "محاسبه شده" => 1, - "Paid" or "پرداخت شده" => 2, + "Pending" or "در انتظار" or "Created" or "ایجاد شده" => 0, + "Paid" or "پرداخت شده" => 1, + "WithdrawalRequested" or "درخواست برداشت" => 2, "Withdrawn" or "برداشت شده" => 3, + "PaymentFailed" or "شکست خورده" => 4, + "Cancelled" or "لغو شده" => 5, _ => null }; } @@ -119,7 +121,6 @@ public class CommissionService TotalAmount = p.TotalAmount, AmountFormatted = p.AmountFormatted, Status = p.Status, - StatusBadgeColor = p.StatusBadgeColor, DatePersian = p.DatePersian }).ToList(), TotalCount = (int)(response.MetaData?.TotalCount ?? 0), @@ -209,9 +210,9 @@ public class CommissionService var response = await _client.GetMyCommissionPayoutsAsync(request); - // Filter: exclude already withdrawn (status text contains "برداشت" or status=3) + // Filter: exclude already withdrawn (status=3) and withdrawal requested (status=2) return response.Payouts - .Where(p => !p.Status.Contains("برداشت") && p.Status != "Withdrawn") + .Where(p => p.Status != 2 && p.Status != 3) .Select(p => new CommissionPayoutDto { Id = p.Id, @@ -221,7 +222,6 @@ public class CommissionService TotalAmount = p.TotalAmount, AmountFormatted = p.AmountFormatted, Status = p.Status, - StatusBadgeColor = p.StatusBadgeColor, DatePersian = p.DatePersian }).ToList(); }