Fix รายงานให้แสดงรายชื่อตรงสังกัดที่เลือก issue #1606
Some checks failed
release-dev / release-dev (push) Failing after 12s
Some checks failed
release-dev / release-dev (push) Failing after 12s
This commit is contained in:
parent
c348dae155
commit
e58bda8e9e
4 changed files with 45 additions and 9 deletions
|
|
@ -1461,7 +1461,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
return res;
|
||||
}
|
||||
|
||||
public async Task<List<GetSumApproveLeaveByRootDto>> GetSumApproveLeaveByRootAndRange(DateTime startDate, DateTime endDate, string type, string role, string? nodeId, int? node)
|
||||
public async Task<List<GetSumApproveLeaveByRootDto>> GetSumApproveLeaveByRootAndRange(DateTime startDate, DateTime endDate, string type, string role, string? nodeId, int? node, string? nodeIdByReq, int? nodeByReq)
|
||||
{
|
||||
// var _nodeId = Guid.Parse(nodeId);
|
||||
var data = new List<LeaveRequest>();
|
||||
|
|
@ -1489,7 +1489,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
.Where(x => x.ProfileType == type.Trim().ToUpper())
|
||||
.Where(x => x.LeaveStartDate.Date >= startDate.Date && x.LeaveStartDate.Date <= endDate.Date)
|
||||
.Where(x => x.LeaveStatus == "APPROVE" || x.LeaveStatus == "DELETING").ToListAsync();
|
||||
|
||||
// กรองตามสิทธิ์ admin ก่อน
|
||||
if (role == "OWNER")
|
||||
{
|
||||
node = null;
|
||||
|
|
@ -1519,7 +1519,13 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
true
|
||||
).ToList();
|
||||
}
|
||||
|
||||
// กรองตามที่ fe ส่งมา
|
||||
if (role == "ROOT" || role == "OWNER" || role == "CHILD")
|
||||
{
|
||||
data = data
|
||||
.Where(x => nodeByReq == 4 ? x.Child4Id == Guid.Parse(nodeIdByReq) : nodeByReq == 3 ? x.Child3Id == Guid.Parse(nodeIdByReq) : nodeByReq == 2 ? x.Child2Id == Guid.Parse(nodeIdByReq) : nodeByReq == 1 ? x.Child1Id == Guid.Parse(nodeIdByReq) : nodeByReq == 0 ? x.RootId == Guid.Parse(nodeIdByReq) : true)
|
||||
.ToList();
|
||||
}
|
||||
var res = (from d in data
|
||||
group d by new { d.Root, d.Child1, d.Child2, d.Child3, d.Child4 } into grp
|
||||
orderby grp.Key.Root, grp.Key.Child1, grp.Key.Child2, grp.Key.Child3, grp.Key.Child4
|
||||
|
|
|
|||
|
|
@ -139,9 +139,9 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
|
|||
return data;
|
||||
}
|
||||
|
||||
public async Task<List<ProcessUserTimeStamp>> GetTimestampByDateLateAsync(string type, string role, string nodeId, int? node, DateTime StartDate, DateTime EndDate)
|
||||
public async Task<List<ProcessUserTimeStamp>> GetTimestampByDateLateAsync(string type, string role, string nodeId, int? node, string nodeIdByReq, int? nodeByReq, DateTime StartDate, DateTime EndDate)
|
||||
{
|
||||
var _nodeId = Guid.Parse(nodeId);
|
||||
var _nodeId = role != "OWNER" ? Guid.Parse(nodeId) : Guid.Parse("00000000-0000-0000-0000-000000000000");
|
||||
var data = new List<ProcessUserTimeStamp>();
|
||||
//if (role == "OWNER" || role == "CHILD")
|
||||
//{
|
||||
|
|
@ -166,7 +166,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
|
|||
.Where(x => x.CheckInStatus == "LATE")
|
||||
.Where(u => u.CheckIn.Date >= StartDate && u.CheckIn.Date <= EndDate)
|
||||
.Where(x => x.ProfileType == type.Trim().ToUpper()).ToListAsync();
|
||||
|
||||
// กรองตามสิทธิ์ admin ก่อน
|
||||
if (role == "OWNER")
|
||||
{
|
||||
node = null;
|
||||
|
|
@ -196,6 +196,17 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
|
|||
true
|
||||
).ToList();
|
||||
}
|
||||
// กรองตามที่ fe ส่งมา
|
||||
if (role == "ROOT" || role == "OWNER" || role == "CHILD")
|
||||
{
|
||||
data = data.Where(x =>
|
||||
nodeByReq == 4 ? x.Child4Id == Guid.Parse(nodeIdByReq) :
|
||||
nodeByReq == 3 ? x.Child3Id == Guid.Parse(nodeIdByReq) :
|
||||
nodeByReq == 2 ? x.Child2Id == Guid.Parse(nodeIdByReq) :
|
||||
nodeByReq == 1 ? x.Child1Id == Guid.Parse(nodeIdByReq) :
|
||||
nodeByReq == 0 ? x.RootId == Guid.Parse(nodeIdByReq) : true
|
||||
).ToList();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,5 +16,11 @@ namespace BMA.EHR.Application.Responses.Profiles
|
|||
public string? PositionLevel { get; set; }
|
||||
public string? PositionType { get; set; }
|
||||
public string? Oc { get; set; }
|
||||
public string? OrgRootId { get; set; }
|
||||
public string? OrgChild1Id { get; set; }
|
||||
public string? OrgChild2Id { get; set; }
|
||||
public string? OrgChild3Id { get; set; }
|
||||
public string? OrgChild4Id { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -997,7 +997,13 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
|
||||
var count = 1;
|
||||
var employees = new List<dynamic>();
|
||||
|
||||
// กรองตามที่ fe ส่งมา
|
||||
if (role == "ROOT" || role == "OWNER" || role == "CHILD")
|
||||
{
|
||||
profile = profile
|
||||
.Where(x => req.node == 4 ? x.OrgChild4Id == req.nodeId : req.node == 3 ? x.OrgChild3Id == req.nodeId : req.node == 2 ? x.OrgChild2Id == req.nodeId : req.node == 1 ? x.OrgChild1Id == req.nodeId : req.node == 0 ? x.OrgRootId == req.nodeId : true)
|
||||
.ToList();
|
||||
}
|
||||
foreach (var p in profile)
|
||||
{
|
||||
var keycloakUserId = p.Keycloak ?? Guid.Empty;
|
||||
|
|
@ -1457,6 +1463,13 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
var studyTotal = 0;
|
||||
var workTotal = 0;
|
||||
var seminarTotal = 0;
|
||||
// กรองตามที่ fe ส่งมา
|
||||
if (role == "ROOT" || role == "OWNER" || role == "CHILD")
|
||||
{
|
||||
profile = profile
|
||||
.Where(x => req.node == 4 ? x.OrgChild4Id == req.nodeId : req.node == 3 ? x.OrgChild3Id == req.nodeId : req.node == 2 ? x.OrgChild2Id == req.nodeId : req.node == 1 ? x.OrgChild1Id == req.nodeId : req.node == 0 ? x.OrgRootId == req.nodeId : true)
|
||||
.ToList();
|
||||
}
|
||||
foreach (var dd in dateList)
|
||||
{
|
||||
foreach (var p in profile)
|
||||
|
|
@ -1702,7 +1715,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
nodeId = profileAdmin?.RootDnaId;
|
||||
}
|
||||
//var userTimeStamps = await _processUserTimeStampRepository.GetTimestampByDateLateAsync(type.Trim().ToUpper(), jsonData["result"]?.ToString(), req.nodeId, req.node, req.StartDate, req.EndDate);
|
||||
var userTimeStamps = await _processUserTimeStampRepository.GetTimestampByDateLateAsync(type.Trim().ToUpper(), role, nodeId, profileAdmin.Node, req.StartDate, req.EndDate);
|
||||
var userTimeStamps = await _processUserTimeStampRepository.GetTimestampByDateLateAsync(type.Trim().ToUpper(), role, nodeId, profileAdmin.Node, req.nodeId, req.node, req.StartDate, req.EndDate);
|
||||
foreach (var p in userTimeStamps)
|
||||
{
|
||||
var fullName = $"{p.Prefix}{p.FirstName} {p.LastName}";
|
||||
|
|
@ -1807,7 +1820,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
{
|
||||
nodeId = profileAdmin?.RootDnaId;
|
||||
}
|
||||
var leaveDays = await _leaveRequestRepository.GetSumApproveLeaveByRootAndRange(req.StartDate, req.EndDate, type, jsonData["result"]?.ToString(), nodeId, profileAdmin?.Node);
|
||||
var leaveDays = await _leaveRequestRepository.GetSumApproveLeaveByRootAndRange(req.StartDate, req.EndDate, type, jsonData["result"]?.ToString(), nodeId, profileAdmin?.Node, req.nodeId, req.node);
|
||||
var enddate = req.EndDate.Date == req.StartDate.Date ? "" : $" - {req.EndDate.Date.ToThaiShortDate().ToThaiNumber()}";
|
||||
var result = new
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue