fix #1462, #1476
Some checks failed
release-dev / release-dev (push) Failing after 13s

This commit is contained in:
Bright 2025-05-06 18:16:14 +07:00
parent 06a6019e97
commit ed0bde9780
7 changed files with 169 additions and 6 deletions

View file

@ -308,6 +308,46 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
return await rawData.ToListAsync();
}
public async Task<List<LeaveRequest>> GetListLeaveRequestForAdminAsync(int year, Guid type, string status, DateTime startDate, DateTime endDate, string role, string? nodeId, int? node)
{
var rawData = _dbContext.Set<LeaveRequest>().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.LeaveStatus != "DRAFT")
.OrderByDescending(x => x.CreatedAt)
.AsQueryable();
if (year != 0)
rawData = rawData.Where(x => x.LeaveStartDate.Year == year);
if (type != Guid.Empty)
rawData = rawData.Where(x => x.Type.Id == type);
if (status.Trim().ToUpper() != "ALL")
rawData = rawData.Where(x => x.LeaveStatus == status);
if (startDate != DateTime.MinValue)
rawData = rawData.Where(x => x.LeaveStartDate >= startDate);
if (endDate != DateTime.MinValue)
rawData = rawData.Where(x => x.LeaveEndDate <= endDate);
if (role == "OWNER" || role == "CHILD")
{
rawData = rawData
.Where(x => node == 4 ? x.Child4DnaId == Guid.Parse(nodeId!) : (node == 3 ? x.Child3DnaId == Guid.Parse(nodeId!) : (node == 2 ? x.Child2DnaId == Guid.Parse(nodeId!) : (node == 1 ? x.Child1DnaId == Guid.Parse(nodeId!) : (node == 0 ? x.RootDnaId == Guid.Parse(nodeId!) : (node == null ? true : true))))));
}
else
{
rawData = rawData
//.Where(x => node == 4 ? x.Child4DnaId == Guid.Parse(nodeId) : (node == 3 ? x.Child3DnaId == Guid.Parse(nodeId) : (node == 2 ? x.Child2DnaId == Guid.Parse(nodeId) : (node == 1 ? x.Child1DnaId == Guid.Parse(nodeId) : (node == 0 ? x.RootDnaId == Guid.Parse(nodeId) : (node == null ? true : true))))))
//.Where(x => node == 0 ? x.Child1DnaId == null : (node == 1 ? x.Child2DnaId == null : (node == 2 ? x.Child3DnaId == null : (node == 3 ? x.Child4DnaId == null : true))));
.Where(x => x.RootDnaId == Guid.Parse(nodeId!));
}
return await rawData.ToListAsync();
}
public async Task<List<LeaveRequest>> GetLeaveRequestForAdminWithAuthAsync(int year, Guid type, string status, DateTime startDate, DateTime endDate, List<Guid> keycloakIdList)
{
var rawData = _dbContext.Set<LeaveRequest>().AsNoTracking()