feat: add withdrawal requests feature and update VAT loading mechanism
Build and Deploy / build (push) Successful in 1m25s

This commit is contained in:
masoodafar-web
2025-12-20 04:03:11 +03:30
parent 9ee464b8b4
commit 025e8d3c3e
24 changed files with 961 additions and 398 deletions
@@ -1,3 +1,5 @@
using DateTimeConverterCL;
namespace FrontOffice.Main.Utilities;
/// <summary>
@@ -6,8 +8,8 @@ namespace FrontOffice.Main.Utilities;
public class CommissionPayoutDto
{
public long Id { get; set; }
public int WeekNumber { get; set; }
public string WeekLabel { get; set; } = string.Empty;
public long WeekDefinitionId { get; set; }
public string WeekDisplayName { get; set; } = string.Empty;
public int BalancesEarned { get; set; }
public long TotalAmount { get; set; }
public string AmountFormatted { get; set; } = string.Empty;
@@ -32,8 +34,8 @@ public class CommissionPayoutsResponseDto
/// </summary>
public class WeeklyBalanceDto
{
public int WeekNumber { get; set; }
public string WeekLabel { get; set; } = string.Empty;
public long WeekDefinitionId { get; set; }
public string WeekDisplayName { get; set; } = string.Empty;
public long LeftBalance { get; set; }
public long RightBalance { get; set; }
public long MinBalance { get; set; }
@@ -45,12 +47,37 @@ public class WeeklyBalanceDto
public DateTime EndDate { get; set; }
// Formatted properties
public string LeftBalanceFormatted => $"{LeftBalance:N0} تومان";
public string RightBalanceFormatted => $"{RightBalance:N0} تومان";
public string MinBalanceFormatted => $"{MinBalance:N0} تومان";
public string CalculatedCommissionFormatted => $"{CalculatedCommission:N0} تومان";
public string LeftCarryoverFormatted => $"{LeftCarryover:N0} تومان";
public string RightCarryoverFormatted => $"{RightCarryover:N0} تومان";
public string StartDatePersian => StartDate.ToString("yyyy/MM/dd");
public string EndDatePersian => EndDate.ToString("yyyy/MM/dd");
public string LeftBalanceFormatted => $"{LeftBalance:N0} ";
public string RightBalanceFormatted => $"{RightBalance:N0} ";
public string MinBalanceFormatted => $"{MinBalance:N0} ";
public string CalculatedCommissionFormatted => $"{CalculatedCommission:N0} ";
public string LeftCarryoverFormatted => $"{LeftCarryover:N0} ";
public string RightCarryoverFormatted => $"{RightCarryover:N0} ";
public string StartDatePersian => StartDate.MiladiToJalali();
public string EndDatePersian => EndDate.MiladiToJalali();
}
/// <summary>
/// DTO for Week Definition (for dropdowns)
/// </summary>
public class WeekDefinitionDto
{
public long Id { get; set; }
public int WeekOrder { get; set; }
public string DisplayName { get; set; } = string.Empty;
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public int GregorianYear { get; set; }
public int PersianYear { get; set; }
public bool IsActive { get; set; }
public bool IsCurrentWeek { get; set; }
public string StartDatePersian { get; set; } = string.Empty;
public string EndDatePersian { get; set; } = string.Empty;
// For display in dropdown
public string DropdownDisplay => IsCurrentWeek
? $"{DisplayName} (هفته جاری)"
: DisplayName;
public string DateRangeDisplay => $"{StartDate.MiladiToJalali()} - {EndDate.MiladiToJalali()}";
}