แก้ไข /leave/user/check
เพิ่ม range and rangeEnd เพื่อตรวจสอบการลา เพื่อให้สามารถลาครึ่งวัน รวมกับลาเต็มวันได้
This commit is contained in:
parent
cd54079a47
commit
3659d03d94
6 changed files with 1590 additions and 3 deletions
|
|
@ -868,6 +868,13 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
||||
public async Task<ActionResult<ResponseObject>> CheckUserLeaveAsync([FromBody] GetLeaveCheckDto req)
|
||||
{
|
||||
var totalDay = (double)req.StartLeaveDate.DiffDay(req.EndLeaveDate.Date);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId);
|
||||
|
||||
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken);
|
||||
|
|
@ -893,7 +900,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
var sumLeave =
|
||||
await _leaveRequestRepository.GetSumLeaveByTypeForUserAsync(userId, req.Type, req.StartLeaveDate.Year);
|
||||
var sumWorkDay = await _holidayRepository.GetHolidayCountAsync(req.StartLeaveDate.Date, req.EndLeaveDate.Date, category);
|
||||
var totalDay = req.StartLeaveDate.DiffDay(req.EndLeaveDate.Date);
|
||||
|
||||
var sumWeekend = _holidayRepository.GetWeekEndCount(req.StartLeaveDate.Date, req.EndLeaveDate.Date, category);
|
||||
|
||||
var sumApproveLeave = await _leaveRequestRepository.GetSumApproveLeaveByTypeForUserAsync(userId, req.Type, req.StartLeaveDate.Year);
|
||||
|
|
@ -921,6 +928,10 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
|
||||
var isLeave = false;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
switch (leaveType.Code.ToUpper().Trim())
|
||||
{
|
||||
case "LV-001":
|
||||
|
|
@ -1086,6 +1097,35 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
break;
|
||||
}
|
||||
|
||||
if (totalDay > 1)
|
||||
{
|
||||
if (req.LeaveRange == "MORNING" || req.LeaveRangeEnd == "AFTERNOON")
|
||||
{
|
||||
isLeave = false;
|
||||
message = "ช่วงวันลาที่ระบุไม่ถูกต้อง";
|
||||
}
|
||||
|
||||
if (req.LeaveRange != "ALL")
|
||||
totalDay -= 0.5;
|
||||
|
||||
if (req.LeaveRangeEnd != "ALL")
|
||||
totalDay -= 0.5;
|
||||
|
||||
}
|
||||
else if (totalDay == 1)
|
||||
{
|
||||
|
||||
if (req.LeaveRange != req.LeaveRangeEnd)
|
||||
{
|
||||
isLeave = false;
|
||||
message = "ช่วงวันลาที่ระบุไม่ถูกต้อง";
|
||||
}
|
||||
if (req.LeaveRange != "ALL")
|
||||
totalDay -= 0.5;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//var isLeave = sumLeave + (totalDay - sumWorkDay - sumWeekend) <= leaveType.Limit;
|
||||
|
||||
var result = new GetLeaveCheckResultDto
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue