feat: add withdrawal requests feature and update VAT loading mechanism
Build and Deploy / build (push) Successful in 1m25s
Build and Deploy / build (push) Successful in 1m25s
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using FrontOffice.Main.Utilities;
|
||||
using FrontOffice.Main.Shared;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using MudBlazor;
|
||||
|
||||
@@ -7,13 +8,15 @@ namespace FrontOffice.Main.Pages.Commission;
|
||||
public partial class WeeklyBalancePage : ComponentBase
|
||||
{
|
||||
[Inject] private CommissionService CommissionService { get; set; } = default!;
|
||||
[Inject] private ISnackbar SnackbarService { get; set; } = default!;
|
||||
|
||||
[Parameter]
|
||||
[SupplyParameterFromQuery(Name = "week")]
|
||||
public int? QueryWeekNumber { get; set; }
|
||||
public string? QueryWeekNumber { get; set; }
|
||||
|
||||
private WeekSelector? _weekSelector;
|
||||
private WeekDefinitionDto? _selectedWeekDefinition;
|
||||
private WeeklyBalanceDto? _weeklyBalance;
|
||||
private int? _selectedWeekNumber;
|
||||
private bool _isLoading = true;
|
||||
private bool _hasError = false;
|
||||
|
||||
@@ -27,12 +30,44 @@ public partial class WeeklyBalancePage : ComponentBase
|
||||
}
|
||||
};
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
{
|
||||
if (QueryWeekNumber.HasValue)
|
||||
_selectedWeekNumber = QueryWeekNumber;
|
||||
if (firstRender)
|
||||
{
|
||||
// Wait for WeekSelector to initialize and load its cached weeks
|
||||
if (_weekSelector != null)
|
||||
{
|
||||
await _weekSelector.EnsureLoadedAsync();
|
||||
|
||||
// Handle query parameter ?week=46 (WeekOrder) or ?week=123 (Id)
|
||||
if (!string.IsNullOrEmpty(QueryWeekNumber))
|
||||
{
|
||||
// Try to parse as integer (first try as WeekOrder, then as Id)
|
||||
if (int.TryParse(QueryWeekNumber, out int weekOrder))
|
||||
{
|
||||
_selectedWeekDefinition = _weekSelector.FindByWeekOrder(weekOrder);
|
||||
if (_selectedWeekDefinition == null && long.TryParse(QueryWeekNumber, out long id))
|
||||
{
|
||||
_selectedWeekDefinition = _weekSelector.FindById(id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If no week selected and no query param, select current week
|
||||
if (_selectedWeekDefinition == null)
|
||||
{
|
||||
_selectedWeekDefinition = _weekSelector.GetCurrentWeek();
|
||||
}
|
||||
|
||||
StateHasChanged();
|
||||
await LoadWeeklyBalanceAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
await LoadWeeklyBalanceAsync();
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
_isLoading = true;
|
||||
}
|
||||
|
||||
private async Task LoadWeeklyBalanceAsync()
|
||||
@@ -41,12 +76,27 @@ public partial class WeeklyBalancePage : ComponentBase
|
||||
{
|
||||
_isLoading = true;
|
||||
_hasError = false;
|
||||
_weeklyBalance = await CommissionService.GetMyWeeklyBalanceAsync(_selectedWeekNumber);
|
||||
|
||||
long? weekDefinitionId = _selectedWeekDefinition?.Id;
|
||||
|
||||
_weeklyBalance = await CommissionService.GetMyWeeklyBalanceAsync(weekDefinitionId);
|
||||
|
||||
// Update week display name from selected definition if available
|
||||
if (_selectedWeekDefinition != null && _weeklyBalance != null)
|
||||
{
|
||||
_weeklyBalance.WeekDisplayName = _selectedWeekDefinition.DisplayName;
|
||||
return;
|
||||
}
|
||||
|
||||
_weeklyBalance = new WeeklyBalanceDto()
|
||||
{
|
||||
|
||||
};
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_hasError = true;
|
||||
Snackbar.Add($"خطا در دریافت تعادل: {ex.Message}", Severity.Error);
|
||||
SnackbarService.Add($"خطا در دریافت تعادل: {ex.Message}", Severity.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -56,7 +106,11 @@ public partial class WeeklyBalancePage : ComponentBase
|
||||
|
||||
private async Task LoadCurrentWeekAsync()
|
||||
{
|
||||
_selectedWeekNumber = null;
|
||||
if (_weekSelector != null)
|
||||
{
|
||||
await _weekSelector.SelectCurrentWeekAsync();
|
||||
}
|
||||
_selectedWeekDefinition = _weekSelector?.GetCurrentWeek();
|
||||
await LoadWeeklyBalanceAsync();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user