diff --git a/src/BackOffice/BackOffice.csproj b/src/BackOffice/BackOffice.csproj index f626858..1eb7033 100644 --- a/src/BackOffice/BackOffice.csproj +++ b/src/BackOffice/BackOffice.csproj @@ -138,7 +138,7 @@ - + diff --git a/src/BackOffice/Pages/Commission/Dashboard.razor b/src/BackOffice/Pages/Commission/Dashboard.razor index f1f446b..74096d2 100644 --- a/src/BackOffice/Pages/Commission/Dashboard.razor +++ b/src/BackOffice/Pages/Commission/Dashboard.razor @@ -79,7 +79,7 @@ - + انتخاب هفته: @if (_allWeeks.Any()) @@ -159,6 +159,10 @@ { لیست هفته‌ها بارگذاری نشده } + + شناسه استخر: @_poolData.Id + + پکیج: + + @if (!string.IsNullOrEmpty(_poolData.PackageTitle)) + { + @_poolData.PackageTitle + } + else + { + - + } + + شماره هفته: @_currentWeekDisplayName diff --git a/src/BackOffice/Pages/Commission/Dashboard.razor.cs b/src/BackOffice/Pages/Commission/Dashboard.razor.cs index 1e667eb..39a39aa 100644 --- a/src/BackOffice/Pages/Commission/Dashboard.razor.cs +++ b/src/BackOffice/Pages/Commission/Dashboard.razor.cs @@ -22,6 +22,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 _allWeeks = new(); @@ -91,6 +94,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 +115,8 @@ public partial class Dashboard var request = new GetWeeklyCommissionPoolRequest { - WeekDefinitionId = _currentWeekDefinitionId + WeekDefinitionId = _currentWeekDefinitionId, + PackageId = _selectedPackageId }; _poolData = await CommissionContract.GetWeeklyCommissionPoolAsync(request); @@ -126,23 +136,31 @@ 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, - }); + }; + + req.PackageId = _selectedPackageId; + + await CommissionContract.TriggerWeeklyCalculationAsync(req); Snackbar.Add("محاسبه با موفقیت آغاز شد. این عملیات ممکن است چند دقیقه طول بکشد.", Severity.Info); // Reload data after a delay diff --git a/src/global.json b/src/global.json new file mode 100644 index 0000000..359863b --- /dev/null +++ b/src/global.json @@ -0,0 +1,6 @@ +{ + "sdk": { + "version": "9.0.306", + "rollForward": "latestPatch" + } +}