From 1e275748a0251b100387826cdf22cdfba9fd127b Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Thu, 2 Oct 2025 19:50:55 +0700 Subject: [PATCH] fix #26, #1832 --- BMA.EHR.Leave/Controllers/LeaveController.cs | 6 +++-- .../Controllers/LeaveRequestController.cs | 25 ++++++++++++------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/BMA.EHR.Leave/Controllers/LeaveController.cs b/BMA.EHR.Leave/Controllers/LeaveController.cs index 7e6a1105..43972a06 100644 --- a/BMA.EHR.Leave/Controllers/LeaveController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveController.cs @@ -1232,7 +1232,9 @@ namespace BMA.EHR.Leave.Service.Controllers if (keyword != "") { - data = data.Where(x => (x.CheckInLocation.Contains(keyword) || x.CheckOutLocation.Contains(keyword))).ToList(); + data = data.Where(x => (x.CheckInLocationName!.Contains(keyword) || x.CheckInLocation!.Contains(keyword) || + x.CheckOutLocationName!.Contains(keyword) || x.CheckOutLocation!.Contains(keyword))) + .ToList(); } var pageData = data @@ -2731,7 +2733,7 @@ namespace BMA.EHR.Leave.Service.Controllers if (keyword != "") { - result = result.Where(x => x.EditReason!.Contains(keyword)).ToList(); + result = result.Where(x => x.EditReason!.Contains(keyword) || x.CheckInLocation!.Contains(keyword) || x.CheckOutLocation!.Contains(keyword)).ToList(); } var pageResult = result.Skip((page - 1) * pageSize).Take(pageSize) diff --git a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs index c3c1ef99..8113ba9f 100644 --- a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs @@ -824,7 +824,14 @@ namespace BMA.EHR.Leave.Service.Controllers public async Task> GetUserLeaveProfileAsync([FromBody] GetUserLeaveProfileDto req) { var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); + var thisYear = DateTime.Now.Year; + var toDay = DateTime.Now.Date; + var startFiscalDate = new DateTime(DateTime.Now.Year, 10, 1); + var endFiscalDate = new DateTime(DateTime.Now.Year + 1, 9, 30); + + if (toDay >= startFiscalDate && toDay <= endFiscalDate) + thisYear = thisYear + 1; var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); if (profile == null) @@ -1069,7 +1076,7 @@ namespace BMA.EHR.Leave.Service.Controllers break; case "LV-005": // fix issue : ระบบลา (ขรก.) >> ลาพักผ่อน (กรณีรับราชการไม่ถึง 6 เดือน) #838 - var leavePrevYear = (await _leaveRequestRepository.GetSumApproveLeaveAsync(thisYear - 1)).Where(x => x.LeaveTypeCode == "LV-005" && x.KeycloakUserId == userId).FirstOrDefault(); + //var leavePrevYear = (await _leaveRequestRepository.GetSumApproveLeaveAsync(fiscalYear - 1)).Where(x => x.LeaveTypeCode == "LV-005" && x.KeycloakUserId == userId).FirstOrDefault(); //var leavePrevYearRemain = 10 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน if (govAge >= 180) @@ -1077,23 +1084,23 @@ namespace BMA.EHR.Leave.Service.Controllers isLeave = (totalDay - (sumWorkDay + sumWeekend) + approveDay) <= (limitDay); if (!isLeave) message = "จำนวนวันลาเกินที่กำหนด"; } - //if (govAge >= 3650) - //{ + // else if (govAge >= 3650) + // { // // ถ้าอายุราชการเกิน 10 ปี ได้บวกเพิ่มอีก 10 วัน - // //var leavePrevYearRemain = 30 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน - // //if (leavePrevYearRemain >= 20) leavePrevYearRemain = 20; + // var leavePrevYearRemain = 30 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน + // if (leavePrevYearRemain >= 20) leavePrevYearRemain = 20; // isLeave = (totalDay - (sumWorkDay + sumWeekend) + approveDay) <= (limitDay); // if (!isLeave) message = "จำนวนวันลาเกินที่กำหนด"; - //} - //else - //{ + // } + // else if + // { // //var leavePrevYearRemain = 20 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน // //if (leavePrevYearRemain >= 10) leavePrevYearRemain = 10; // isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= (10 + leavePrevYearRemain); // if (!isLeave) message = "จำนวนวันลาเกินที่กำหนด"; - //} + // } else {