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 -->
|
<!-- Week Selector -->
|
||||||
<MudPaper Class="pa-4 mt-4" Elevation="2">
|
<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>
|
<MudText Typo="Typo.h6">انتخاب هفته:</MudText>
|
||||||
|
|
||||||
@if (_allWeeks.Any())
|
@if (_allWeeks.Any())
|
||||||
@@ -159,6 +159,10 @@
|
|||||||
{
|
{
|
||||||
<MudText Color="Color.Warning">لیست هفتهها بارگذاری نشده</MudText>
|
<MudText Color="Color.Warning">لیست هفتهها بارگذاری نشده</MudText>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<PackageSelect Label="پکیج"
|
||||||
|
SelectedPackageId="_selectedPackageId"
|
||||||
|
SelectedPackageIdChanged="OnPackageChanged" />
|
||||||
|
|
||||||
<MudButton Variant="Variant.Filled"
|
<MudButton Variant="Variant.Filled"
|
||||||
Color="Color.Primary"
|
Color="Color.Primary"
|
||||||
@@ -180,6 +184,19 @@
|
|||||||
<td><strong>شناسه استخر:</strong></td>
|
<td><strong>شناسه استخر:</strong></td>
|
||||||
<td>@_poolData.Id</td>
|
<td>@_poolData.Id</td>
|
||||||
</tr>
|
</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>
|
<tr>
|
||||||
<td><strong>شماره هفته:</strong></td>
|
<td><strong>شماره هفته:</strong></td>
|
||||||
<td>@_currentWeekDisplayName</td>
|
<td>@_currentWeekDisplayName</td>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using MudBlazor;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using CMSMicroservice.Protobuf.Protos.Commission;
|
using CMSMicroservice.Protobuf.Protos.Commission;
|
||||||
using BackOffice.Services;
|
using BackOffice.Services;
|
||||||
|
using Google.Protobuf.WellKnownTypes;
|
||||||
|
|
||||||
namespace BackOffice.Pages.Commission;
|
namespace BackOffice.Pages.Commission;
|
||||||
|
|
||||||
@@ -22,6 +23,9 @@ public partial class Dashboard
|
|||||||
private string _currentWeekDisplayText = string.Empty; // نمایش فارسی
|
private string _currentWeekDisplayText = string.Empty; // نمایش فارسی
|
||||||
private GetWeeklyCommissionPoolResponse? _poolData;
|
private GetWeeklyCommissionPoolResponse? _poolData;
|
||||||
|
|
||||||
|
// Package filter
|
||||||
|
private long? _selectedPackageId;
|
||||||
|
|
||||||
// Available weeks data
|
// Available weeks data
|
||||||
private CMSMicroservice.Protobuf.Protos.Commission.GetAvailableWeeksResponse? _availableWeeks;
|
private CMSMicroservice.Protobuf.Protos.Commission.GetAvailableWeeksResponse? _availableWeeks;
|
||||||
private List<CMSMicroservice.Protobuf.Protos.Commission.WeekInfo> _allWeeks = new();
|
private List<CMSMicroservice.Protobuf.Protos.Commission.WeekInfo> _allWeeks = new();
|
||||||
@@ -91,6 +95,12 @@ public partial class Dashboard
|
|||||||
await LoadPoolData();
|
await LoadPoolData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task OnPackageChanged(long? packageId)
|
||||||
|
{
|
||||||
|
_selectedPackageId = packageId;
|
||||||
|
await LoadPoolData();
|
||||||
|
}
|
||||||
|
|
||||||
private async Task LoadPoolData()
|
private async Task LoadPoolData()
|
||||||
{
|
{
|
||||||
if (_currentWeekDefinitionId <= 0)
|
if (_currentWeekDefinitionId <= 0)
|
||||||
@@ -106,7 +116,8 @@ public partial class Dashboard
|
|||||||
|
|
||||||
var request = new GetWeeklyCommissionPoolRequest
|
var request = new GetWeeklyCommissionPoolRequest
|
||||||
{
|
{
|
||||||
WeekDefinitionId = _currentWeekDefinitionId
|
WeekDefinitionId = _currentWeekDefinitionId,
|
||||||
|
PackageId = _selectedPackageId.HasValue ? Int64Value.FromLong(_selectedPackageId.Value) : null
|
||||||
};
|
};
|
||||||
|
|
||||||
_poolData = await CommissionContract.GetWeeklyCommissionPoolAsync(request);
|
_poolData = await CommissionContract.GetWeeklyCommissionPoolAsync(request);
|
||||||
@@ -126,23 +137,32 @@ public partial class Dashboard
|
|||||||
|
|
||||||
private async Task TriggerCalculation()
|
private async Task TriggerCalculation()
|
||||||
{
|
{
|
||||||
|
var packageInfo = _selectedPackageId.HasValue
|
||||||
|
? $" (فقط پکیج #{_selectedPackageId})"
|
||||||
|
: " (همه پکیجها)";
|
||||||
|
|
||||||
var confirmed = await DialogService.ShowMessageBox(
|
var confirmed = await DialogService.ShowMessageBox(
|
||||||
"تایید",
|
"تایید",
|
||||||
$"آیا از اجرای محاسبه دستی برای هفته {_currentWeekDisplayName} مطمئن هستید؟",
|
$"آیا از اجرای محاسبه دستی برای هفته {_currentWeekDisplayName}{packageInfo} مطمئن هستید؟",
|
||||||
yesText: "بله", cancelText: "خیر");
|
yesText: "بله", cancelText: "خیر");
|
||||||
|
|
||||||
if (confirmed == true)
|
if (confirmed == true)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await CommissionContract.TriggerWeeklyCalculationAsync(new TriggerWeeklyCalculationRequest()
|
var req = new TriggerWeeklyCalculationRequest()
|
||||||
{
|
{
|
||||||
WeekDefinitionId = _currentWeekDefinitionId,
|
WeekDefinitionId = _currentWeekDefinitionId,
|
||||||
ForceRecalculate = true,
|
ForceRecalculate = true,
|
||||||
SkipBalances = false,
|
SkipBalances = false,
|
||||||
SkipPayouts = false,
|
SkipPayouts = false,
|
||||||
SkipPool = false,
|
SkipPool = false,
|
||||||
});
|
};
|
||||||
|
|
||||||
|
if (_selectedPackageId.HasValue)
|
||||||
|
req.PackageId = Int64Value.FromLong(_selectedPackageId.Value);
|
||||||
|
|
||||||
|
await CommissionContract.TriggerWeeklyCalculationAsync(req);
|
||||||
Snackbar.Add("محاسبه با موفقیت آغاز شد. این عملیات ممکن است چند دقیقه طول بکشد.", Severity.Info);
|
Snackbar.Add("محاسبه با موفقیت آغاز شد. این عملیات ممکن است چند دقیقه طول بکشد.", Severity.Info);
|
||||||
|
|
||||||
// Reload data after a delay
|
// Reload data after a delay
|
||||||
|
|||||||
Reference in New Issue
Block a user