fix issue : ระบบลา (ขรก.) >> ลาพักผ่อน (กรณีรับราชการไม่ถึง 6 เดือน) #838

This commit is contained in:
Suphonchai Phoonsawat 2024-12-10 13:25:54 +07:00
parent 965f9cff8a
commit db7b45013b

View file

@ -764,6 +764,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken);
var govAge = (profile?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date); var govAge = (profile?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
var thisYear = DateTime.Now.Year;
if (profile == null) if (profile == null)
{ {
@ -828,7 +829,17 @@ namespace BMA.EHR.Leave.Service.Controllers
isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= 15; isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= 15;
break; break;
case "LV-005": case "LV-005":
isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= 10; // fix issue : ระบบลา (ขรก.) >> ลาพักผ่อน (กรณีรับราชการไม่ถึง 6 เดือน) #838
var leavePrevYear = (await _leaveRequestRepository.GetSumApproveLeaveAsync(thisYear)).Where(x => x.LeaveTypeCode == "LV-005").FirstOrDefault();
var leavePrevYearRemain = 10 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน
if (govAge >= 180)
if (govAge >= 3650) // ถ้าอายุราชการเกิน 10 ปี ได้บวกเพิ่มอีก 10 วัน
isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= (20 + leavePrevYearRemain);
else
isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= (10 + leavePrevYearRemain);
else
isLeave = false;
break; break;
case "LV-006": case "LV-006":
isLeave = totalDay <= 120; isLeave = totalDay <= 120;