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();
}