From 2852615d6224a389f705a16c2e0736b62a2b8652 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Fri, 24 Jan 2025 10:27:22 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=9B=E0=B8=A3=E0=B8=B1=E0=B8=9A=E0=B8=81?= =?UTF-8?q?=E0=B8=B2=E0=B8=A3=E0=B8=84=E0=B8=B3=E0=B8=99=E0=B8=A7=E0=B8=99?= =?UTF-8?q?=E0=B8=A2=E0=B8=AD=E0=B8=94=E0=B8=A7=E0=B8=B1=E0=B8=99=E0=B8=A5?= =?UTF-8?q?=E0=B8=B2=E0=B8=AA=E0=B8=B0=E0=B8=AA=E0=B8=A1=20=E0=B8=82?= =?UTF-8?q?=E0=B8=AD=E0=B8=87=E0=B8=9B=E0=B8=B5=E0=B8=81=E0=B9=88=E0=B8=AD?= =?UTF-8?q?=E0=B8=99=E0=B8=AB=E0=B8=99=E0=B9=89=E0=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/LeaveRequestController.cs | 49 +++++++------------ 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs index 9f4f7a61..50223629 100644 --- a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs @@ -711,42 +711,25 @@ namespace BMA.EHR.Leave.Service.Controllers return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); } - var leaveLimit = 0; + var leaveLimit = 0.0; if (leaveType.Code.Trim().ToUpper() == "LV-005") { if (govAge >= 180) { - if (govAge >= 3650) leaveLimit = 30; - else leaveLimit = 20; + var leavePrevYear = (await _leaveRequestRepository.GetSumApproveLeaveAsync(thisYear)).Where(x => x.LeaveTypeCode == "LV-005" && x.KeycloakUserId == userId).FirstOrDefault(); + if (govAge >= 3650) + { + leaveLimit = 30 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); + } + else + { + leaveLimit = 20 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); + } } else { leaveLimit = 0; } - //var leavePrevYear = (await _leaveRequestRepository.GetSumApproveLeaveAsync(thisYear)).Where(x => x.LeaveTypeCode == "LV-005" && x.KeycloakUserId == userId).FirstOrDefault(); - //var leavePrevYearRemain = 0; - - - ////var leavePrevYearRemain = 10 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน - - //if (govAge >= 180) - // if (govAge >= 3650) - // { - // // ถ้าอายุราชการเกิน 10 ปี ได้บวกเพิ่มอีก 10 วัน - // isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= (20 + leavePrevYearRemain); - // if (!isLeave) message = "จำนวนวันลาเกินที่กำหนด"; - // } - // else - // { - // isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= (10 + leavePrevYearRemain); - // if (!isLeave) message = "จำนวนวันลาเกินที่กำหนด"; - // } - - //else - //{ - // leavePrevYearRemain - //} - } else leaveLimit = leaveType.Limit; @@ -901,17 +884,23 @@ namespace BMA.EHR.Leave.Service.Controllers case "LV-005": // fix issue : ระบบลา (ขรก.) >> ลาพักผ่อน (กรณีรับราชการไม่ถึง 6 เดือน) #838 var leavePrevYear = (await _leaveRequestRepository.GetSumApproveLeaveAsync(thisYear)).Where(x => x.LeaveTypeCode == "LV-005" && x.KeycloakUserId == userId).FirstOrDefault(); - var leavePrevYearRemain = 10 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน + //var leavePrevYearRemain = 10 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน if (govAge >= 180) if (govAge >= 3650) { // ถ้าอายุราชการเกิน 10 ปี ได้บวกเพิ่มอีก 10 วัน - isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= (20 + leavePrevYearRemain); + var leavePrevYearRemain = 30 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน + if (leavePrevYearRemain >= 20) leavePrevYearRemain = 20; + + isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= (10 + leavePrevYearRemain); if (!isLeave) message = "จำนวนวันลาเกินที่กำหนด"; } else { + var leavePrevYearRemain = 20 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน + if (leavePrevYearRemain >= 10) leavePrevYearRemain = 10; + isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= (10 + leavePrevYearRemain); if (!isLeave) message = "จำนวนวันลาเกินที่กำหนด"; } @@ -1926,7 +1915,7 @@ namespace BMA.EHR.Leave.Service.Controllers // OrganizationName = profile.Oc ?? "", // เปลี่ยนมาอ่านจากฐานข้อมูลแทน read_db - + Dear = rawData.Dear ?? "", PositionName = rawData.PositionName ?? "", PositionLevelName = rawData.PositionLevelName ?? "",