fixc ลาพักผ่าน adminById
Some checks failed
release-dev / release-dev (push) Failing after 11s

This commit is contained in:
Suphonchai Phoonsawat 2025-05-08 14:57:38 +07:00
parent c1597c4a5c
commit 0451b9e3e1

View file

@ -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,