diff --git a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs index 8cdbd0c2..ffbb104b 100644 --- a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs @@ -713,6 +713,12 @@ namespace BMA.EHR.Leave.Service.Controllers } var leaveLimit = 0.0; + var remainPrev = 0.0; + + + + + if (leaveType.Code.Trim().ToUpper() == "LV-005") { if (govAge >= 180) @@ -721,10 +727,14 @@ namespace BMA.EHR.Leave.Service.Controllers if (govAge >= 3650) { leaveLimit = 30 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); + remainPrev = 30 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน + if (remainPrev >= 20) remainPrev = 20; } else { leaveLimit = 20 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); + remainPrev = 20 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน + if (remainPrev >= 10) remainPrev = 10; } } else @@ -737,7 +747,13 @@ namespace BMA.EHR.Leave.Service.Controllers var sumLeave = await _leaveRequestRepository.GetSumLeaveByTypeForUserAsync(userId, req.Type, thisYear); - var restOldDay = await _leaveRequestRepository.GetRestDayTotalByYearForUserAsync(userId, thisYear - 1); + var restOldDay = 0.00; + if (leaveType.Code.Trim().ToUpper() == "LV-005") + { + restOldDay = remainPrev; + } + else + restOldDay = await _leaveRequestRepository.GetRestDayTotalByYearForUserAsync(userId, thisYear - 1); var lastSalary = profile.ProfileSalary; @@ -2027,7 +2043,7 @@ namespace BMA.EHR.Leave.Service.Controllers else leaveLimit = 0; } - + var data = new { Id = leaveType.Id,