Merge branch 'develop'

This commit is contained in:
harid 2025-12-12 15:42:55 +07:00
commit 96deaef308
3 changed files with 200 additions and 48 deletions

View file

@ -8,6 +8,7 @@ using BMA.EHR.Domain.Shared;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using System.IO.Compression;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Net.Http.Json; using System.Net.Http.Json;
@ -275,11 +276,17 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task<List<LeaveRequest>> GetLeaveRequestByYearForAdminAsync(int year, string role, string? nodeId, int? node) public async Task<List<LeaveRequest>> GetLeaveRequestByYearForAdminAsync(int year, string role, string? nodeId, int? node)
{ {
var rawData = await _dbContext.Set<LeaveRequest>().AsQueryable().AsNoTracking() var rawData = _dbContext.Set<LeaveRequest>().AsQueryable().AsNoTracking()
.Include(x => x.Type) .Include(x => x.Type)
.Where(x => x.LeaveStartDate.Year == year) .Where(x => x.LeaveStatus != "REJECT" && x.LeaveStatus != "DELETE");
.Where(x => x.LeaveStatus != "REJECT" && x.LeaveStatus != "DELETE") //.ToListAsync();
.ToListAsync(); if (year != 0)
{
var startFiscalDate = new DateTime(year - 1, 10, 1);
var endFiscalDate = new DateTime(year, 9, 30);
rawData = rawData.Where(x => x.LeaveStartDate.Date >= startFiscalDate && x.LeaveStartDate.Date <= endFiscalDate);
}
if (role == "OWNER") if (role == "OWNER")
{ {
node = null; node = null;
@ -287,22 +294,22 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
if (role == "OWNER" || role == "CHILD") if (role == "OWNER" || role == "CHILD")
{ {
rawData = rawData 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)))))).ToList(); .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 if (role == "BROTHER") else if (role == "BROTHER")
{ {
rawData = rawData rawData = rawData
.Where(x => node == 4 ? x.Child3DnaId == Guid.Parse(nodeId!) : (node == 3 ? x.Child2DnaId == Guid.Parse(nodeId!) : (node == 2 ? x.Child1DnaId == Guid.Parse(nodeId!) : (node == 1 || node == 0 ? x.RootDnaId == Guid.Parse(nodeId!) : (node == null ? true : true))))).ToList(); .Where(x => node == 4 ? x.Child3DnaId == Guid.Parse(nodeId!) : (node == 3 ? x.Child2DnaId == Guid.Parse(nodeId!) : (node == 2 ? x.Child1DnaId == Guid.Parse(nodeId!) : (node == 1 || node == 0 ? x.RootDnaId == Guid.Parse(nodeId!) : (node == null ? true : true)))));
} }
else if (role == "ROOT") else if (role == "ROOT")
{ {
rawData = rawData rawData = rawData
.Where(x => x.RootDnaId == Guid.Parse(nodeId!)).ToList(); .Where(x => x.RootDnaId == Guid.Parse(nodeId!));
} }
else if (role == "PARENT") else if (role == "PARENT")
{ {
rawData = rawData rawData = rawData
.Where(x => x.RootDnaId == Guid.Parse(nodeId!) && x.Child1DnaId != null).ToList(); .Where(x => x.RootDnaId == Guid.Parse(nodeId!) && x.Child1DnaId != null);
} }
else if (role == "NORMAL") else if (role == "NORMAL")
{ {
@ -312,10 +319,10 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
node == 1 ? x.Child1DnaId == Guid.Parse(nodeId!) && x.Child2DnaId == null : node == 1 ? x.Child1DnaId == Guid.Parse(nodeId!) && x.Child2DnaId == null :
node == 2 ? x.Child2DnaId == Guid.Parse(nodeId!) && x.Child3DnaId == null : node == 2 ? x.Child2DnaId == Guid.Parse(nodeId!) && x.Child3DnaId == null :
node == 3 ? x.Child3DnaId == Guid.Parse(nodeId!) && x.Child4DnaId == null : node == 3 ? x.Child3DnaId == Guid.Parse(nodeId!) && x.Child4DnaId == null :
node == 4 ? x.Child4DnaId == Guid.Parse(nodeId!) : true).ToList(); node == 4 ? x.Child4DnaId == Guid.Parse(nodeId!) : true);
} }
return rawData; return await rawData.ToListAsync();
} }
public async Task<List<LeaveRequest>> GetLeaveRequestByUserIdAsync(Guid keycloakUserId, int year, Guid type, string status) public async Task<List<LeaveRequest>> GetLeaveRequestByUserIdAsync(Guid keycloakUserId, int year, Guid type, string status)
@ -566,8 +573,14 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
.Where(x => x.LeaveStatus == "DELETE" || x.LeaveStatus == "DELETING") .Where(x => x.LeaveStatus == "DELETE" || x.LeaveStatus == "DELETING")
.AsQueryable(); .AsQueryable();
// if (year != 0)
// rawData = rawData.Where(x => x.LeaveStartDate.Year == year);
if (year != 0) if (year != 0)
rawData = rawData.Where(x => x.LeaveStartDate.Year == year); {
var startFiscalDate = new DateTime(year - 1, 10, 1);
var endFiscalDate = new DateTime(year, 9, 30);
rawData = rawData.Where(x => x.LeaveStartDate.Date >= startFiscalDate && x.LeaveStartDate.Date <= endFiscalDate);
}
if (type != Guid.Empty) if (type != Guid.Empty)
rawData = rawData.Where(x => x.Type.Id == type); rawData = rawData.Where(x => x.Type.Id == type);
@ -901,6 +914,26 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
}; };
_appDbContext.Set<Notification>().Add(noti1); _appDbContext.Set<Notification>().Add(noti1);
} }
else
{
// มีแต่ approver อย่างเดียว
var firstApprover = rawData.Approvers
.Where(x => x.ApproveType!.ToUpper() == "APPROVER")
.OrderBy(x => x.Seq)
.FirstOrDefault();
if(firstApprover != null)
{
// Send Notification
var noti2 = new Notification
{
Body = $"การขอลาของคุณ {rawData.FirstName} {rawData.LastName} รอรับการอนุมัติจากคุณ",
ReceiverUserId = firstApprover!.ProfileId,
Type = "",
Payload = $"{URL}/leave/detail/{id}",
};
_appDbContext.Set<Notification>().Add(noti2);
}
}
await _appDbContext.SaveChangesAsync(); await _appDbContext.SaveChangesAsync();
} }
@ -1127,7 +1160,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
.Where(x => x.ApproveType!.ToUpper() == "COMMANDER") .Where(x => x.ApproveType!.ToUpper() == "COMMANDER")
.OrderBy(x => x.Seq) .OrderBy(x => x.Seq)
.ToList(); .ToList();
if (commanders.Count > 0 || commanders != null) if (commanders.Count > 0 && commanders != null)
{ {
if (rawData.ApproveStep != "st3") if (rawData.ApproveStep != "st3")
{ {

View file

@ -152,7 +152,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var startFiscalYear = new DateTime(data.LeaveStartDate.Year - 1, 10, 1); var startFiscalYear = new DateTime(data.LeaveStartDate.Year - 1, 10, 1);
var endFiscalYear = data.LeaveStartDate.Date.AddDays(-1); // นับจากวันที่ยื่นลา var endFiscalYear = data.LeaveStartDate.Date.AddDays(-1); // นับจากวันที่ยื่นลา
var sumLeave = await _leaveRequestRepository.GetSumApproveLeaveTotalByTypeAndRangeForUser(data.KeycloakUserId, data.Type.Id, startFiscalYear, endFiscalYear); var sumLeave = await _leaveRequestRepository.GetSumApproveLeaveTotalByTypeAndRangeForUser(data.KeycloakUserId, data.Type.Id, startFiscalYear, endFiscalYear);
var approveResult = await GetApproverData(data.Approvers);
return new return new
{ {
template = "leave9", template = "leave9",
@ -181,6 +181,12 @@ namespace BMA.EHR.Leave.Service.Controllers
LeaveRemain = (data.Type.Limit - sumLeave).ToString().ToThaiNumber(), LeaveRemain = (data.Type.Limit - sumLeave).ToString().ToThaiNumber(),
LeaveAll = (data.LeaveTotal + sumLeave).ToString().ToThaiNumber(), LeaveAll = (data.LeaveTotal + sumLeave).ToString().ToThaiNumber(),
approve = approveResult,
leaveStatus = data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "APPROVE"
? "🗹 อนุญาต ☐ ไม่อนุญาต"
: data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "REJECT"
? "☐ อนุญาต 🗹 ไม่อนุญาต"
: "☐ อนุญาต ☐ ไม่อนุญาต"
} }
}; };
} }
@ -194,7 +200,7 @@ namespace BMA.EHR.Leave.Service.Controllers
} }
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}"; var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
var approveResult = await GetApproverData(data.Approvers);
return new return new
{ {
template = "leave10", template = "leave10",
@ -217,6 +223,13 @@ namespace BMA.EHR.Leave.Service.Controllers
LeaveTotal = data.LeaveTotal.ToString().ToThaiNumber(), //data.LeaveStartDate.DiffDay(data.LeaveEndDate).ToString().ToThaiNumber(), LeaveTotal = data.LeaveTotal.ToString().ToThaiNumber(), //data.LeaveStartDate.DiffDay(data.LeaveEndDate).ToString().ToThaiNumber(),
leaveAddress = data.LeaveAddress.ToThaiNumber(), leaveAddress = data.LeaveAddress.ToThaiNumber(),
leaveNumber = data.LeaveNumber.ToThaiNumber(), leaveNumber = data.LeaveNumber.ToThaiNumber(),
approve = approveResult,
leaveStatus = data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "APPROVE"
? "🗹 อนุญาต ☐ ไม่อนุญาต"
: data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "REJECT"
? "☐ อนุญาต 🗹 ไม่อนุญาต"
: "☐ อนุญาต ☐ ไม่อนุญาต"
} }
}; };
} }
@ -248,6 +261,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var leaveLimit = leaveData == null ? 0.0 : leaveData.LeaveDays; var leaveLimit = leaveData == null ? 0.0 : leaveData.LeaveDays;
var extendLeave = leaveLimit - 10; var extendLeave = leaveLimit - 10;
var approveResult = await GetApproverData(data.Approvers);
return new return new
{ {
template = "leave11", template = "leave11",
@ -278,7 +292,15 @@ namespace BMA.EHR.Leave.Service.Controllers
LeaveSummary = sumLeave.ToString().ToThaiNumber(), // วันลาครั้งก่อน LeaveSummary = sumLeave.ToString().ToThaiNumber(), // วันลาครั้งก่อน
LeaveAll = (data.LeaveTotal + sumLeave).ToString().ToThaiNumber(), // ลาครั้งนี้ + ครั้งก่อน LeaveAll = (data.LeaveTotal + sumLeave).ToString().ToThaiNumber(), // ลาครั้งนี้ + ครั้งก่อน
LeaveLimit = leaveLimit.ToString().ToThaiNumber() // สิทธิ์การลา LeaveLimit = leaveLimit.ToString().ToThaiNumber(), // สิทธิ์การลา
approve = approveResult,
leaveStatus = data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "APPROVE"
? "🗹 อนุญาต ☐ ไม่อนุญาต"
: data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "REJECT"
? "☐ อนุญาต 🗹 ไม่อนุญาต"
: "☐ อนุญาต ☐ ไม่อนุญาต"
} }
}; };
} }
@ -305,7 +327,7 @@ namespace BMA.EHR.Leave.Service.Controllers
{ {
isHajj = true; isHajj = true;
} }
var approveResult = await GetApproverData(data.Approvers);
if (isHajj == true) if (isHajj == true)
{ {
return new return new
@ -330,8 +352,14 @@ namespace BMA.EHR.Leave.Service.Controllers
leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(), leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(),
leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(), leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(),
LeaveTotal = data.LeaveTotal.ToString().ToThaiNumber()//data.LeaveStartDate.DiffDay(data.LeaveEndDate).ToString().ToThaiNumber(), LeaveTotal = data.LeaveTotal.ToString().ToThaiNumber(),//data.LeaveStartDate.DiffDay(data.LeaveEndDate).ToString().ToThaiNumber(),
approve = approveResult,
leaveStatus = data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "APPROVE"
? "🗹 อนุญาต ☐ ไม่อนุญาต"
: data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "REJECT"
? "☐ อนุญาต 🗹 ไม่อนุญาต"
: "☐ อนุญาต ☐ ไม่อนุญาต"
} }
}; };
} }
@ -365,8 +393,13 @@ namespace BMA.EHR.Leave.Service.Controllers
leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(), leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(),
leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(), leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(),
LeaveTotal = data.LeaveTotal.ToString().ToThaiNumber()//data.LeaveStartDate.DiffDay(data.LeaveEndDate).ToString().ToThaiNumber(), LeaveTotal = data.LeaveTotal.ToString().ToThaiNumber(),//data.LeaveStartDate.DiffDay(data.LeaveEndDate).ToString().ToThaiNumber(),
leaveStatus = data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "APPROVE"
? "🗹 อนุญาต ☐ ไม่อนุญาต"
: data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "REJECT"
? "☐ อนุญาต 🗹 ไม่อนุญาต"
: "☐ อนุญาต ☐ ไม่อนุญาต"
} }
}; };
} }
@ -390,7 +423,7 @@ namespace BMA.EHR.Leave.Service.Controllers
// if (list.Count > 0) // if (list.Count > 0)
// approver = list.First().Name; // approver = list.First().Name;
//} //}
var approveResult = await GetApproverData(data.Approvers);
return new return new
{ {
template = "leave14", template = "leave14",
@ -417,6 +450,12 @@ namespace BMA.EHR.Leave.Service.Controllers
leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(), leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(),
LeaveTotal = data.LeaveTotal.ToString().ToThaiNumber(), //data.LeaveStartDate.DiffDay(data.LeaveEndDate).ToString().ToThaiNumber(), LeaveTotal = data.LeaveTotal.ToString().ToThaiNumber(), //data.LeaveStartDate.DiffDay(data.LeaveEndDate).ToString().ToThaiNumber(),
approve = approveResult,
leaveStatus = data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "APPROVE"
? "🗹 อนุญาต ☐ ไม่อนุญาต"
: data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "REJECT"
? "☐ อนุญาต 🗹 ไม่อนุญาต"
: "☐ อนุญาต ☐ ไม่อนุญาต"
} }
}; };
} }
@ -439,7 +478,7 @@ namespace BMA.EHR.Leave.Service.Controllers
// if (list.Count > 0) // if (list.Count > 0)
// approver = list.First().Name; // approver = list.First().Name;
//} //}
var approveResult = await GetApproverData(data.Approvers);
return new return new
{ {
template = "leave15", template = "leave15",
@ -473,6 +512,13 @@ namespace BMA.EHR.Leave.Service.Controllers
LeaveTotal = data.LeaveTotal.ToString().ToThaiNumber(), //data.LeaveStartDate.DiffDay(data.LeaveEndDate).ToString().ToThaiNumber(), LeaveTotal = data.LeaveTotal.ToString().ToThaiNumber(), //data.LeaveStartDate.DiffDay(data.LeaveEndDate).ToString().ToThaiNumber(),
leaveAddress = data.LeaveAddress.ToThaiNumber(), leaveAddress = data.LeaveAddress.ToThaiNumber(),
leaveNumber = data.LeaveNumber.ToThaiNumber(), leaveNumber = data.LeaveNumber.ToThaiNumber(),
approve = approveResult,
leaveStatus = data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "APPROVE"
? "🗹 อนุญาต ☐ ไม่อนุญาต"
: data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "REJECT"
? "☐ อนุญาต 🗹 ไม่อนุญาต"
: "☐ อนุญาต ☐ ไม่อนุญาต"
} }
}; };
} }
@ -501,7 +547,7 @@ namespace BMA.EHR.Leave.Service.Controllers
// if (list.Count > 0) // if (list.Count > 0)
// approver = list.First().Name; // approver = list.First().Name;
//} //}
var approveResult = await GetApproverData(data.Approvers);
return new return new
{ {
template = "leave16", template = "leave16",
@ -562,10 +608,15 @@ namespace BMA.EHR.Leave.Service.Controllers
institute = x.Institute == null ? "" : x.Institute.ToThaiNumber(), institute = x.Institute == null ? "" : x.Institute.ToThaiNumber(),
country = x.Country == null ? "" : x.Country.ToThaiNumber(), country = x.Country == null ? "" : x.Country.ToThaiNumber(),
finishDate = x.FinishDate == null ? "-" : x.FinishDate.Value.ToThaiShortDate().ToThaiNumber() finishDate = x.FinishDate == null ? "-" : x.FinishDate.Value.ToThaiShortDate().ToThaiNumber()
}).ToList() }).ToList(),
//positionName = profileLeave.PositionName, //positionName = profileLeave.PositionName,
approve = approveResult,
leaveStatus = data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "APPROVE"
? "🗹 อนุญาต ☐ ไม่อนุญาต"
: data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "REJECT"
? "☐ อนุญาต 🗹 ไม่อนุญาต"
: "☐ อนุญาต ☐ ไม่อนุญาต"
} }
}; };
@ -589,7 +640,7 @@ namespace BMA.EHR.Leave.Service.Controllers
// if (list.Count > 0) // if (list.Count > 0)
// approver = list.First().Name; // approver = list.First().Name;
//} //}
var approveResult = await GetApproverData(data.Approvers);
return new return new
{ {
template = "leave17", template = "leave17",
@ -623,6 +674,13 @@ namespace BMA.EHR.Leave.Service.Controllers
leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(), leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(),
leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(), leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(),
LeaveTotal = data.LeaveTotal.ToString().ToThaiNumber(), //data.LeaveStartDate.DiffDay(data.LeaveEndDate).ToString().ToThaiNumber(), LeaveTotal = data.LeaveTotal.ToString().ToThaiNumber(), //data.LeaveStartDate.DiffDay(data.LeaveEndDate).ToString().ToThaiNumber(),
approve = approveResult,
leaveStatus = data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "APPROVE"
? "🗹 อนุญาต ☐ ไม่อนุญาต"
: data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "REJECT"
? "☐ อนุญาต 🗹 ไม่อนุญาต"
: "☐ อนุญาต ☐ ไม่อนุญาต"
} }
}; };
} }
@ -651,7 +709,7 @@ namespace BMA.EHR.Leave.Service.Controllers
// if (list.Count > 0) // if (list.Count > 0)
// approver = list.First().Name; // approver = list.First().Name;
//} //}
var approveResult = await GetApproverData(data.Approvers);
return new return new
{ {
template = "leave18", template = "leave18",
@ -668,13 +726,9 @@ namespace BMA.EHR.Leave.Service.Controllers
positionLeaveName = profile!.PositionLeaveName == null ? "-" : profile!.PositionLeaveName.ToThaiNumber(), positionLeaveName = profile!.PositionLeaveName == null ? "-" : profile!.PositionLeaveName.ToThaiNumber(),
organizationName = profile!.Oc!.ToThaiNumber() ?? "", organizationName = profile!.Oc!.ToThaiNumber() ?? "",
leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(), leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(),
leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(), leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(),
profileType = profile.ProfileType, profileType = profile.ProfileType,
birthDate = profileLeave.BirthDate.ToThaiShortDate().ToThaiNumber(), birthDate = profileLeave.BirthDate.ToThaiShortDate().ToThaiNumber(),
@ -715,7 +769,14 @@ namespace BMA.EHR.Leave.Service.Controllers
institute = x.Institute == null ? "" : x.Institute.ToThaiNumber(), institute = x.Institute == null ? "" : x.Institute.ToThaiNumber(),
country = x.Country == null ? "" : x.Country.ToThaiNumber(), country = x.Country == null ? "" : x.Country.ToThaiNumber(),
finishDate = x.FinishDate == null ? "-" : x.FinishDate.Value.ToThaiShortDate().ToThaiNumber() finishDate = x.FinishDate == null ? "-" : x.FinishDate.Value.ToThaiShortDate().ToThaiNumber()
}).ToList() }).ToList(),
approve = approveResult,
leaveStatus = data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "APPROVE"
? "🗹 อนุญาต ☐ ไม่อนุญาต"
: data.LeaveStatus != null && data.LeaveStatus!.ToUpper() == "REJECT"
? "☐ อนุญาต 🗹 ไม่อนุญาต"
: "☐ อนุญาต ☐ ไม่อนุญาต"
} }
}; };
} }
@ -1688,10 +1749,13 @@ namespace BMA.EHR.Leave.Service.Controllers
var leaveRangeEnd = leaveReq.LeaveRangeEnd == null ? "" : leaveReq.LeaveRangeEnd.ToUpper(); var leaveRangeEnd = leaveReq.LeaveRangeEnd == null ? "" : leaveReq.LeaveRangeEnd.ToUpper();
if (leaveRangeEnd == "MORNING") if(leaveRange != leaveRangeEnd)
remarkStr += "ครึ่งวันเช้า"; {
else if (leaveRangeEnd == "AFTERNOON") if (leaveRangeEnd == "MORNING")
remarkStr += "ครึ่งวันบ่าย"; remarkStr += " - ครึ่งวันเช้า";
else if (leaveRangeEnd == "AFTERNOON")
remarkStr += " - ครึ่งวันบ่าย";
}
break; break;
default: default:
remarkStr += leaveReq.Type.Name; remarkStr += leaveReq.Type.Name;
@ -2477,5 +2541,55 @@ namespace BMA.EHR.Leave.Service.Controllers
} }
#endregion #endregion
private async Task<object> GetApproverData(List<LeaveRequestApprover> list)
{
var _default = new
{
fullName = "......................",
positionName = "......................",
positionSign = "......................",
updatedAt = "...... /...... /......",
comment = "......................",
approveType = ""
};
var approvers = list
.Select(x => new
{
fullName = $"{(x.Prefix ?? "")}{(x.FirstName ?? "")} {(x.LastName ?? "")}".Trim(),
positionName = x.PositionName ?? "......................",
positionSign = x.PositionSign ?? "......................",
updatedAt = x.LastUpdatedAt.HasValue
? x.LastUpdatedAt.Value.Date.ToThaiShortDate().ToThaiNumber()
: "...... /...... /......",
comment = (x.Comment ?? "")
.Replace("\r", "")
.Replace("\n", "")
.Trim(),
approveType = (x.ApproveType ?? "").Trim().ToUpper()
})
.ToList();
var sender = approvers
.FirstOrDefault(x => x.approveType == "SENDER")
?? _default;
var approver = approvers
.FirstOrDefault(x => x.approveType == "APPROVER")
?? _default;
var commanders = approvers
.Where(x => x.approveType == "COMMANDER")
.DefaultIfEmpty(_default)
.ToList();
return new
{
sender = sender,
approver = approver,
commanders = commanders
};
}
} }
} }

View file

@ -15,21 +15,22 @@
}, },
"AllowedHosts": "*", "AllowedHosts": "*",
"ConnectionStrings": { "ConnectionStrings": {
"DefaultConnection": "server=192.168.1.80;user=root;password=adminVM123;port=3306;database=hrms;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;", // "DefaultConnection": "server=192.168.1.80;user=root;password=adminVM123;port=3306;database=hrms;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;",
"ExamConnection": "server=192.168.1.80;user=root;password=adminVM123;port=3306;database=hrms_exam;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;", // "ExamConnection": "server=192.168.1.80;user=root;password=adminVM123;port=3306;database=hrms_exam;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;",
"LeaveConnection": "server=192.168.1.80;user=root;password=adminVM123;port=3306;database=hrms_leave;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;" // "LeaveConnection": "server=192.168.1.80;user=root;password=adminVM123;port=3306;database=hrms_leave;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;"
// "DefaultConnection": "server=192.168.1.63;user=root;password=12345678;port=3306;database=hrms;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;", "DefaultConnection": "server=192.168.1.63;user=root;password=12345678;port=3306;database=hrms;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;",
// "ExamConnection": "server=192.168.1.63;user=root;password=12345678;port=3306;database=hrms_exam;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;", "ExamConnection": "server=192.168.1.63;user=root;password=12345678;port=3306;database=hrms_exam;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;",
// "LeaveConnection": "server=192.168.1.63;user=root;password=12345678;port=3306;database=hrms_leave;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;" "LeaveConnection": "server=192.168.1.63;user=root;password=12345678;port=3306;database=hrms_leave;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;"
//"DefaultConnection": "server=172.27.17.68;user=user;password=cDldaqkwESWvuZ37Gr0n;port=3306;database=hrms;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;", //"DefaultConnection": "server=172.27.17.68;user=user;password=cDldaqkwESWvuZ37Gr0n;port=3306;database=hrms;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;",
//"ExamConnection": "server=172.27.17.68;user=user;password=cDldaqkwESWvuZ37Gr0n;port=3306;database=hrms_exam;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;", //"ExamConnection": "server=172.27.17.68;user=user;password=cDldaqkwESWvuZ37Gr0n;port=3306;database=hrms_exam;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;",
//"LeaveConnection": "server=172.27.17.68;user=user;password=cDldaqkwESWvuZ37Gr0n;port=3306;database=hrms_leave;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;" //"LeaveConnection": "server=172.27.17.68;user=user;password=cDldaqkwESWvuZ37Gr0n;port=3306;database=hrms_leave;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;"
}, },
"Jwt": { "Jwt": {
"Key": "HP-FnQMUj9msHMSD3T9HtdEnphAKoCJLEl85CIqROFI", //"Key": "HP-FnQMUj9msHMSD3T9HtdEnphAKoCJLEl85CIqROFI",
"Issuer": "https://id.frappet.synology.me/realms/hrms" "Key": "j7C9RO_p4nRtuwCH4z9Db_A_6We42tkD_p4lZtDrezc",
"Issuer": "https://hrmsbkk-id.case-collection.com/realms/hrms"
//"Key": "xY2VR-EFvvNPsMs39u8ooVBWQL6mPwrNJOh3koJFTgU", //"Key": "xY2VR-EFvvNPsMs39u8ooVBWQL6mPwrNJOh3koJFTgU",
//"Issuer": "https://hrms-id.bangkok.go.th/realms/hrms" //"Issuer": "https://hrms-id.bangkok.go.th/realms/hrms"
}, },
@ -39,10 +40,10 @@
} }
}, },
"MinIO": { "MinIO": {
"Endpoint": "https://edm-s3.frappet.synology.me/", "Endpoint": "https://hrmsbkk-s3.case-collection.com/",
"AccessKey": "XxtdnJajPjp3hHuKdOMn", "AccessKey": "iwvzjyjgz0BKtLPmMpPu",
"SecretKey": "rVPzB05giC7bA400cUuIThzT4T9SGCcpcmL3tBBg", "SecretKey": "Yv56vwctYdIspDknRJ46xztcBDzteGF3elZiDcAr",
"BucketName": "bma-ehr-fpt" "BucketName": "hrms-fpt"
}, },
"Protocol": "HTTPS", "Protocol": "HTTPS",
"Node": { "Node": {
@ -63,8 +64,12 @@
"MailFrom": "saraban.csc.rd@bangkok.go.th", "MailFrom": "saraban.csc.rd@bangkok.go.th",
"Port": "25" "Port": "25"
}, },
"VITE_URL_MGT": "https://bma-ehr.frappet.synology.me", "Domain": "https://hrmsbkk.case-collection.com",
"API": "https://bma-ehr.frappet.synology.me/api/v1", "APIPROBATION": "https://hrmsbkk.case-collection.com/api/v1/probation",
"API": "https://hrmsbkk.case-collection.com/api/v1",
"APIV2": "https://hrmsbkk.case-collection.com/api/v2",
"VITE_URL_MGT": "https://hrmsbkk-mgt.case-collection.com",
//"API": "https://bma-ehr.frappet.synology.me/api/v1",
//"API": "https://bma-hrms.bangkok.go.th/api/v1", //"API": "https://bma-hrms.bangkok.go.th/api/v1",
"API_KEY": "fKRL16yyEgbyTEJdsMw2h64tGSCmkW685PRtM3CygzX1JOSdptT9UJtpgWwKM8FybRTJups3GTFwj27ZRvlPdIkv3XgCoVJaD5LmR06ozuEPvCCRSdp2WFthg08V5xHc56fTPfZLpr1VmXrhd6dvYhHIqKkQUJR02Rlkss11cLRWEQOssEFVA4xdu2J5DIRO1EM5m7wRRvEwcDB4mYRXD9HH52SMq6iYqUWEWsMwLdbk7QW9yYESUEuzMW5gWrb6vIeWZxJV5bTz1PcWUyR7eO9Fyw1F5DiQYc9JgzTC1mW7cv31fEtTtrfbJYKIb5EbWilqIEUKC6A0UKBDDek35ML0006cqRVm0pvdOH6jeq7VQyYrhdXe59dBEyhYGUIfozoVBvW7Up4QBuOMjyPjSqJPlMBKwaseptfrblxQV1AOOivSBpf1ZcQyOZ8JktRtKUDSuXsmG0lsXwFlI3JCeSHdpVdgZWFYcJPegqfrB6KotR02t9AVkpLs1ZWrixwz" "API_KEY": "fKRL16yyEgbyTEJdsMw2h64tGSCmkW685PRtM3CygzX1JOSdptT9UJtpgWwKM8FybRTJups3GTFwj27ZRvlPdIkv3XgCoVJaD5LmR06ozuEPvCCRSdp2WFthg08V5xHc56fTPfZLpr1VmXrhd6dvYhHIqKkQUJR02Rlkss11cLRWEQOssEFVA4xdu2J5DIRO1EM5m7wRRvEwcDB4mYRXD9HH52SMq6iYqUWEWsMwLdbk7QW9yYESUEuzMW5gWrb6vIeWZxJV5bTz1PcWUyR7eO9Fyw1F5DiQYc9JgzTC1mW7cv31fEtTtrfbJYKIb5EbWilqIEUKC6A0UKBDDek35ML0006cqRVm0pvdOH6jeq7VQyYrhdXe59dBEyhYGUIfozoVBvW7Up4QBuOMjyPjSqJPlMBKwaseptfrblxQV1AOOivSBpf1ZcQyOZ8JktRtKUDSuXsmG0lsXwFlI3JCeSHdpVdgZWFYcJPegqfrB6KotR02t9AVkpLs1ZWrixwz"
} }