feat: change the loan is paid by checkout

This commit is contained in:
2025-09-23 17:55:03 +03:30
parent 72435f2d47
commit c3bbd9af98

View File

@@ -35,9 +35,18 @@ public class LoanRepository : RepositoryBase<long, Loan>, ILoanRepository
var startDate = loan.LoanInstallments.MinBy(x => x.InstallmentDate).InstallmentDate;
var endDate = loan.LoanInstallments.MaxBy(x => x.InstallmentDate).InstallmentDate;
var customizeCheckouts =await _companyContext.CustomizeCheckouts.Where(x => x.WorkshopId == loan.WorkshopId && x.EmployeeId == loan.EmployeeId &&
x.ContractStart <= endDate && x.ContractEnd >= startDate).Select(x=> new {x.MonthInt, x.YearInt}).ToListAsync();
var pc = new PersianCalendar();
var customizeCheckouts = (await _companyContext.CheckoutSet
.Where(x => x.WorkshopId == loan.WorkshopId && x.EmployeeId == loan.EmployeeId &&
startDate<=x.ContractEnd && endDate>=x.ContractEnd)
.Select(x => x.ContractStart).ToListAsync())
.Select(x =>
{
var year = pc.GetYear(x);
var month = pc.GetMonth(x);
return new { Month = month, Year = year };
});
var result = new LoanDetailsViewModel()
{
@@ -51,7 +60,7 @@ public class LoanRepository : RepositoryBase<long, Loan>, ILoanRepository
Id = x.Id,
InstallmentAmount = x.AmountForMonth.ToMoney(),
InstallmentDate = x.InstallmentDate.ToFarsi(),
IsPaid = customizeCheckouts.Any(c => c.MonthInt.ToString() == x.Month && c.YearInt.ToString() == x.Year)
IsPaid = customizeCheckouts.Any(c => c.Month.ToString("00") == x.Month && c.Year.ToString() == x.Year),
}).ToList()
};