diff --git a/src/BackOffice/BackOffice.csproj b/src/BackOffice/BackOffice.csproj
index d475ec0..46a32df 100644
--- a/src/BackOffice/BackOffice.csproj
+++ b/src/BackOffice/BackOffice.csproj
@@ -138,7 +138,7 @@
-
+
diff --git a/src/BackOffice/Pages/AutoComplete/PackageSelect.razor b/src/BackOffice/Pages/AutoComplete/PackageSelect.razor
new file mode 100644
index 0000000..661bb40
--- /dev/null
+++ b/src/BackOffice/Pages/AutoComplete/PackageSelect.razor
@@ -0,0 +1,16 @@
+@using CMSMicroservice.Protobuf.Protos.Package
+
+
+ همه پکیجها
+ @foreach (var pkg in _packages)
+ {
+ @pkg.Title
+ }
+
diff --git a/src/BackOffice/Pages/AutoComplete/PackageSelect.razor.cs b/src/BackOffice/Pages/AutoComplete/PackageSelect.razor.cs
new file mode 100644
index 0000000..7505e90
--- /dev/null
+++ b/src/BackOffice/Pages/AutoComplete/PackageSelect.razor.cs
@@ -0,0 +1,46 @@
+using CMSMicroservice.Protobuf.Protos.Package;
+using Microsoft.AspNetCore.Components;
+
+namespace BackOffice.Pages.AutoComplete;
+
+public partial class PackageSelect
+{
+ [Inject] public PackageContract.PackageContractClient PackageClient { get; set; }
+
+ [Parameter] public string Label { get; set; } = "پکیج";
+ [Parameter] public long? SelectedPackageId { get; set; }
+ [Parameter] public EventCallback SelectedPackageIdChanged { get; set; }
+
+ private List _packages = new();
+
+ protected override async Task OnInitializedAsync()
+ {
+ await LoadPackages();
+ }
+
+ private async Task LoadPackages()
+ {
+ try
+ {
+ var request = new GetAllPackageByFilterRequest
+ {
+ PaginationState = new() { PageNumber = 1, PageSize = 100 },
+ Filter = new()
+ };
+
+ var result = await PackageClient.GetAllPackageByFilterAsync(request);
+ _packages = result.Models?.OrderBy(p => p.SortOrder).ToList()
+ ?? new List();
+ }
+ catch
+ {
+ _packages = new List();
+ }
+ }
+
+ private async Task OnValueChanged(long? value)
+ {
+ SelectedPackageId = value;
+ await SelectedPackageIdChanged.InvokeAsync(value);
+ }
+}
diff --git a/src/BackOffice/Pages/Commission/UserPayouts.razor b/src/BackOffice/Pages/Commission/UserPayouts.razor
index 9553a9f..bc65251 100644
--- a/src/BackOffice/Pages/Commission/UserPayouts.razor
+++ b/src/BackOffice/Pages/Commission/UserPayouts.razor
@@ -36,6 +36,8 @@
شکست خورده
لغو شده
+
+
+
+
+ @(string.IsNullOrEmpty(context.Item.PackageTitle) ? "-" : context.Item.PackageTitle)
+
+
+
+
diff --git a/src/BackOffice/Pages/Commission/UserPayouts.razor.cs b/src/BackOffice/Pages/Commission/UserPayouts.razor.cs
index f60dab9..5ea0975 100644
--- a/src/BackOffice/Pages/Commission/UserPayouts.razor.cs
+++ b/src/BackOffice/Pages/Commission/UserPayouts.razor.cs
@@ -17,6 +17,7 @@ public partial class UserPayouts
private long? _filterUserId;
private long? _filterWeekDefinitionId;
private int? _filterStatus;
+ private long? _filterPackageId;
private async Task> ServerReload(GridState state)
{
@@ -44,6 +45,11 @@ public partial class UserPayouts
request.Status = _filterStatus.Value;
}
+ if (_filterPackageId.HasValue && _filterPackageId.Value > 0)
+ {
+ request.PackageId = _filterPackageId.Value;
+ }
+
var result = await CommissionContract.GetUserCommissionPayoutsAsync(request);
if (result?.Models != null && result.Models.Any())
diff --git a/src/BackOffice/Pages/Network/BalancesReport.razor b/src/BackOffice/Pages/Network/BalancesReport.razor
index 562d9bb..7c882f1 100644
--- a/src/BackOffice/Pages/Network/BalancesReport.razor
+++ b/src/BackOffice/Pages/Network/BalancesReport.razor
@@ -33,10 +33,8 @@
Min="0" />
-
+
+
+
+
+ @(string.IsNullOrEmpty(context.Item.PackageTitle) ? "-" : context.Item.PackageTitle)
+
+
+
+
@@ -193,6 +199,7 @@
private MudDataGrid _grid { get; set; }
private long? _filterUserId = null;
private long? _filterWeekDefinitionId = null;
+ private long? _filterPackageId = null;
private int? _minBalance = null;
private int? _maxBalance = null;
private bool _onlyActive = false;
@@ -222,6 +229,11 @@ private MudDataGrid _grid { get; set; }
request.WeekDefinitionId = _filterWeekDefinitionId.Value;
}
+ if (_filterPackageId.HasValue && _filterPackageId.Value > 0)
+ {
+ request.PackageId = _filterPackageId.Value;
+ }
+
var response = await CommissionClient.GetUserWeeklyBalancesAsync(request);
var items = response.Models.Select(b => new UserWeeklyBalanceModel
@@ -238,7 +250,8 @@ private MudDataGrid _grid { get; set; }
MatchedBalance = b.TotalBalances,
PoolContribution = b.WeeklyPoolContribution,
CalculatedAt = b.CalculatedAt?.ToDateTime(),
- IsExpired = b.IsExpired
+ IsExpired = b.IsExpired,
+ PackageTitle = b.PackageTitle
}).ToList();
// Apply balance range filter if specified
@@ -308,5 +321,6 @@ private MudDataGrid _grid { get; set; }
public long PoolContribution { get; set; }
public DateTime? CalculatedAt { get; set; }
public bool IsExpired { get; set; }
+ public string PackageTitle { get; set; } = string.Empty;
}
}