From 0451b9e3e18e755954b9a9060c2ac7c2a6f7681b Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Thu, 8 May 2025 14:57:38 +0700 Subject: [PATCH] =?UTF-8?q?fixc=20=E0=B8=A5=E0=B8=B2=E0=B8=9E=E0=B8=B1?= =?UTF-8?q?=E0=B8=81=E0=B8=9C=E0=B9=88=E0=B8=B2=E0=B8=99=20adminById?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/LeaveRequestController.cs | 88 +++++++++++++------ 1 file changed, 63 insertions(+), 25 deletions(-) diff --git a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs index 10a09688..d5382069 100644 --- a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs @@ -17,6 +17,7 @@ using Microsoft.EntityFrameworkCore; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Org.BouncyCastle.Asn1.Pkcs; +using Sentry; using Swashbuckle.AspNetCore.Annotations; using System.Net.Http.Headers; using System.Security.Claims; @@ -2204,40 +2205,77 @@ namespace BMA.EHR.Leave.Service.Controllers if (rawData.Root != null && rawData.Root != "") orgName += $" {rawData.Root}"; - // #1136 - var extendLeave = 0.0; - var leaveLimit = rawData.Type.Limit; + var leaveData = await _leaveBeginningRepository.GetByYearAndTypeIdForUserAsync(thisYear, rawData.Type.Id, rawData.KeycloakUserId); - var approvePrevYear = await _leaveRequestRepository.GetSumApproveLeaveAsync(thisYear - 1); + var extendLeave = 0.0; + var leaveLimit = (double)rawData.Type.Limit; if (rawData.Type.Code == "LV-005") { - var beginningLeave = await _leaveBeginningRepository.GetByYearAndTypeIdAsync(thisYear, rawData.Type.Id); + //var leaveData = await _leaveBeginningRepository.GetByYearAndTypeIdForUserAsync(thisYear, leaveType.Id, userId); + leaveLimit = leaveData == null ? 0.0 : leaveData.LeaveDays; + extendLeave = leaveLimit - 10; - var apprvPrevData = approvePrevYear.FirstOrDefault(x => x.KeycloakUserId == rawData.KeycloakUserId && x.LeaveTypeId == rawData.Type.Id); - var apprvPrev = apprvPrevData == null ? 0 : apprvPrevData.SumLeaveDay; + //var beginningLeave = await _leaveBeginningRepository.GetByYearAndTypeIdAsync(thisYear, leaveType.Id); - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId, AccessToken); - var govAge = (profile?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date); + //var apprvPrevData = approvePrevYear.FirstOrDefault(x => x.KeycloakUserId == userId && x.LeaveTypeId == leaveType.Id); + //var apprvPrev = apprvPrevData == null ? 0 : apprvPrevData.SumLeaveDay; - if (govAge >= 180) - { - if (govAge >= 3650) - { - // ถ้าอายุราชการเกิน 10 ปี ได้บวกเพิ่มอีก 10 วัน - extendLeave = beginningLeave != null ? beginningLeave.LeaveDays : 30 - apprvPrev; // หายอดวันลาที่เหลือของปีก่อน - if (extendLeave >= 20) extendLeave = 20; - } - else - { - extendLeave = beginningLeave != null ? beginningLeave.LeaveDays : 20 - apprvPrev; // หายอดวันลาที่เหลือของปีก่อน - if (extendLeave >= 10) extendLeave = 10; - } - } - else - leaveLimit = 0; + //var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); + //var govAge = (profile?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date); + + //if (govAge >= 180) + //{ + // if (govAge >= 3650) + // { + // // ถ้าอายุราชการเกิน 10 ปี ได้บวกเพิ่มอีก 10 วัน + // extendLeave = beginningLeave != null ? beginningLeave.LeaveDays : 30 - apprvPrev; // หายอดวันลาที่เหลือของปีก่อน + // if (extendLeave >= 20) extendLeave = 20; + // } + // else + // { + // extendLeave = beginningLeave != null ? beginningLeave.LeaveDays : 20 - apprvPrev; // หายอดวันลาที่เหลือของปีก่อน + // if (extendLeave >= 10) extendLeave = 10; + // } + //} + //else + // leaveLimit = 0; } + // #1136 + //var extendLeave = 0.0; + //var leaveLimit = rawData.Type.Limit; + + //var approvePrevYear = await _leaveRequestRepository.GetSumApproveLeaveAsync(thisYear - 1); + + //if (rawData.Type.Code == "LV-005") + //{ + // var beginningLeave = await _leaveBeginningRepository.GetByYearAndTypeIdAsync(thisYear, rawData.Type.Id); + + // var apprvPrevData = approvePrevYear.FirstOrDefault(x => x.KeycloakUserId == rawData.KeycloakUserId && x.LeaveTypeId == rawData.Type.Id); + // var apprvPrev = apprvPrevData == null ? 0 : apprvPrevData.SumLeaveDay; + + // var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId, AccessToken); + // var govAge = (profile?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date); + + // if (govAge >= 180) + // { + // if (govAge >= 3650) + // { + // // ถ้าอายุราชการเกิน 10 ปี ได้บวกเพิ่มอีก 10 วัน + // extendLeave = beginningLeave != null ? beginningLeave.LeaveDays : 30 - apprvPrev; // หายอดวันลาที่เหลือของปีก่อน + // if (extendLeave >= 20) extendLeave = 20; + // } + // else + // { + // extendLeave = beginningLeave != null ? beginningLeave.LeaveDays : 20 - apprvPrev; // หายอดวันลาที่เหลือของปีก่อน + // if (extendLeave >= 10) extendLeave = 10; + // } + // } + // else + // leaveLimit = 0; + //} + var result = new GetLeaveRequestForAdminByIdDto { Id = rawData.Id,