From 77c9a90a08edf191ebc799f4a1e4d72710d70072 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Mon, 15 Jan 2024 14:07:59 +0700 Subject: [PATCH] =?UTF-8?q?fix=20=E0=B8=84=E0=B8=B3=E0=B8=99=E0=B8=A7?= =?UTF-8?q?=E0=B8=99=E0=B8=A7=E0=B8=B1=E0=B8=99=E0=B8=A5=E0=B8=B2=20?= =?UTF-8?q?=E0=B8=A7=E0=B9=88=E0=B8=B2=E0=B8=A5=E0=B8=B2=E0=B9=84=E0=B8=94?= =?UTF-8?q?=E0=B9=89=E0=B8=AB=E0=B8=A3=E0=B8=B7=E0=B8=AD=E0=B9=84=E0=B8=A1?= =?UTF-8?q?=E0=B9=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/LeaveRequestController.cs | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs index 1ecc5519..5090661b 100644 --- a/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs @@ -661,6 +661,8 @@ namespace BMA.EHR.Leave.Service.Controllers var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId); + var govAge = profile!.DateStart!.Value.Date.DiffDay(DateTime.Now.Date); + if (profile == null) { return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -681,7 +683,40 @@ namespace BMA.EHR.Leave.Service.Controllers var totalDay = req.StartLeaveDate.DiffDay(req.EndLeaveDate); var sumWeekend = _holidayRepository.GetWeekEndCount(req.StartLeaveDate, req.EndLeaveDate, category); - var isLeave = sumLeave + (totalDay - sumWorkDay - sumWeekend) <= leaveType.Limit; + var isLeave = false; + + switch (leaveType.Code.ToUpper().Trim()) + { + case "LV-001": + case "LV-002": + case "LV-007": + isLeave = true; + break; + case "LV-003": + isLeave = totalDay <= 90; + break; + case "LV-004": + isLeave = (totalDay - sumWorkDay - sumWeekend) <= 15; + break; + case "LV-005": + isLeave = (totalDay - sumWorkDay - sumWeekend) <= 10; + break; + case "LV-006": + isLeave = totalDay <= 120; + break; + case "LV-008": + case "LV-009": + isLeave = govAge >= 365; + break; + case "LV-010": + isLeave = totalDay <= 730; + break; + case "LV-011": + isLeave = totalDay <= 360; + break; + } + + //var isLeave = sumLeave + (totalDay - sumWorkDay - sumWeekend) <= leaveType.Limit; var result = new GetLeaveCheckResultDto {