fix issue : SIT ระบบบันทึกการลา>> สิทธิ์การลา(โอนสิทธิ์การลา) #974
This commit is contained in:
parent
177cefcccc
commit
e6a73f1d19
1 changed files with 37 additions and 3 deletions
|
|
@ -18,6 +18,7 @@ using Newtonsoft.Json.Linq;
|
|||
using Swashbuckle.AspNetCore.Annotations;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Security.Claims;
|
||||
using System.Security.Policy;
|
||||
|
||||
namespace BMA.EHR.Leave.Service.Controllers
|
||||
{
|
||||
|
|
@ -883,7 +884,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(thisYear - 1)).Where(x => x.LeaveTypeCode == "LV-005" && x.KeycloakUserId == userId).FirstOrDefault();
|
||||
//var leavePrevYearRemain = 10 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน
|
||||
|
||||
if (govAge >= 180)
|
||||
|
|
@ -1975,6 +1976,8 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
var rejectList = await _leaveRequestRepository.GetSumRejectLeaveAsync(thisYear);
|
||||
var deleteList = await _leaveRequestRepository.GetSumDeleteLeaveAsync(thisYear);
|
||||
|
||||
var approvePrevYear = await _leaveRequestRepository.GetSumApproveLeaveAsync(thisYear - 1);
|
||||
|
||||
var result = new List<dynamic>();
|
||||
foreach (var leaveType in leaveTypes)
|
||||
{
|
||||
|
|
@ -1990,12 +1993,43 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
var deleteData = deleteList.FirstOrDefault(x => x.KeycloakUserId == userId && x.LeaveTypeId == leaveType.Id);
|
||||
var delete = deleteData == null ? 0 : deleteData.SumLeaveDay;
|
||||
|
||||
// fix issue : SIT ระบบบันทึกการลา>> สิทธิ์การลา(โอนสิทธิ์การลา) #974
|
||||
|
||||
var extendLeave = 0.0;
|
||||
var leaveLimit = leaveType.Limit;
|
||||
|
||||
if (leaveType.Code == "LV-005")
|
||||
{
|
||||
var apprvPrevData = approvePrevYear.FirstOrDefault(x => x.KeycloakUserId == userId && x.LeaveTypeId == leaveType.Id);
|
||||
var apprvPrev = apprvPrevData == null ? 0 : approveData.SumLeaveDay;
|
||||
|
||||
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 = 30 - apprvPrev; // หายอดวันลาที่เหลือของปีก่อน
|
||||
if (extendLeave >= 20) extendLeave = 20;
|
||||
}
|
||||
else
|
||||
{
|
||||
extendLeave = 20 - apprvPrev; // หายอดวันลาที่เหลือของปีก่อน
|
||||
if (extendLeave >= 10) extendLeave = 10;
|
||||
}
|
||||
}
|
||||
else
|
||||
leaveLimit = 0;
|
||||
}
|
||||
|
||||
var data = new
|
||||
{
|
||||
Id = leaveType.Id,
|
||||
LeaveTypeName = leaveType.Name,
|
||||
LeaveLimit = leaveType.Limit,
|
||||
LeaveExtend = 0,
|
||||
LeaveLimit = leaveLimit,
|
||||
LeaveExtend = extendLeave,
|
||||
leavePercent = Math.Round((approve * 100.0) / leaveType.Limit, 2),
|
||||
LeaveCountSend = send,
|
||||
LeaveCountApprove = approve,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue