query by node

This commit is contained in:
kittapath 2024-12-13 21:14:01 +07:00
parent de61f55a0d
commit 5f92b0c536
2 changed files with 18 additions and 3 deletions

View file

@ -139,12 +139,27 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
return data; return data;
} }
public async Task<List<ProcessUserTimeStamp>> GetTimestampByDateLateAsync(string type) public async Task<List<ProcessUserTimeStamp>> GetTimestampByDateLateAsync(string type, string role, string nodeId, int node)
{ {
var data = await _dbContext.Set<ProcessUserTimeStamp>() var _nodeId = Guid.Parse(nodeId);
var data = new List<ProcessUserTimeStamp>();
if (role == "OWNER" || role == "CHILD")
{
data = await _dbContext.Set<ProcessUserTimeStamp>().AsQueryable()
.Where(x => x.CheckInStatus == "LATE") .Where(x => x.CheckInStatus == "LATE")
.Where(x => x.ProfileType == type.Trim().ToUpper()) .Where(x => x.ProfileType == type.Trim().ToUpper())
.Where(x => node == 4 ? x.Child4Id == _nodeId : (node == 3 ? x.Child3Id == _nodeId : (node == 2 ? x.Child2Id == _nodeId : (node == 1 ? x.Child1Id == _nodeId : (node == 0 ? x.RootId == _nodeId : true)))))
.ToListAsync(); .ToListAsync();
}
else
{
data = await _dbContext.Set<ProcessUserTimeStamp>().AsQueryable()
.Where(x => x.CheckInStatus == "LATE")
.Where(x => x.ProfileType == type.Trim().ToUpper())
.Where(x => node == 4 ? x.Child4Id == _nodeId : (node == 3 ? x.Child3Id == _nodeId : (node == 2 ? x.Child2Id == _nodeId : (node == 1 ? x.Child1Id == _nodeId : (node == 0 ? x.RootId == _nodeId : true)))))
.Where(x => node == 0 ? x.Child1Id == null : (node == 1 ? x.Child2Id == null : (node == 2 ? x.Child3Id == null : (node == 3 ? x.Child4Id == null : true))))
.ToListAsync();
}
return data; return data;
} }

View file

@ -1171,7 +1171,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var employees = new List<dynamic>(); var employees = new List<dynamic>();
var count = 1; var count = 1;
var userTimeStamps = await _processUserTimeStampRepository.GetTimestampByDateLateAsync(type.Trim().ToUpper()); var userTimeStamps = await _processUserTimeStampRepository.GetTimestampByDateLateAsync(type.Trim().ToUpper(), jsonData["result"]?.ToString(), req.nodeId, req.node);
foreach (var p in userTimeStamps) foreach (var p in userTimeStamps)
{ {
var fullName = $"{p.Prefix}{p.FirstName} {p.LastName}"; var fullName = $"{p.Prefix}{p.FirstName} {p.LastName}";