feat(commission/dashboard): add package selector for per-package calculation
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 11m26s
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 11m26s
- Dashboard: added PackageSelect component to filter/trigger calculation per package - LoadPoolData: now sends PackageId in GetWeeklyCommissionPoolRequest - TriggerCalculation: now sends PackageId in TriggerWeeklyCalculationRequest - Pool Details: shows PackageTitle in table
This commit is contained in:
@@ -79,7 +79,7 @@
|
||||
|
||||
<!-- Week Selector -->
|
||||
<MudPaper Class="pa-4 mt-4" Elevation="2">
|
||||
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="3">
|
||||
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="3" Wrap="Wrap.Wrap">
|
||||
<MudText Typo="Typo.h6">انتخاب هفته:</MudText>
|
||||
|
||||
@if (_allWeeks.Any())
|
||||
@@ -159,6 +159,10 @@
|
||||
{
|
||||
<MudText Color="Color.Warning">لیست هفتهها بارگذاری نشده</MudText>
|
||||
}
|
||||
|
||||
<PackageSelect Label="پکیج"
|
||||
SelectedPackageId="_selectedPackageId"
|
||||
SelectedPackageIdChanged="OnPackageChanged" />
|
||||
|
||||
<MudButton Variant="Variant.Filled"
|
||||
Color="Color.Primary"
|
||||
@@ -180,6 +184,19 @@
|
||||
<td><strong>شناسه استخر:</strong></td>
|
||||
<td>@_poolData.Id</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>پکیج:</strong></td>
|
||||
<td>
|
||||
@if (!string.IsNullOrEmpty(_poolData.PackageTitle))
|
||||
{
|
||||
<MudChip T="string" Size="Size.Small" Color="Color.Primary">@_poolData.PackageTitle</MudChip>
|
||||
}
|
||||
else
|
||||
{
|
||||
<MudText Color="Color.Secondary">-</MudText>
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>شماره هفته:</strong></td>
|
||||
<td>@_currentWeekDisplayName</td>
|
||||
|
||||
@@ -3,6 +3,7 @@ using MudBlazor;
|
||||
using System.Globalization;
|
||||
using CMSMicroservice.Protobuf.Protos.Commission;
|
||||
using BackOffice.Services;
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
|
||||
namespace BackOffice.Pages.Commission;
|
||||
|
||||
@@ -22,6 +23,9 @@ public partial class Dashboard
|
||||
private string _currentWeekDisplayText = string.Empty; // نمایش فارسی
|
||||
private GetWeeklyCommissionPoolResponse? _poolData;
|
||||
|
||||
// Package filter
|
||||
private long? _selectedPackageId;
|
||||
|
||||
// Available weeks data
|
||||
private CMSMicroservice.Protobuf.Protos.Commission.GetAvailableWeeksResponse? _availableWeeks;
|
||||
private List<CMSMicroservice.Protobuf.Protos.Commission.WeekInfo> _allWeeks = new();
|
||||
@@ -91,6 +95,12 @@ public partial class Dashboard
|
||||
await LoadPoolData();
|
||||
}
|
||||
|
||||
private async Task OnPackageChanged(long? packageId)
|
||||
{
|
||||
_selectedPackageId = packageId;
|
||||
await LoadPoolData();
|
||||
}
|
||||
|
||||
private async Task LoadPoolData()
|
||||
{
|
||||
if (_currentWeekDefinitionId <= 0)
|
||||
@@ -106,7 +116,8 @@ public partial class Dashboard
|
||||
|
||||
var request = new GetWeeklyCommissionPoolRequest
|
||||
{
|
||||
WeekDefinitionId = _currentWeekDefinitionId
|
||||
WeekDefinitionId = _currentWeekDefinitionId,
|
||||
PackageId = _selectedPackageId.HasValue ? Int64Value.FromLong(_selectedPackageId.Value) : null
|
||||
};
|
||||
|
||||
_poolData = await CommissionContract.GetWeeklyCommissionPoolAsync(request);
|
||||
@@ -126,23 +137,32 @@ public partial class Dashboard
|
||||
|
||||
private async Task TriggerCalculation()
|
||||
{
|
||||
var packageInfo = _selectedPackageId.HasValue
|
||||
? $" (فقط پکیج #{_selectedPackageId})"
|
||||
: " (همه پکیجها)";
|
||||
|
||||
var confirmed = await DialogService.ShowMessageBox(
|
||||
"تایید",
|
||||
$"آیا از اجرای محاسبه دستی برای هفته {_currentWeekDisplayName} مطمئن هستید؟",
|
||||
$"آیا از اجرای محاسبه دستی برای هفته {_currentWeekDisplayName}{packageInfo} مطمئن هستید؟",
|
||||
yesText: "بله", cancelText: "خیر");
|
||||
|
||||
if (confirmed == true)
|
||||
{
|
||||
try
|
||||
{
|
||||
await CommissionContract.TriggerWeeklyCalculationAsync(new TriggerWeeklyCalculationRequest()
|
||||
var req = new TriggerWeeklyCalculationRequest()
|
||||
{
|
||||
WeekDefinitionId = _currentWeekDefinitionId,
|
||||
ForceRecalculate = true,
|
||||
SkipBalances = false,
|
||||
SkipPayouts = false,
|
||||
SkipPool = false,
|
||||
});
|
||||
};
|
||||
|
||||
if (_selectedPackageId.HasValue)
|
||||
req.PackageId = Int64Value.FromLong(_selectedPackageId.Value);
|
||||
|
||||
await CommissionContract.TriggerWeeklyCalculationAsync(req);
|
||||
Snackbar.Add("محاسبه با موفقیت آغاز شد. این عملیات ممکن است چند دقیقه طول بکشد.", Severity.Info);
|
||||
|
||||
// Reload data after a delay
|
||||
|
||||
Reference in New Issue
Block a user