Fix รายงานให้แสดงรายชื่อตรงสังกัดที่เลือก issue #1606
This commit is contained in:
parent
c348dae155
commit
70b5c59f06
4 changed files with 45 additions and 9 deletions
|
|
@ -1461,7 +1461,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
||||||
return res;
|
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 _nodeId = Guid.Parse(nodeId);
|
||||||
var data = new List<LeaveRequest>();
|
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.ProfileType == type.Trim().ToUpper())
|
||||||
.Where(x => x.LeaveStartDate.Date >= startDate.Date && x.LeaveStartDate.Date <= endDate.Date)
|
.Where(x => x.LeaveStartDate.Date >= startDate.Date && x.LeaveStartDate.Date <= endDate.Date)
|
||||||
.Where(x => x.LeaveStatus == "APPROVE" || x.LeaveStatus == "DELETING").ToListAsync();
|
.Where(x => x.LeaveStatus == "APPROVE" || x.LeaveStatus == "DELETING").ToListAsync();
|
||||||
|
// กรองตามสิทธิ์ admin ก่อน
|
||||||
if (role == "OWNER")
|
if (role == "OWNER")
|
||||||
{
|
{
|
||||||
node = null;
|
node = null;
|
||||||
|
|
@ -1519,7 +1519,13 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
||||||
true
|
true
|
||||||
).ToList();
|
).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
|
var res = (from d in data
|
||||||
group d by new { d.Root, d.Child1, d.Child2, d.Child3, d.Child4 } into grp
|
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
|
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;
|
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>();
|
var data = new List<ProcessUserTimeStamp>();
|
||||||
//if (role == "OWNER" || role == "CHILD")
|
//if (role == "OWNER" || role == "CHILD")
|
||||||
//{
|
//{
|
||||||
|
|
@ -166,7 +166,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
|
||||||
.Where(x => x.CheckInStatus == "LATE")
|
.Where(x => x.CheckInStatus == "LATE")
|
||||||
.Where(u => u.CheckIn.Date >= StartDate && u.CheckIn.Date <= EndDate)
|
.Where(u => u.CheckIn.Date >= StartDate && u.CheckIn.Date <= EndDate)
|
||||||
.Where(x => x.ProfileType == type.Trim().ToUpper()).ToListAsync();
|
.Where(x => x.ProfileType == type.Trim().ToUpper()).ToListAsync();
|
||||||
|
// กรองตามสิทธิ์ admin ก่อน
|
||||||
if (role == "OWNER")
|
if (role == "OWNER")
|
||||||
{
|
{
|
||||||
node = null;
|
node = null;
|
||||||
|
|
@ -196,6 +196,17 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
|
||||||
true
|
true
|
||||||
).ToList();
|
).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;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,5 +16,11 @@ namespace BMA.EHR.Application.Responses.Profiles
|
||||||
public string? PositionLevel { get; set; }
|
public string? PositionLevel { get; set; }
|
||||||
public string? PositionType { get; set; }
|
public string? PositionType { get; set; }
|
||||||
public string? Oc { 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 count = 1;
|
||||||
var employees = new List<dynamic>();
|
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)
|
foreach (var p in profile)
|
||||||
{
|
{
|
||||||
var keycloakUserId = p.Keycloak ?? Guid.Empty;
|
var keycloakUserId = p.Keycloak ?? Guid.Empty;
|
||||||
|
|
@ -1457,6 +1463,13 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
var studyTotal = 0;
|
var studyTotal = 0;
|
||||||
var workTotal = 0;
|
var workTotal = 0;
|
||||||
var seminarTotal = 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 dd in dateList)
|
||||||
{
|
{
|
||||||
foreach (var p in profile)
|
foreach (var p in profile)
|
||||||
|
|
@ -1702,7 +1715,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
nodeId = profileAdmin?.RootDnaId;
|
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(), 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)
|
foreach (var p in userTimeStamps)
|
||||||
{
|
{
|
||||||
var fullName = $"{p.Prefix}{p.FirstName} {p.LastName}";
|
var fullName = $"{p.Prefix}{p.FirstName} {p.LastName}";
|
||||||
|
|
@ -1807,7 +1820,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
{
|
{
|
||||||
nodeId = profileAdmin?.RootDnaId;
|
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 enddate = req.EndDate.Date == req.StartDate.Date ? "" : $" - {req.EndDate.Date.ToThaiShortDate().ToThaiNumber()}";
|
||||||
var result = new
|
var result = new
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue