Compare commits
9 commits
64c1021c52
...
1aab307f6a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1aab307f6a | ||
|
|
93a83b34e6 | ||
|
|
79e0fe7f1b | ||
|
|
21f82d69e1 | ||
|
|
b5c82f4243 | ||
|
|
b0715e3da6 | ||
|
|
510f1cd78a | ||
|
|
83a915f92c | ||
|
|
094789bfb1 |
11 changed files with 856 additions and 58 deletions
|
|
@ -989,13 +989,21 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
else
|
||||
endTime = duty.EndTimeAfternoon;
|
||||
|
||||
var endTimeMorning = duty.EndTimeMorning;
|
||||
|
||||
string checkOutStatus = "NORMAL";
|
||||
var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(userId, currentDate.Date);
|
||||
if (leaveReq != null)
|
||||
{
|
||||
var leaveRange = leaveReq.LeaveRangeEnd == null ? "" : leaveReq.LeaveRangeEnd.ToUpper();
|
||||
if (leaveRange == "AFTERNOON" || leaveRange == "ALL")
|
||||
checkOutStatus = "NORMAL";
|
||||
{
|
||||
if(DateTime.Parse(currentDate.ToString("yyyy-MM-dd HH:mm")) <
|
||||
DateTime.Parse($"{currentDate.ToString("yyyy-MM-dd")} {endTimeMorning}"))
|
||||
checkOutStatus = "ABSENT";
|
||||
else
|
||||
checkOutStatus = "NORMAL";
|
||||
}
|
||||
else
|
||||
{
|
||||
// fix issue : SIT ระบบบันทึกเวลาปฏิบัติงาน>>ลงเวลาเข้า-ออกงาน (กรณีลงเวลาออกอีกวัน) #921
|
||||
|
|
@ -2438,6 +2446,10 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
var endTime = isSeminar.Trim().ToUpper() == "Y"
|
||||
? DateTime.Parse($"{DateTime.Now.Date.ToString("yyyy-MM-dd")} 14:30")
|
||||
: DateTime.Parse($"{DateTime.Now.Date.ToString("yyyy-MM-dd")} {duty.EndTimeAfternoon}");
|
||||
|
||||
var endTimeMorning = DateTime.Parse($"{DateTime.Now.Date.ToString("yyyy-MM-dd")} {duty.EndTimeMorning}");
|
||||
var endTimeDisplay = endTime;
|
||||
|
||||
var status = string.Empty;
|
||||
if(lastCheckIn == null)
|
||||
{
|
||||
|
|
@ -2458,7 +2470,17 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
{
|
||||
var leaveRange = leaveReq.LeaveRangeEnd == null ? "" : leaveReq.LeaveRangeEnd.ToUpper();
|
||||
if (leaveRange == "AFTERNOON" || leaveRange == "ALL")
|
||||
status = "NORMAL";
|
||||
{
|
||||
if(time < endTimeMorning)
|
||||
{
|
||||
status = "ABSENT";
|
||||
endTimeDisplay = endTimeMorning;
|
||||
}
|
||||
else
|
||||
{
|
||||
status = "NORMAL";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
status = "ABSENT";
|
||||
|
|
@ -2482,7 +2504,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
Status = status,
|
||||
StatusText = status == "ABSENT" ? "ขาดราชการ" : "ปกติ",
|
||||
ServerTime = time,
|
||||
EndTime = endTime
|
||||
EndTime = endTimeDisplay
|
||||
});
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -165,9 +165,28 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
leaveSubTypeName = data.LeaveSubTypeName != null ? data.LeaveSubTypeName.ToThaiNumber() : "",
|
||||
dear = data.CommanderPosition == null ? data.Dear : data.CommanderPosition.ToThaiNumber(),
|
||||
fullname = fullName,
|
||||
positionName = profile!.Position == null ? "-" : profile!.Position.ToThaiNumber(),
|
||||
position = string.IsNullOrEmpty(profile.Position) ? "-" : profile.Position,
|
||||
positionName = (!string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: profile.Position
|
||||
: profile.PosExecutiveName
|
||||
: string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: string.IsNullOrEmpty(profile.PositionLeaveName)
|
||||
? profile.Position
|
||||
: $"{profile.Position}{profile.PositionLeaveName}").ToThaiNumber(),
|
||||
positionLeaveName = profile!.PositionLeaveName == null ? "-" : profile!.PositionLeaveName.ToThaiNumber(),
|
||||
posExecutiveName = profile.PosExecutiveName,
|
||||
organizationName = profile!.Oc!.ToThaiNumber(),
|
||||
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? new[] { (profile!.Oc!.ToThaiNumber()) }
|
||||
: !string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
|
||||
: new[] { (profile!.Oc!.ToThaiNumber()) },
|
||||
leaveDetail = data.LeaveDetail.ToThaiNumber(),
|
||||
leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
|
|
@ -228,9 +247,28 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
leaveSubTypeName = data.LeaveSubTypeName != null ? data.LeaveSubTypeName.ToThaiNumber() : "",
|
||||
dear = data.CommanderPosition == null ? data.Dear : data.CommanderPosition.ToThaiNumber(),
|
||||
fullname = fullName,
|
||||
positionName = profile!.Position == null ? "-" : profile!.Position.ToThaiNumber(),
|
||||
position = string.IsNullOrEmpty(profile.Position) ? "-" : profile.Position,
|
||||
positionName = (!string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: profile.Position
|
||||
: profile.PosExecutiveName
|
||||
: string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: string.IsNullOrEmpty(profile.PositionLeaveName)
|
||||
? profile.Position
|
||||
: $"{profile.Position}{profile.PositionLeaveName}").ToThaiNumber(),
|
||||
positionLeaveName = profile!.PositionLeaveName == null ? "-" : profile!.PositionLeaveName.ToThaiNumber(),
|
||||
organizationName = profile!.Oc!.ToThaiNumber() ?? "",
|
||||
posExecutiveName = profile.PosExecutiveName,
|
||||
organizationName = profile!.Oc!.ToThaiNumber(),
|
||||
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? new[] { (profile!.Oc!.ToThaiNumber()) }
|
||||
: !string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
|
||||
: new[] { (profile!.Oc!.ToThaiNumber()) },
|
||||
wifeDayName = data.WifeDayName ?? "",
|
||||
wifeDayDateBorn = data.WifeDayDateBorn == null || data.WifeDayDateBorn == "" ? "" : DateTime.Parse(data.WifeDayDateBorn).ToThaiShortDate().ToThaiNumber(),
|
||||
leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
|
|
@ -289,9 +327,28 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
leaveSubTypeName = data.LeaveSubTypeName != null ? data.LeaveSubTypeName.ToThaiNumber() : "",
|
||||
dear = data.CommanderPosition == null ? data.Dear : data.CommanderPosition.ToThaiNumber(),
|
||||
fullname = fullName,
|
||||
positionName = profile!.Position == null ? "-" : profile!.Position.ToThaiNumber(),
|
||||
position = string.IsNullOrEmpty(profile.Position) ? "-" : profile.Position,
|
||||
positionName = (!string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: profile.Position
|
||||
: profile.PosExecutiveName
|
||||
: string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: string.IsNullOrEmpty(profile.PositionLeaveName)
|
||||
? profile.Position
|
||||
: $"{profile.Position}{profile.PositionLeaveName}").ToThaiNumber(),
|
||||
positionLeaveName = profile!.PositionLeaveName == null ? "-" : profile!.PositionLeaveName.ToThaiNumber(),
|
||||
organizationName = profile!.Oc!.ToThaiNumber() ?? "",
|
||||
posExecutiveName = profile.PosExecutiveName,
|
||||
organizationName = profile!.Oc!.ToThaiNumber(),
|
||||
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? new[] { (profile!.Oc!.ToThaiNumber()) }
|
||||
: !string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
|
||||
: new[] { (profile!.Oc!.ToThaiNumber()) },
|
||||
|
||||
restDayOldTotal = extendLeave.ToString().ToThaiNumber(),
|
||||
restDayCurrentTotal = (10).ToString().ToThaiNumber(),
|
||||
|
|
@ -357,9 +414,28 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
leaveSubTypeName = data.LeaveSubTypeName != null ? data.LeaveSubTypeName.ToThaiNumber() : "",
|
||||
dear = data.CommanderPosition == null ? data.Dear : data.CommanderPosition.ToThaiNumber(),
|
||||
fullname = fullName,
|
||||
positionName = profile!.Position == null ? "-" : profile!.Position.ToThaiNumber(),
|
||||
position = string.IsNullOrEmpty(profile.Position) ? "-" : profile.Position,
|
||||
positionName = (!string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: profile.Position
|
||||
: profile.PosExecutiveName
|
||||
: string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: string.IsNullOrEmpty(profile.PositionLeaveName)
|
||||
? profile.Position
|
||||
: $"{profile.Position}{profile.PositionLeaveName}").ToThaiNumber(),
|
||||
positionLeaveName = profile!.PositionLeaveName == null ? "-" : profile!.PositionLeaveName.ToThaiNumber(),
|
||||
organizationName = profile!.Oc!.ToThaiNumber() ?? "",
|
||||
posExecutiveName = profile.PosExecutiveName,
|
||||
organizationName = profile!.Oc!.ToThaiNumber(),
|
||||
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? new[] { (profile!.Oc!.ToThaiNumber()) }
|
||||
: !string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
|
||||
: new[] { (profile!.Oc!.ToThaiNumber()) },
|
||||
|
||||
|
||||
leavegovernmentDate = data.LeaveGovernmentDate == null ? "" : data.LeaveGovernmentDate.Value.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
|
|
@ -393,9 +469,28 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
leaveSubTypeName = data.LeaveSubTypeName != null ? data.LeaveSubTypeName.ToThaiNumber() : "",
|
||||
dear = data.CommanderPosition == null ? data.Dear : data.CommanderPosition.ToThaiNumber(),
|
||||
fullname = fullName,
|
||||
positionName = profile!.Position == null ? "-" : profile!.Position.ToThaiNumber(),
|
||||
position = string.IsNullOrEmpty(profile.Position) ? "-" : profile.Position,
|
||||
positionName = (!string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: profile.Position
|
||||
: profile.PosExecutiveName
|
||||
: string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: string.IsNullOrEmpty(profile.PositionLeaveName)
|
||||
? profile.Position
|
||||
: $"{profile.Position}{profile.PositionLeaveName}").ToThaiNumber(),
|
||||
positionLeaveName = profile!.PositionLeaveName == null ? "-" : profile!.PositionLeaveName.ToThaiNumber(),
|
||||
organizationName = profile!.Oc!.ToThaiNumber() ?? "",
|
||||
posExecutiveName = profile.PosExecutiveName,
|
||||
organizationName = profile!.Oc!.ToThaiNumber(),
|
||||
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? new[] { (profile!.Oc!.ToThaiNumber()) }
|
||||
: !string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
|
||||
: new[] { (profile!.Oc!.ToThaiNumber()) },
|
||||
|
||||
leavebirthDate = data.LeaveBirthDate == null ? "" : data.LeaveBirthDate.Value.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
leavegovernmentDate = data.LeaveGovernmentDate == null ? "" : data.LeaveGovernmentDate.Value.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
|
|
@ -454,9 +549,28 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
leaveSubTypeName = data.LeaveSubTypeName != null ? data.LeaveSubTypeName.ToThaiNumber() : "",
|
||||
dear = data.CommanderPosition == null ? data.Dear : data.CommanderPosition.ToThaiNumber(),
|
||||
fullname = fullName,
|
||||
positionName = profile!.Position == null ? "-" : profile!.Position.ToThaiNumber(),
|
||||
position = string.IsNullOrEmpty(profile.Position) ? "-" : profile.Position,
|
||||
positionName = (!string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: profile.Position
|
||||
: profile.PosExecutiveName
|
||||
: string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: string.IsNullOrEmpty(profile.PositionLeaveName)
|
||||
? profile.Position
|
||||
: $"{profile.Position}{profile.PositionLeaveName}").ToThaiNumber(),
|
||||
positionLeaveName = profile!.PositionLeaveName == null ? "-" : profile!.PositionLeaveName.ToThaiNumber(),
|
||||
organizationName = profile!.Oc!.ToThaiNumber() ?? "",
|
||||
posExecutiveName = profile.PosExecutiveName,
|
||||
organizationName = profile!.Oc!.ToThaiNumber(),
|
||||
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? new[] { (profile!.Oc!.ToThaiNumber()) }
|
||||
: !string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
|
||||
: new[] { (profile!.Oc!.ToThaiNumber()) },
|
||||
|
||||
absentDaySummon = data.AbsentDaySummon.ToThaiNumber(),
|
||||
absentDayLocation = data.AbsentDayLocation.ToThaiNumber(),
|
||||
|
|
@ -509,9 +623,28 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
leaveSubTypeName = data.LeaveSubTypeName != null ? data.LeaveSubTypeName.ToThaiNumber() : "",
|
||||
dear = data.CommanderPosition == null ? data.Dear : data.CommanderPosition.ToThaiNumber(),
|
||||
fullname = fullName,
|
||||
positionName = profile!.Position == null ? "-" : profile!.Position.ToThaiNumber(),
|
||||
position = string.IsNullOrEmpty(profile.Position) ? "-" : profile.Position,
|
||||
positionName = (!string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: profile.Position
|
||||
: profile.PosExecutiveName
|
||||
: string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: string.IsNullOrEmpty(profile.PositionLeaveName)
|
||||
? profile.Position
|
||||
: $"{profile.Position}{profile.PositionLeaveName}").ToThaiNumber(),
|
||||
positionLeaveName = profile!.PositionLeaveName == null ? "-" : profile!.PositionLeaveName.ToThaiNumber(),
|
||||
organizationName = profile!.Oc!.ToThaiNumber() ?? "",
|
||||
posExecutiveName = profile.PosExecutiveName,
|
||||
organizationName = profile!.Oc!.ToThaiNumber(),
|
||||
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? new[] { (profile!.Oc!.ToThaiNumber()) }
|
||||
: !string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
|
||||
: new[] { (profile!.Oc!.ToThaiNumber()) },
|
||||
|
||||
leavebirthDate = data.LeaveBirthDate == null ? "" : data.LeaveBirthDate.Value.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
leavegovernmentDate = data.LeaveGovernmentDate == null ? "" : data.LeaveGovernmentDate.Value.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
|
|
@ -587,9 +720,28 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
dear = data.CommanderPosition == null ? data.Dear : data.CommanderPosition.ToThaiNumber(),
|
||||
fullname = fullName,
|
||||
fullnameEng = "",
|
||||
positionName = profile!.Position == null ? "-" : profile!.Position.ToThaiNumber(),
|
||||
position = string.IsNullOrEmpty(profile.Position) ? "-" : profile.Position,
|
||||
positionName = (!string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: profile.Position
|
||||
: profile.PosExecutiveName
|
||||
: string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: string.IsNullOrEmpty(profile.PositionLeaveName)
|
||||
? profile.Position
|
||||
: $"{profile.Position}{profile.PositionLeaveName}").ToThaiNumber(),
|
||||
positionLeaveName = profile!.PositionLeaveName == null ? "-" : profile!.PositionLeaveName.ToThaiNumber(),
|
||||
organizationName = profile!.Oc!.ToThaiNumber() ?? "",
|
||||
posExecutiveName = profile.PosExecutiveName,
|
||||
organizationName = profile!.Oc!.ToThaiNumber(),
|
||||
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? new[] { (profile!.Oc!.ToThaiNumber()) }
|
||||
: !string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
|
||||
: new[] { (profile!.Oc!.ToThaiNumber()) },
|
||||
|
||||
leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
|
|
@ -679,9 +831,28 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
leaveSubTypeName = data.LeaveSubTypeName != null ? data.LeaveSubTypeName.ToThaiNumber() : "",
|
||||
dear = data.CommanderPosition == null ? data.Dear : data.CommanderPosition.ToThaiNumber(),
|
||||
fullname = fullName,
|
||||
positionName = profile!.Position == null ? "-" : profile!.Position.ToThaiNumber(),
|
||||
position = string.IsNullOrEmpty(profile.Position) ? "-" : profile.Position,
|
||||
positionName = (!string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: profile.Position
|
||||
: profile.PosExecutiveName
|
||||
: string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: string.IsNullOrEmpty(profile.PositionLeaveName)
|
||||
? profile.Position
|
||||
: $"{profile.Position}{profile.PositionLeaveName}").ToThaiNumber(),
|
||||
positionLeaveName = profile!.PositionLeaveName == null ? "-" : profile!.PositionLeaveName.ToThaiNumber(),
|
||||
organizationName = profile!.Oc!.ToThaiNumber() ?? "",
|
||||
posExecutiveName = profile.PosExecutiveName,
|
||||
organizationName = profile!.Oc!.ToThaiNumber(),
|
||||
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? new[] { (profile!.Oc!.ToThaiNumber()) }
|
||||
: !string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
|
||||
: new[] { (profile!.Oc!.ToThaiNumber()) },
|
||||
|
||||
leaveSalary = data.LeaveSalary == null ? "" : data.LeaveSalary.Value.ToNumericText().ToThaiNumber(),
|
||||
leaveSalaryText = data.LeaveSalaryText.ToThaiNumber(),
|
||||
|
|
@ -748,9 +919,28 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
leaveSubTypeName = data.LeaveSubTypeName != null ? data.LeaveSubTypeName.ToThaiNumber() : "",
|
||||
dear = data.CommanderPosition == null ? data.Dear : data.CommanderPosition.ToThaiNumber(),
|
||||
fullname = fullName,
|
||||
positionName = profile!.Position == null ? "-" : profile!.Position.ToThaiNumber(),
|
||||
position = string.IsNullOrEmpty(profile.Position) ? "-" : profile.Position,
|
||||
positionName = (!string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: profile.Position
|
||||
: profile.PosExecutiveName
|
||||
: string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: string.IsNullOrEmpty(profile.PositionLeaveName)
|
||||
? profile.Position
|
||||
: $"{profile.Position}{profile.PositionLeaveName}").ToThaiNumber(),
|
||||
positionLeaveName = profile!.PositionLeaveName == null ? "-" : profile!.PositionLeaveName.ToThaiNumber(),
|
||||
organizationName = profile!.Oc!.ToThaiNumber() ?? "",
|
||||
posExecutiveName = profile.PosExecutiveName,
|
||||
organizationName = profile!.Oc!.ToThaiNumber(),
|
||||
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? new[] { (profile!.Oc!.ToThaiNumber()) }
|
||||
: !string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
|
||||
: new[] { (profile!.Oc!.ToThaiNumber()) },
|
||||
|
||||
leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
|
|
@ -946,9 +1136,28 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
dateSendLeave = data.CreatedAt.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
leaveTypeName = data.Type.Name,
|
||||
fullname = fullName,
|
||||
positionName = profile!.Position == null ? "-" : profile!.Position.ToThaiNumber(),
|
||||
position = string.IsNullOrEmpty(profile.Position) ? "-" : profile.Position,
|
||||
positionName = (!string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: profile.Position
|
||||
: profile.PosExecutiveName
|
||||
: string.IsNullOrEmpty(profile.Position)
|
||||
? "-"
|
||||
: string.IsNullOrEmpty(profile.PositionLeaveName)
|
||||
? profile.Position
|
||||
: $"{profile.Position}{profile.PositionLeaveName}").ToThaiNumber(),
|
||||
positionLeaveName = profile!.PositionLeaveName == null ? "-" : profile!.PositionLeaveName.ToThaiNumber(),
|
||||
organizationName = profile!.Oc ?? "",
|
||||
posExecutiveName = profile.PosExecutiveName,
|
||||
organizationName = profile!.Oc!.ToThaiNumber(),
|
||||
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
|
||||
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
|
||||
? new[] { (profile!.Oc!.ToThaiNumber()) }
|
||||
: !string.IsNullOrEmpty(profile.PosExecutiveName)
|
||||
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
|
||||
: new[] { (profile!.Oc!.ToThaiNumber()) },
|
||||
leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(),
|
||||
dear = data.CommanderPosition == null ? data.Dear : data.CommanderPosition.ToThaiNumber(),
|
||||
|
|
@ -2251,7 +2460,8 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
}
|
||||
//employees = employees.OrderBy(x => x.checkInDate).ThenBy(x => x.checkInTimeRaw ?? DateTime.MaxValue).ThenBy(x => x.checkOutTimeRaw ?? DateTime.MaxValue).ToList();
|
||||
employees = employees
|
||||
.OrderBy(x => x.remark.Trim() == "" ? 0 : 1) // ข้อมูลที่ไม่มี remark ให้ขึ้นก่อน
|
||||
.OrderBy(x => x.checkInTime.Trim() != "" ? 0 : 1) // เรียงตามวันที่ลงเวลา
|
||||
.ThenBy(x => x.remark.Trim() == "" ? 0 : 1) // ข้อมูลที่ไม่มี remark ให้ขึ้นก่อน
|
||||
.ThenBy(x => x.checkInTimeRaw ?? DateTime.MaxValue).ThenBy(x => x.checkOutTimeRaw ?? DateTime.MaxValue)
|
||||
.ThenBy(x => x.remark) // จากนั้นจัดเรียงตาม remark
|
||||
.ToList();
|
||||
|
|
@ -2605,11 +2815,12 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
{
|
||||
var _default = new
|
||||
{
|
||||
fullName = "......................",
|
||||
positionName = "......................",
|
||||
positionSign = "......................",
|
||||
updatedAt = "...... /...... /......",
|
||||
comment = "......................",
|
||||
fullName = "............................................",
|
||||
positionName = "............................................",
|
||||
posExOrg = Array.Empty<string>(),
|
||||
positionSign = "............................................",
|
||||
updatedAt = "............/............/............",
|
||||
comment = "......................................................................................................................................................................",
|
||||
approveType = ""
|
||||
};
|
||||
|
||||
|
|
@ -2617,37 +2828,61 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
.Select(x => new
|
||||
{
|
||||
fullName = $"{(x.Prefix ?? "")}{(x.FirstName ?? "")} {(x.LastName ?? "")}".Trim(),
|
||||
positionName = x.PositionName ?? "......................",
|
||||
positionSign = x.PositionSign ?? "......................",
|
||||
positionName = (!string.IsNullOrEmpty(x.PositionLevelName) &&
|
||||
(x.PositionLevelName.Contains("อำนวยการ") || x.PositionLevelName.Contains("บริหาร"))
|
||||
? string.IsNullOrEmpty(x.PosExecutiveName)
|
||||
? string.IsNullOrEmpty(x.PositionName)
|
||||
? "............................................"
|
||||
: x.PositionName
|
||||
: x.PosExecutiveName
|
||||
: string.IsNullOrEmpty(x.PositionName)
|
||||
? "............................................"
|
||||
: string.IsNullOrEmpty(x.PositionLevelName)
|
||||
? x.PositionName
|
||||
: $"{x.PositionName}{x.PositionLevelName}").ToThaiNumber(),
|
||||
posExOrg = !string.IsNullOrEmpty(x.PositionLevelName) &&
|
||||
(x.PositionLevelName.Contains("อำนวยการ") || x.PositionLevelName.Contains("บริหาร"))
|
||||
? new[] { (x!.OrganizationName!.ToThaiNumber()) }
|
||||
: !string.IsNullOrEmpty(x.PosExecutiveName)
|
||||
? new[] { (x.PosExecutiveName.ToThaiNumber()), (x!.OrganizationName!.ToThaiNumber()) }
|
||||
: new[] { (x!.OrganizationName!.ToThaiNumber()) },
|
||||
positionSign = !string.IsNullOrEmpty(x.PositionSign)
|
||||
? x.PositionSign.Replace("\r", "").Replace("\n", " ")
|
||||
: "............................................",
|
||||
updatedAt = x.LastUpdatedAt.HasValue
|
||||
? x.LastUpdatedAt.Value.Date.ToThaiShortDate().ToThaiNumber()
|
||||
: "...... /...... /......",
|
||||
comment = !string.IsNullOrEmpty(x.Comment)
|
||||
? x.Comment.Replace("\r", "").Replace("\n", "").Trim()
|
||||
: "......................",
|
||||
: "............/............/............",
|
||||
comment = !string.IsNullOrEmpty(x.Comment)
|
||||
? (x.Comment.Replace("\r", "").Replace("\n", " ").Trim()).ToThaiNumber()
|
||||
: "......................................................................................................................................................................",
|
||||
approveType = (x.ApproveType ?? "").Trim().ToUpper()
|
||||
})
|
||||
.ToList();
|
||||
|
||||
// การเจ้าหน้าที่
|
||||
var sender = approvers
|
||||
.FirstOrDefault(x => x.approveType == "SENDER")
|
||||
?? _default;
|
||||
|
||||
var approver = approvers
|
||||
.FirstOrDefault(x => x.approveType == "APPROVER")
|
||||
?? _default;
|
||||
|
||||
// ผู้บังคับบัญชา (มีได้มากกว่า 1 คน)
|
||||
var commanders = approvers
|
||||
.Where(x => x.approveType == "COMMANDER")
|
||||
.DefaultIfEmpty(_default)
|
||||
.ToList();
|
||||
|
||||
// ผู้มีอำนาจ
|
||||
var approver = approvers
|
||||
.FirstOrDefault(x => x.approveType == "APPROVER")
|
||||
?? _default;
|
||||
|
||||
return new
|
||||
{
|
||||
sign = "............................................",
|
||||
sender = sender,
|
||||
approver = approver,
|
||||
commanders = commanders
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -166,7 +166,14 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
ProfileId = r.ProfileId,
|
||||
KeycloakId = r.KeycloakId,
|
||||
ApproveStatus = "PENDING",
|
||||
ApproveType = type.Trim().ToUpper()
|
||||
ApproveType = type.Trim().ToUpper(),
|
||||
|
||||
CreatedFullName = FullName ?? "",
|
||||
CreatedUserId = UserId!,
|
||||
CreatedAt = DateTime.Now,
|
||||
LastUpdateFullName = FullName ?? "",
|
||||
LastUpdateUserId = UserId!,
|
||||
LastUpdatedAt = DateTime.Now,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -2033,7 +2040,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
Prefix = profile.Prefix ?? "",
|
||||
FirstName = profile.FirstName ?? "",
|
||||
LastName = profile.LastName ?? "",
|
||||
PositionName = $"{profile.Position ?? ""}{profile.PositionLeaveName ?? ""}",
|
||||
PositionName = $"{profile.Position ?? ""}",
|
||||
ProfileId = profile.Id,
|
||||
KeycloakId = Guid.Parse(UserId!),
|
||||
ApproveType = "SENDER",
|
||||
|
|
|
|||
|
|
@ -683,6 +683,140 @@ namespace BMA.EHR.Placement.Service.Controllers
|
|||
return Success(placementTransfer.Id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// สร้างคำขอโอน โดย admin
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
/// <response code="200"></response>
|
||||
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
|
||||
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
||||
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
||||
[HttpPost("admin")]
|
||||
public async Task<ActionResult<ResponseObject>> PostAdmin([FromForm] PlacementTransferAdminRequest req)
|
||||
{
|
||||
var placementTransfer = new PlacementTransfer
|
||||
{
|
||||
Organization = req.Organization,
|
||||
Reason = req.Reason,
|
||||
Status = "APPROVE",
|
||||
CreatedFullName = FullName ?? "System Administrator",
|
||||
CreatedUserId = UserId ?? "",
|
||||
CreatedAt = DateTime.Now,
|
||||
LastUpdateFullName = FullName ?? "System Administrator",
|
||||
LastUpdateUserId = UserId ?? "",
|
||||
LastUpdatedAt = DateTime.Now,
|
||||
};
|
||||
var apiUrl = $"{_configuration["API"]}/org/profile/profileid/position/{req.ProfileId}";
|
||||
using (var client = new HttpClient())
|
||||
{
|
||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
|
||||
client.DefaultRequestHeaders.Add("api-key", _configuration["API_KEY"]);
|
||||
var _req = new HttpRequestMessage(HttpMethod.Get, apiUrl);
|
||||
var _res = await client.SendAsync(_req);
|
||||
var _result = await _res.Content.ReadAsStringAsync();
|
||||
|
||||
var org = JsonConvert.DeserializeObject<OrgRequest>(_result);
|
||||
|
||||
if (org == null || org.result == null)
|
||||
return Error("ไม่พบหน่วยงานของผู้ใช้งานคนนี้", 404);
|
||||
|
||||
placementTransfer.profileId = org.result.profileId;
|
||||
placementTransfer.prefix = org.result.prefix;
|
||||
placementTransfer.firstName = org.result.firstName;
|
||||
placementTransfer.lastName = org.result.lastName;
|
||||
placementTransfer.citizenId = org.result.citizenId;
|
||||
placementTransfer.rootOld = org.result.root;
|
||||
placementTransfer.rootOldId = org.result.rootId;
|
||||
placementTransfer.rootDnaOldId = org.result.rootDnaId;
|
||||
placementTransfer.rootShortNameOld = org.result.rootShortName;
|
||||
placementTransfer.child1Old = org.result.child1;
|
||||
placementTransfer.child1OldId = org.result.child1Id;
|
||||
placementTransfer.child1DnaOldId = org.result.child1DnaId;
|
||||
placementTransfer.child1ShortNameOld = org.result.child1ShortName;
|
||||
placementTransfer.child2Old = org.result.child2;
|
||||
placementTransfer.child2OldId = org.result.child2Id;
|
||||
placementTransfer.child2DnaOldId = org.result.child2DnaId;
|
||||
placementTransfer.child2ShortNameOld = org.result.child2ShortName;
|
||||
placementTransfer.child3Old = org.result.child3;
|
||||
placementTransfer.child3OldId = org.result.child3Id;
|
||||
placementTransfer.child3DnaOldId = org.result.child3DnaId;
|
||||
placementTransfer.child3ShortNameOld = org.result.child3ShortName;
|
||||
placementTransfer.child4Old = org.result.child4;
|
||||
placementTransfer.child4OldId = org.result.child4Id;
|
||||
placementTransfer.child4DnaOldId = org.result.child4DnaId;
|
||||
placementTransfer.child4ShortNameOld = org.result.child4ShortName;
|
||||
placementTransfer.posMasterNoOld = org.result.posMasterNo;
|
||||
placementTransfer.posTypeOldId = org.result.posTypeId;
|
||||
placementTransfer.posTypeNameOld = org.result.posTypeName;
|
||||
placementTransfer.posLevelOldId = org.result.posLevelId;
|
||||
placementTransfer.posLevelNameOld = org.result.posLevelName;
|
||||
placementTransfer.AmountOld = org.result.salary;
|
||||
placementTransfer.PositionOld = org.result.position;
|
||||
placementTransfer.PositionExecutiveOld = org.result.posExecutiveName;
|
||||
placementTransfer.positionExecutiveFieldOld = org.result.positionExecutiveField;
|
||||
placementTransfer.positionAreaOld = org.result.positionArea;
|
||||
placementTransfer.PositionLevelOld = org.result.posLevelName;
|
||||
placementTransfer.PositionTypeOld = org.result.posTypeName;
|
||||
placementTransfer.PositionNumberOld = org.result.nodeShortName + " " + org.result.posMasterNo;
|
||||
placementTransfer.OrganizationOld = (org.result.child4 == null ? "" : org.result.child4 + "\n") +
|
||||
(org.result.child3 == null ? "" : org.result.child3 + "\n") +
|
||||
(org.result.child2 == null ? "" : org.result.child2 + "\n") +
|
||||
(org.result.child1 == null ? "" : org.result.child1 + "\n") +
|
||||
(org.result.root == null ? "" : org.result.root);
|
||||
placementTransfer.OrganizationPositionOld = org.result.position + "\n" +
|
||||
(placementTransfer.PositionExecutiveOld == null ? "" : (placementTransfer.positionExecutiveField == null ? placementTransfer.PositionExecutiveOld + "\n" : placementTransfer.PositionExecutiveOld + "(" + placementTransfer.positionExecutiveField + ")" + "\n"))
|
||||
+ placementTransfer.OrganizationOld;
|
||||
}
|
||||
await _context.PlacementTransfers.AddAsync(placementTransfer);
|
||||
await _context.SaveChangesAsync();
|
||||
if (Request.Form.Files != null && Request.Form.Files.Count != 0)
|
||||
{
|
||||
foreach (var file in Request.Form.Files)
|
||||
{
|
||||
var fileExtension = Path.GetExtension(file.FileName);
|
||||
|
||||
var doc = await _documentService.UploadFileAsync(file, file.FileName);
|
||||
var _doc = await _context.Documents.AsQueryable()
|
||||
.FirstOrDefaultAsync(x => x.Id == doc.Id);
|
||||
if (_doc != null)
|
||||
{
|
||||
var placementTransferDoc = new PlacementTransferDoc
|
||||
{
|
||||
PlacementTransfer = placementTransfer,
|
||||
Document = _doc,
|
||||
CreatedFullName = FullName ?? "System Administrator",
|
||||
CreatedUserId = UserId ?? "",
|
||||
CreatedAt = DateTime.Now,
|
||||
LastUpdateFullName = FullName ?? "System Administrator",
|
||||
LastUpdateUserId = UserId ?? "",
|
||||
LastUpdatedAt = DateTime.Now,
|
||||
};
|
||||
await _context.PlacementTransferDocs.AddAsync(placementTransferDoc);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//var baseAPIOrg = _configuration["API"];
|
||||
//var apiUrlOrg = $"{baseAPIOrg}/org/workflow/add-workflow";
|
||||
//using (var client = new HttpClient())
|
||||
//{
|
||||
// client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
|
||||
// client.DefaultRequestHeaders.Add("api-key", _configuration["API_KEY"]);
|
||||
// var _res = await client.PostAsJsonAsync(apiUrlOrg, new
|
||||
// {
|
||||
// refId = placementTransfer.Id,
|
||||
// sysName = "SYS_TRANSFER_REQ",
|
||||
// posLevelName = placementTransfer.posLevelNameOld,
|
||||
// posTypeName = placementTransfer.posTypeNameOld,
|
||||
// fullName = $"{placementTransfer.prefix}{placementTransfer.firstName} {placementTransfer.lastName}"
|
||||
// });
|
||||
//}
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
return Success(placementTransfer.Id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// แก้ไขคำขอโอน
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -10,4 +10,13 @@ namespace BMA.EHR.Placement.Service.Requests
|
|||
public DateTime? Date { get; set; }
|
||||
public List<FormFile>? File { get; set; }
|
||||
}
|
||||
|
||||
public class PlacementTransferAdminRequest
|
||||
{
|
||||
public string ProfileId { get; set; }
|
||||
public string Organization { get; set; }
|
||||
public string Reason { get; set; }
|
||||
public DateTime? Date { get; set; }
|
||||
public List<FormFile>? File { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -239,16 +239,6 @@ namespace BMA.EHR.Retirement.Service.Controllers
|
|||
[HttpGet("{id:length(36)}")]
|
||||
public async Task<ActionResult<ResponseObject>> GetDetailAdmin(Guid id)
|
||||
{
|
||||
var getWorkflow = await _permission.GetPermissionAPIWorkflowAsync(id.ToString(), "SYS_DISMISS");
|
||||
if (getWorkflow == false)
|
||||
{
|
||||
var getPermission = await _permission.GetPermissionAPIAsync("GET", "SYS_DISMISS");
|
||||
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission);
|
||||
if (jsonData["status"]?.ToString() != "200")
|
||||
{
|
||||
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
|
||||
}
|
||||
}
|
||||
var data = await _context.RetirementOuts.AsQueryable()
|
||||
.Where(x => x.Id == id)
|
||||
.Select(p => new
|
||||
|
|
@ -294,6 +284,20 @@ namespace BMA.EHR.Retirement.Service.Controllers
|
|||
p.OrganizationOld,
|
||||
})
|
||||
.FirstOrDefaultAsync();
|
||||
|
||||
string _system = data != null && data.profileType?.Trim().ToUpper() == "OFFICER" ? "SYS_DISMISS" : "SYS_DISMISS_EMP";
|
||||
|
||||
var getWorkflow = await _permission.GetPermissionAPIWorkflowAsync(id.ToString(), _system);
|
||||
if (getWorkflow == false)
|
||||
{
|
||||
var getPermission = await _permission.GetPermissionAPIAsync("GET", "SYS_DISMISS");
|
||||
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission);
|
||||
if (jsonData["status"]?.ToString() != "200")
|
||||
{
|
||||
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
|
||||
}
|
||||
}
|
||||
|
||||
if (data == null)
|
||||
return Error(GlobalMessages.DataNotFound, 404);
|
||||
|
||||
|
|
@ -462,14 +466,18 @@ namespace BMA.EHR.Retirement.Service.Controllers
|
|||
[HttpPut("{id:length(36)}")]
|
||||
public async Task<ActionResult<ResponseObject>> Put([FromBody] RetirementOutEditRequest req, Guid id)
|
||||
{
|
||||
var getPermission = await _permission.GetPermissionAPIAsync("UPDATE", "SYS_DISMISS");
|
||||
var uppdated = await _context.RetirementOuts
|
||||
.FirstOrDefaultAsync(x => x.Id == id);
|
||||
|
||||
string _system = uppdated != null && uppdated.profileType?.Trim().ToUpper() == "OFFICER" ? "SYS_DISMISS" : "SYS_DISMISS_EMP";
|
||||
|
||||
var getPermission = await _permission.GetPermissionAPIAsync("UPDATE", _system);
|
||||
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission);
|
||||
if (jsonData["status"]?.ToString() != "200")
|
||||
{
|
||||
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
|
||||
}
|
||||
var uppdated = await _context.RetirementOuts
|
||||
.FirstOrDefaultAsync(x => x.Id == id);
|
||||
|
||||
if (uppdated == null)
|
||||
return Error(GlobalMessages.RetirementOutNotFound, 404);
|
||||
|
||||
|
|
@ -527,14 +535,18 @@ namespace BMA.EHR.Retirement.Service.Controllers
|
|||
[HttpDelete("{id:length(36)}")]
|
||||
public async Task<ActionResult<ResponseObject>> Delete(Guid id)
|
||||
{
|
||||
var getPermission = await _permission.GetPermissionAPIAsync("DELETE", "SYS_DISMISS");
|
||||
var deleted = await _context.RetirementOuts.AsQueryable()
|
||||
.FirstOrDefaultAsync(x => x.Id == id);
|
||||
|
||||
string _system = deleted != null && deleted.profileType?.Trim().ToUpper() == "OFFICER" ? "SYS_DISMISS" : "SYS_DISMISS_EMP";
|
||||
|
||||
var getPermission = await _permission.GetPermissionAPIAsync("DELETE", _system);
|
||||
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission);
|
||||
if (jsonData["status"]?.ToString() != "200")
|
||||
{
|
||||
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
|
||||
}
|
||||
var deleted = await _context.RetirementOuts.AsQueryable()
|
||||
.FirstOrDefaultAsync(x => x.Id == id);
|
||||
|
||||
if (deleted == null)
|
||||
return NotFound();
|
||||
_context.RetirementOuts.Remove(deleted);
|
||||
|
|
|
|||
|
|
@ -1343,6 +1343,155 @@ namespace BMA.EHR.Retirement.Service.Controllers
|
|||
return Success(retirementResign);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// สร้างการลาออก โดย admin
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
/// <response code="200"></response>
|
||||
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
|
||||
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
||||
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
||||
[HttpPost("admin")]
|
||||
public async Task<ActionResult<ResponseObject>> PostAdmin([FromForm] RetirementResignAdminRequest req)
|
||||
{
|
||||
var Remark = req.Remark;
|
||||
if (req.Reason != null)
|
||||
{
|
||||
switch (req.Reason.Trim().ToUpper())
|
||||
{
|
||||
case "CAREER": Remark = $"ประกอบอาชีพอื่น" + (req.Remark == null || req.Remark == "" ? $"{req.Remark}" : ""); break;
|
||||
case "MOVE": Remark = $"รับราชการสังกัดอื่น" + (req.Remark == null || req.Remark == "" ? $"{req.Remark}" : ""); break;
|
||||
case "FAMILY": Remark = $"ดูแลบิดามารดา" + (req.Remark == null || req.Remark == "" ? $"{req.Remark}" : ""); break;
|
||||
case "EDUCATION": Remark = $"ศึกษาต่อ" + (req.Remark == null || req.Remark == "" ? $"{req.Remark}" : ""); break;
|
||||
case "OTHER": Remark = $"อื่น ๆ" + (req.Remark == null || req.Remark == "" ? $"{req.Remark}" : ""); break;
|
||||
}
|
||||
}
|
||||
|
||||
var retirementResign = new RetirementResign
|
||||
{
|
||||
ApproveStep = "st1",
|
||||
Location = req.Location,
|
||||
SendDate = DateTime.Now,
|
||||
ActiveDate = req.ActiveDate,
|
||||
Reason = req.Reason,
|
||||
ReasonResign = Remark,
|
||||
Remark = req.Remark,
|
||||
Status = "APPROVE",
|
||||
IsActive = true,
|
||||
CreatedFullName = FullName ?? "System Administrator",
|
||||
CreatedUserId = UserId ?? "",
|
||||
CreatedAt = DateTime.Now,
|
||||
LastUpdateFullName = FullName ?? "System Administrator",
|
||||
LastUpdateUserId = UserId ?? "",
|
||||
LastUpdatedAt = DateTime.Now,
|
||||
};
|
||||
|
||||
var apiUrl = $"{_configuration["API"]}/org/profile/profileid/position/{req.ProfileId}";
|
||||
using (var client = new HttpClient())
|
||||
{
|
||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
|
||||
client.DefaultRequestHeaders.Add("api-key", _configuration["API_KEY"]);
|
||||
var _req = new HttpRequestMessage(HttpMethod.Get, apiUrl);
|
||||
var _res = await client.SendAsync(_req);
|
||||
var _result = await _res.Content.ReadAsStringAsync();
|
||||
|
||||
var org = JsonConvert.DeserializeObject<OrgRequest>(_result);
|
||||
|
||||
if (org == null || org.result == null)
|
||||
return Error("ไม่พบหน่วยงานของผู้ใช้งานคนนี้", 404);
|
||||
|
||||
retirementResign.profileId = org.result.profileId;
|
||||
retirementResign.prefix = org.result.prefix;
|
||||
retirementResign.firstName = org.result.firstName;
|
||||
retirementResign.lastName = org.result.lastName;
|
||||
retirementResign.citizenId = org.result.citizenId;
|
||||
retirementResign.rootOld = org.result.root;
|
||||
retirementResign.rootOldId = org.result.rootId;
|
||||
retirementResign.rootDnaOldId = org.result.rootDnaId;
|
||||
retirementResign.rootShortNameOld = org.result.rootShortName;
|
||||
retirementResign.child1Old = org.result.child1;
|
||||
retirementResign.child1OldId = org.result.child1Id;
|
||||
retirementResign.child1DnaOldId = org.result.child1DnaId;
|
||||
retirementResign.child1ShortNameOld = org.result.child1ShortName;
|
||||
retirementResign.child2Old = org.result.child2;
|
||||
retirementResign.child2OldId = org.result.child2Id;
|
||||
retirementResign.child2DnaOldId = org.result.child2DnaId;
|
||||
retirementResign.child2ShortNameOld = org.result.child2ShortName;
|
||||
retirementResign.child3Old = org.result.child3;
|
||||
retirementResign.child3OldId = org.result.child3Id;
|
||||
retirementResign.child3DnaOldId = org.result.child3DnaId;
|
||||
retirementResign.child3ShortNameOld = org.result.child3ShortName;
|
||||
retirementResign.child4Old = org.result.child4;
|
||||
retirementResign.child4OldId = org.result.child4Id;
|
||||
retirementResign.child4DnaOldId = org.result.child4DnaId;
|
||||
retirementResign.child4ShortNameOld = org.result.child4ShortName;
|
||||
retirementResign.posMasterNoOld = org.result.posMasterNo;
|
||||
retirementResign.posTypeOldId = org.result.posTypeId;
|
||||
retirementResign.posTypeNameOld = org.result.posTypeName;
|
||||
retirementResign.posLevelOldId = org.result.posLevelId;
|
||||
retirementResign.posLevelNameOld = org.result.posLevelName;
|
||||
retirementResign.AmountOld = org.result.salary;
|
||||
retirementResign.PositionOld = org.result.position;
|
||||
retirementResign.PositionExecutiveOld = org.result.posExecutiveName;
|
||||
retirementResign.positionExecutiveFieldOld = org.result.positionExecutiveField;
|
||||
retirementResign.positionAreaOld = org.result.positionArea;
|
||||
retirementResign.PositionLevelOld = org.result.posLevelName;
|
||||
retirementResign.PositionTypeOld = org.result.posTypeName;
|
||||
retirementResign.PositionNumberOld = org.result.nodeShortName + " " + org.result.posMasterNo;
|
||||
retirementResign.OrganizationOld = (org.result.child4 == null ? "" : org.result.child4 + "\n") +
|
||||
(org.result.child3 == null ? "" : org.result.child3 + "\n") +
|
||||
(org.result.child2 == null ? "" : org.result.child2 + "\n") +
|
||||
(org.result.child1 == null ? "" : org.result.child1 + "\n") +
|
||||
(org.result.root == null ? "" : org.result.root);
|
||||
retirementResign.OrganizationPositionOld = org.result.position + "\n" +
|
||||
(retirementResign.PositionExecutiveOld == null ? "" : (retirementResign.positionExecutiveField == null ? retirementResign.PositionExecutiveOld + "\n" : retirementResign.PositionExecutiveOld + "(" + retirementResign.positionExecutiveField + ")" + "\n"))
|
||||
+ retirementResign.OrganizationOld;
|
||||
|
||||
if ((retirementResign.posTypeNameOld == "ทั่วไป" && retirementResign.posLevelNameOld == "ชำนาญงาน") || (retirementResign.posTypeNameOld == "ทั่วไป" && retirementResign.posLevelNameOld == "ปฏิบัติงาน") || (retirementResign.posTypeNameOld == "วิชาการ" && retirementResign.posLevelNameOld == "ปฏิบัติการ") || (retirementResign.posTypeNameOld == "วิชาการ" && retirementResign.posLevelNameOld == "ชำนาญการ"))
|
||||
{
|
||||
retirementResign.Group = "1.1";
|
||||
}
|
||||
else if ((retirementResign.posTypeNameOld == "ทั่วไป" && retirementResign.posLevelNameOld == "อาวุโส") || (retirementResign.posTypeNameOld == "วิชาการ" && retirementResign.posLevelNameOld == "ชำนาญการพิเศษ") || (retirementResign.posTypeNameOld == "อำนวยการ" && retirementResign.posLevelNameOld == "ต้น"))
|
||||
{
|
||||
retirementResign.Group = "1.2";
|
||||
}
|
||||
else if ((retirementResign.posTypeNameOld == "ทั่วไป" && retirementResign.posLevelNameOld == "ทักษะพิเศษ") || (retirementResign.posTypeNameOld == "วิชาการ" && retirementResign.posLevelNameOld == "เชี่ยวชาญ") || (retirementResign.posTypeNameOld == "วิชาการ" && retirementResign.posLevelNameOld == "ทรงคุณวุฒิ") || (retirementResign.posTypeNameOld == "อำนวยการ" && retirementResign.posLevelNameOld == "สูง") || (retirementResign.posTypeNameOld == "บริหาร" && retirementResign.posLevelNameOld == "ต้น") || (retirementResign.posTypeNameOld == "บริหาร" && retirementResign.posLevelNameOld == "สูง"))
|
||||
{
|
||||
retirementResign.Group = "2";
|
||||
}
|
||||
}
|
||||
await _context.RetirementResigns.AddAsync(retirementResign);
|
||||
await _context.SaveChangesAsync();
|
||||
if (Request.Form.Files != null && Request.Form.Files.Count != 0)
|
||||
{
|
||||
foreach (var file in Request.Form.Files)
|
||||
{
|
||||
var fileExtension = Path.GetExtension(file.FileName);
|
||||
|
||||
var doc = await _documentService.UploadFileAsync(file, file.FileName);
|
||||
var _doc = await _context.Documents.AsQueryable()
|
||||
.FirstOrDefaultAsync(x => x.Id == doc.Id);
|
||||
if (_doc != null)
|
||||
{
|
||||
var retirementResignDoc = new RetirementResignDoc
|
||||
{
|
||||
RetirementResign = retirementResign,
|
||||
Document = _doc,
|
||||
CreatedFullName = FullName ?? "System Administrator",
|
||||
CreatedUserId = UserId ?? "",
|
||||
CreatedAt = DateTime.Now,
|
||||
LastUpdateFullName = FullName ?? "System Administrator",
|
||||
LastUpdateUserId = UserId ?? "",
|
||||
LastUpdatedAt = DateTime.Now,
|
||||
};
|
||||
await _context.RetirementResignDocs.AddAsync(retirementResignDoc);
|
||||
}
|
||||
}
|
||||
}
|
||||
await _context.SaveChangesAsync();
|
||||
return Success(retirementResign);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// แก้ไขการลาออก
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -1291,6 +1291,148 @@ namespace BMA.EHR.Retirement.Service.Controllers
|
|||
return Success(retirementResignEmployee);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// สร้างการลาออก โดย admin
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
/// <response code="200"></response>
|
||||
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
|
||||
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
||||
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
||||
[HttpPost("admin")]
|
||||
public async Task<ActionResult<ResponseObject>> PostAdmin([FromForm] RetirementResignEmployeeAdminRequest req)
|
||||
{
|
||||
var Remark = req.Remark;
|
||||
if (req.Reason != null)
|
||||
{
|
||||
switch (req.Reason.Trim().ToUpper())
|
||||
{
|
||||
case "CAREER": Remark = $"ประกอบอาชีพอื่น" + (req.Remark == null || req.Remark == "" ? $"{req.Remark}" : ""); break;
|
||||
case "MOVE": Remark = $"รับราชการสังกัดอื่น" + (req.Remark == null || req.Remark == "" ? $"{req.Remark}" : ""); break;
|
||||
case "FAMILY": Remark = $"ดูแลบิดามารดา" + (req.Remark == null || req.Remark == "" ? $"{req.Remark}" : ""); break;
|
||||
case "EDUCATION": Remark = $"ศึกษาต่อ" + (req.Remark == null || req.Remark == "" ? $"{req.Remark}" : ""); break;
|
||||
case "OTHER": Remark = $"อื่น ๆ" + (req.Remark == null || req.Remark == "" ? $"{req.Remark}" : ""); break;
|
||||
}
|
||||
}
|
||||
var retirementResignEmployee = new RetirementResignEmployee
|
||||
{
|
||||
ApproveStep = "st1",
|
||||
Location = req.Location,
|
||||
SendDate = DateTime.Now,
|
||||
ActiveDate = req.ActiveDate,
|
||||
Reason = req.Reason,
|
||||
ReasonResign = Remark,
|
||||
Remark = req.Remark,
|
||||
Status = "APPROVE",
|
||||
IsActive = true,
|
||||
CreatedFullName = FullName ?? "System Administrator",
|
||||
CreatedUserId = UserId ?? "",
|
||||
CreatedAt = DateTime.Now,
|
||||
LastUpdateFullName = FullName ?? "System Administrator",
|
||||
LastUpdateUserId = UserId ?? "",
|
||||
LastUpdatedAt = DateTime.Now,
|
||||
};
|
||||
|
||||
var apiUrl = $"{_configuration["API"]}/org/profile-employee/profileid/position/{req.ProfileId}";
|
||||
using (var client = new HttpClient())
|
||||
{
|
||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
|
||||
client.DefaultRequestHeaders.Add("api-key", _configuration["API_KEY"]);
|
||||
var _req = new HttpRequestMessage(HttpMethod.Get, apiUrl);
|
||||
var _res = await client.SendAsync(_req);
|
||||
var _result = await _res.Content.ReadAsStringAsync();
|
||||
|
||||
var org = JsonConvert.DeserializeObject<OrgRequest>(_result);
|
||||
|
||||
if (org == null || org.result == null)
|
||||
return Error("ไม่พบหน่วยงานของผู้ใช้งานคนนี้", 404);
|
||||
|
||||
retirementResignEmployee.profileId = org.result.profileId;
|
||||
retirementResignEmployee.prefix = org.result.prefix;
|
||||
retirementResignEmployee.firstName = org.result.firstName;
|
||||
retirementResignEmployee.lastName = org.result.lastName;
|
||||
retirementResignEmployee.citizenId = org.result.citizenId;
|
||||
retirementResignEmployee.rootOld = org.result.root;
|
||||
retirementResignEmployee.rootOldId = org.result.rootId;
|
||||
retirementResignEmployee.rootDnaOldId = org.result.rootDnaId;
|
||||
retirementResignEmployee.rootShortNameOld = org.result.rootShortName;
|
||||
retirementResignEmployee.child1Old = org.result.child1;
|
||||
retirementResignEmployee.child1OldId = org.result.child1Id;
|
||||
retirementResignEmployee.child1DnaOldId = org.result.child1DnaId;
|
||||
retirementResignEmployee.child1ShortNameOld = org.result.child1ShortName;
|
||||
retirementResignEmployee.child2Old = org.result.child2;
|
||||
retirementResignEmployee.child2OldId = org.result.child2Id;
|
||||
retirementResignEmployee.child2DnaOldId = org.result.child2DnaId;
|
||||
retirementResignEmployee.child2ShortNameOld = org.result.child2ShortName;
|
||||
retirementResignEmployee.child3Old = org.result.child3;
|
||||
retirementResignEmployee.child3OldId = org.result.child3Id;
|
||||
retirementResignEmployee.child3DnaOldId = org.result.child3DnaId;
|
||||
retirementResignEmployee.child3ShortNameOld = org.result.child3ShortName;
|
||||
retirementResignEmployee.child4Old = org.result.child4;
|
||||
retirementResignEmployee.child4OldId = org.result.child4Id;
|
||||
retirementResignEmployee.child4DnaOldId = org.result.child4DnaId;
|
||||
retirementResignEmployee.child4ShortNameOld = org.result.child4ShortName;
|
||||
retirementResignEmployee.posMasterNoOld = org.result.posMasterNo;
|
||||
retirementResignEmployee.posTypeOldId = org.result.posTypeId;
|
||||
retirementResignEmployee.posTypeNameOld = org.result.posTypeName;
|
||||
retirementResignEmployee.posLevelOldId = org.result.posLevelId;
|
||||
retirementResignEmployee.posLevelNameOld = org.result.posLevelName;
|
||||
retirementResignEmployee.AmountOld = org.result.salary;
|
||||
retirementResignEmployee.PositionOld = org.result.position;
|
||||
retirementResignEmployee.PositionLevelOld = org.result.posLevelName;
|
||||
retirementResignEmployee.PositionTypeOld = org.result.posTypeName;
|
||||
retirementResignEmployee.PositionNumberOld = org.result.nodeShortName + " " + org.result.posMasterNo;
|
||||
retirementResignEmployee.OrganizationOld = (org.result.child4 == null ? "" : org.result.child4 + "\n") +
|
||||
(org.result.child3 == null ? "" : org.result.child3 + "\n") +
|
||||
(org.result.child2 == null ? "" : org.result.child2 + "\n") +
|
||||
(org.result.child1 == null ? "" : org.result.child1 + "\n") +
|
||||
(org.result.root == null ? "" : org.result.root);
|
||||
retirementResignEmployee.OrganizationPositionOld = org.result.position + "\n" + retirementResignEmployee.OrganizationOld;
|
||||
if ((retirementResignEmployee.posTypeNameOld == "ทั่วไป" && retirementResignEmployee.posLevelNameOld == "ชำนาญงาน") || (retirementResignEmployee.posTypeNameOld == "ทั่วไป" && retirementResignEmployee.posLevelNameOld == "ปฏิบัติงาน") || (retirementResignEmployee.posTypeNameOld == "วิชาการ" && retirementResignEmployee.posLevelNameOld == "ปฏิบัติการ") || (retirementResignEmployee.posTypeNameOld == "วิชาการ" && retirementResignEmployee.posLevelNameOld == "ชำนาญการ"))
|
||||
{
|
||||
retirementResignEmployee.Group = "1.1";
|
||||
}
|
||||
else if ((retirementResignEmployee.posTypeNameOld == "ทั่วไป" && retirementResignEmployee.posLevelNameOld == "อาวุโส") || (retirementResignEmployee.posTypeNameOld == "วิชาการ" && retirementResignEmployee.posLevelNameOld == "ชำนาญการพิเศษ") || (retirementResignEmployee.posTypeNameOld == "อำนวยการ" && retirementResignEmployee.posLevelNameOld == "ต้น"))
|
||||
{
|
||||
retirementResignEmployee.Group = "1.2";
|
||||
}
|
||||
else if ((retirementResignEmployee.posTypeNameOld == "ทั่วไป" && retirementResignEmployee.posLevelNameOld == "ทักษะพิเศษ") || (retirementResignEmployee.posTypeNameOld == "วิชาการ" && retirementResignEmployee.posLevelNameOld == "เชี่ยวชาญ") || (retirementResignEmployee.posTypeNameOld == "วิชาการ" && retirementResignEmployee.posLevelNameOld == "ทรงคุณวุฒิ") || (retirementResignEmployee.posTypeNameOld == "อำนวยการ" && retirementResignEmployee.posLevelNameOld == "สูง") || (retirementResignEmployee.posTypeNameOld == "บริหาร" && retirementResignEmployee.posLevelNameOld == "ต้น") || (retirementResignEmployee.posTypeNameOld == "บริหาร" && retirementResignEmployee.posLevelNameOld == "สูง"))
|
||||
{
|
||||
retirementResignEmployee.Group = "2";
|
||||
}
|
||||
}
|
||||
await _context.RetirementResignEmployees.AddAsync(retirementResignEmployee);
|
||||
await _context.SaveChangesAsync();
|
||||
if (Request.Form.Files != null && Request.Form.Files.Count != 0)
|
||||
{
|
||||
foreach (var file in Request.Form.Files)
|
||||
{
|
||||
var fileExtension = Path.GetExtension(file.FileName);
|
||||
|
||||
var doc = await _documentService.UploadFileAsync(file, file.FileName);
|
||||
var _doc = await _context.Documents.AsQueryable()
|
||||
.FirstOrDefaultAsync(x => x.Id == doc.Id);
|
||||
if (_doc != null)
|
||||
{
|
||||
var retirementResignEmployeeDoc = new RetirementResignEmployeeDoc
|
||||
{
|
||||
RetirementResignEmployee = retirementResignEmployee,
|
||||
Document = _doc,
|
||||
CreatedFullName = FullName ?? "System Administrator",
|
||||
CreatedUserId = UserId ?? "",
|
||||
CreatedAt = DateTime.Now,
|
||||
LastUpdateFullName = FullName ?? "System Administrator",
|
||||
LastUpdateUserId = UserId ?? "",
|
||||
LastUpdatedAt = DateTime.Now,
|
||||
};
|
||||
await _context.RetirementResignEmployeeDocs.AddAsync(retirementResignEmployeeDoc);
|
||||
}
|
||||
}
|
||||
}
|
||||
await _context.SaveChangesAsync();
|
||||
return Success(retirementResignEmployee);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// แก้ไขการลาออก
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -19,4 +19,21 @@ namespace BMA.EHR.Retirement.Service.Requests
|
|||
public double? AmountOld { get; set; }
|
||||
public List<FormFile>? File { get; set; }
|
||||
}
|
||||
|
||||
public class RetirementResignEmployeeAdminRequest
|
||||
{
|
||||
public string ProfileId { get; set; }
|
||||
public string? Location { get; set; }
|
||||
public DateTime? ActiveDate { get; set; }
|
||||
public string? Reason { get; set; }
|
||||
public string? Remark { get; set; }
|
||||
public string? ReasonResign { get; set; }
|
||||
public string? OrganizationPositionOld { get; set; }
|
||||
public string? PositionTypeOld { get; set; }
|
||||
public string? PositionLevelOld { get; set; }
|
||||
public string? PositionNumberOld { get; set; }
|
||||
public string? RemarkHorizontal { get; set; }
|
||||
public double? AmountOld { get; set; }
|
||||
public List<FormFile>? File { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,4 +20,21 @@ namespace BMA.EHR.Retirement.Service.Requests
|
|||
public double? AmountOld { get; set; }
|
||||
public List<FormFile>? File { get; set; }
|
||||
}
|
||||
public class RetirementResignAdminRequest
|
||||
{
|
||||
public string ProfileId { get; set; }
|
||||
public string? Location { get; set; }
|
||||
public DateTime? ActiveDate { get; set; }
|
||||
public string? Reason { get; set; }
|
||||
public string? Remark { get; set; }
|
||||
public string? ReasonResign { get; set; }
|
||||
public string? OrganizationPositionOld { get; set; }
|
||||
public string? PositionExecutiveOld { get; set; }
|
||||
public string? PositionTypeOld { get; set; }
|
||||
public string? PositionLevelOld { get; set; }
|
||||
public string? PositionNumberOld { get; set; }
|
||||
public string? RemarkHorizontal { get; set; }
|
||||
public double? AmountOld { get; set; }
|
||||
public List<FormFile>? File { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
54
dotnet_keycloak_test.js
Normal file
54
dotnet_keycloak_test.js
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
// ทดสอบการยิง 30,000 requests ในเวลา 10 นาที โดยให้กระจายการยิงในเวลาที่ต่างๆ กัน
|
||||
|
||||
import { check, sleep } from "k6";
|
||||
import http from "k6/http";
|
||||
import { Rate } from "k6/metrics";
|
||||
|
||||
export let errorRate = new Rate("errors");
|
||||
|
||||
// จำนวน request ที่ต้องการยิง
|
||||
|
||||
// ระยะเวลาทดสอบทั้งหมด
|
||||
|
||||
// จำนวน Virtual Users เฉลี่ยที่ต้องการ 300 users
|
||||
//const averageVus = Math.ceil(totalRequests / totalDuration);
|
||||
const averageVus = 300;
|
||||
|
||||
export let options = {
|
||||
stages: [
|
||||
{ duration: "2m", target: averageVus * 0.5 }, // 20% ของการทดสอบ เพิ่ม VUs เป็น 50% ของค่าเฉลี่ย
|
||||
{ duration: "4m", target: averageVus }, // 40% ของการทดสอบ เพิ่ม VUs เป็น 100% ของค่าเฉลี่ย
|
||||
{ duration: "2m", target: averageVus * 1.5 }, // 20% ของการทดสอบ เพิ่ม VUs เป็น 150% ของค่าเฉลี่ย
|
||||
{ duration: "2m", target: 0 }, // ลด VUs ลงมาเป็น 0
|
||||
],
|
||||
thresholds: {
|
||||
errors: ["rate<0.01"], // อัตรา error ต้องน้อยกว่า 1%
|
||||
http_req_duration: ["p(95)<2000"], // 95% ของ requests ควรใช้เวลาไม่เกิน 2 วินาที
|
||||
},
|
||||
};
|
||||
|
||||
export default function () {
|
||||
// ตัวเลือก headers
|
||||
let headers = {
|
||||
"Content-Type": "application/json",
|
||||
Authorization:
|
||||
"Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJ4WTJWUi1FRnZ2TlBzTXMzOXU4b29WQldRTDZtUHdyTkpPaDNrb0pGVGdVIn0.eyJleHAiOjE3NzYyMTkxNjgsImlhdCI6MTc2ODQ0MzE2OCwianRpIjoiZDQxMmI5MWEtZmZhMi00N2JiLTliZDUtZDE5NTdmMDFjYzQyIiwiaXNzIjoiaHR0cHM6Ly9ocm1zLWlkLmJhbmdrb2suZ28udGgvcmVhbG1zL2hybXMiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYmFmYzU3OTUtYmVmYy00ZDNmLWE0NjEtMzUzM2MzOGE1ZmMxIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiZ2V0dG9rZW4tY2hlY2tpbiIsInNpZCI6IjBkNzdiY2Y5LTE4YWQtNGQyMS1hYjBjLTI4Y2ZiZjUyZGZiNCIsImFjciI6IjEiLCJhbGxvd2VkLW9yaWdpbnMiOlsiaHR0cHM6Ly9ocm1zLmJhbmdrb2suZ28udGgiLCJodHRwczovL2hybXMtY2hlY2tpbi5iYW5na29rLmdvLnRoIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJTVVBFUl9BRE1JTiIsInN0b3JhZ2VfbWFuYWdlbWVudCIsIm9mZmxpbmVfYWNjZXNzIiwiU1RBRkYiLCJkZWZhdWx0LXJvbGVzLWhybXMiLCJ1bWFfYXV0aG9yaXphdGlvbiIsIkFETUlOIiwiVVNFUiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgb3BlbmlkIHByb2ZpbGUiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInJvbGUiOlsiU1VQRVJfQURNSU4iLCJzdG9yYWdlX21hbmFnZW1lbnQiLCJvZmZsaW5lX2FjY2VzcyIsIlNUQUZGIiwiZGVmYXVsdC1yb2xlcy1ocm1zIiwidW1hX2F1dGhvcml6YXRpb24iLCJBRE1JTiIsIlVTRVIiXSwibmFtZSI6IuC4p-C4seC4meC5gOC4ieC4peC4tOC4oSDguInguLHguJXguKPguJfguK3guIciLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiIzMTIwMjAwNDI0OTc1IiwiZ2l2ZW5fbmFtZSI6IuC4p-C4seC4meC5gOC4ieC4peC4tOC4oSIsImZhbWlseV9uYW1lIjoi4LiJ4Lix4LiV4Lij4LiX4Lit4LiHIn0.UhMn0NEkymPxMAcb4noZedHCSqXotCyD2RziBtLYHn5OhA9yk1915Rrt9iV4wVaebr74iZ2eZMpBwp8YVy8-3cPXSv9T3vzbXwFP7IeICPCDDf4bOPFEHP5FYow2s9v48qG81wnu01AG7_EL2-CQKh1sBVrCVUUlATlf-P4lT_lHeHOCKNXTmw4V0IWm96ec6pk-jFY3KH2JdRSWR7wq8g-KVxhLOxk_pF72kMwOpdvcr_99byg28zzj6QfeNYXLt61koHXnZppUqytt86mQQgfamv2FNVywCEzbRITUceu2rmJnwQE8ubeoCh4UOsYauUuSKd7RPqvvXxL_Vg__8Q",
|
||||
//"Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJTT2wwWmFidm9rRzZET3pDZVBtT09Kek5haTdMUldkci1zV3lEYjRELTc0In0.eyJleHAiOjE3Njg4ODAzMjgsImlhdCI6MTc2ODc5MzkyOCwianRpIjoiMDYxODBlMWYtNTQzYy00MjU0LWFmN2QtYWI1NDA5NzFmNWY2IiwiaXNzIjoiaHR0cHM6Ly9ocm1zYmtrLWlkLmNhc2UtY29sbGVjdGlvbi5jb20vcmVhbG1zL2hybXMiLCJhdWQiOlsiYWNjb3VudCIsImdldHRva2VuIl0sInN1YiI6IjQzOWZhMzZkLTZiYzUtNGVmNS05NWFhLWVmMjllNjRkMmU5ZiIsInR5cCI6IkJlYXJlciIsImF6cCI6ImdldHRva2VuIiwic2lkIjoiZGI2YzUxNjItNzZhYS00MmVmLWI0ZDMtYThmOTk2N2NjZWM2IiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIqIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJTVVBFUl9BRE1JTiIsIm9mZmxpbmVfYWNjZXNzIiwiU1RBRkYiLCJkZWZhdWx0LXJvbGVzLWhybXMiLCJ1bWFfYXV0aG9yaXphdGlvbiIsIkFETUlOIiwiVVNFUiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgb3BlbmlkIHByb2ZpbGUiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInJvbGUiOlsiU1VQRVJfQURNSU4iLCJvZmZsaW5lX2FjY2VzcyIsIlNUQUZGIiwiZGVmYXVsdC1yb2xlcy1ocm1zIiwidW1hX2F1dGhvcml6YXRpb24iLCJBRE1JTiIsIlVTRVIiXSwibmFtZSI6IuC4p-C4seC4meC5gOC4ieC4peC4tOC4oSDguInguLHguJXguKPguJfguK3guIciLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiIzMTIwMjAwNDI0OTc1IiwiZ2l2ZW5fbmFtZSI6IuC4p-C4seC4meC5gOC4ieC4peC4tOC4oSIsImZhbWlseV9uYW1lIjoi4LiJ4Lix4LiV4Lij4LiX4Lit4LiHIn0.fHdMzpHMD4JcbzYnUrfM473FSXka2Z4lz_S3HI2c-dPXfO5ATpijqsi12C6-ExE0RJRXUK671erMuyVXL6u2qj-FvdliBL3ubKy4J3jIT3svkcZxZL2ib16dRg375dITefvqd-J4vw6MR4bq8YAGPbqRIy6BQ2pdEiZgNiwUUihHAFwZlVER1lNbaqlbL6vk_L4k-g25DBVnDr756BFvrw7zEDbawkKZ31EZF5_DYk4RWej0wvWrGHQWLw-RyzYVSBB_AooqHkncHn_CwLBGC5juOEfFO4a2ThuKwoxYCstjtBj-zmjpHFs-Hh3CBTWJCGFcKst1Ey28StlKtNkLiw",
|
||||
};
|
||||
|
||||
// ส่ง GET request
|
||||
let response = http.get(
|
||||
//"https://bma-hrms.bangkok.go.th/api/v1/leave/fake-check-in",
|
||||
//"https://hrmsbkk.case-collection.com/api/v1/org/dotnet/keycloak/439fa36d-6bc5-4ef5-95aa-ef29e64d2e9f",
|
||||
"https://hrms.bangkok.go.th/api/v1/org/dotnet/keycloak/bafc5795-befc-4d3f-a461-3533c38a5fc1",
|
||||
{ headers: headers }
|
||||
);
|
||||
|
||||
// ตรวจสอบการตอบสนอง
|
||||
check(response, {
|
||||
"is status 200": (r) => r.status === 200,
|
||||
});
|
||||
|
||||
// หน่วงเวลา 1 วินาที
|
||||
sleep(1);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue