From db7b45013b6db77f2a058dc0ad7c4988bc718871 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Tue, 10 Dec 2024 13:25:54 +0700 Subject: [PATCH] =?UTF-8?q?fix=20issue=20:=20=E0=B8=A3=E0=B8=B0=E0=B8=9A?= =?UTF-8?q?=E0=B8=9A=E0=B8=A5=E0=B8=B2=20(=E0=B8=82=E0=B8=A3=E0=B8=81.)=20?= =?UTF-8?q?>>=20=E0=B8=A5=E0=B8=B2=E0=B8=9E=E0=B8=B1=E0=B8=81=E0=B8=9C?= =?UTF-8?q?=E0=B9=88=E0=B8=AD=E0=B8=99=20(=E0=B8=81=E0=B8=A3=E0=B8=93?= =?UTF-8?q?=E0=B8=B5=E0=B8=A3=E0=B8=B1=E0=B8=9A=E0=B8=A3=E0=B8=B2=E0=B8=8A?= =?UTF-8?q?=E0=B8=81=E0=B8=B2=E0=B8=A3=E0=B9=84=E0=B8=A1=E0=B9=88=E0=B8=96?= =?UTF-8?q?=E0=B8=B6=E0=B8=87=206=20=E0=B9=80=E0=B8=94=E0=B8=B7=E0=B8=AD?= =?UTF-8?q?=E0=B8=99)=20#838?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BMA.EHR.Leave/Controllers/LeaveRequestController.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs index 40212297..64c46744 100644 --- a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs @@ -764,6 +764,7 @@ namespace BMA.EHR.Leave.Service.Controllers var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); var govAge = (profile?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date); + var thisYear = DateTime.Now.Year; if (profile == null) { @@ -828,7 +829,17 @@ namespace BMA.EHR.Leave.Service.Controllers isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= 15; break; 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; case "LV-006": isLeave = totalDay <= 120;