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 Swashbuckle.AspNetCore.Annotations;
|
||||||
using System.Net.Http.Headers;
|
using System.Net.Http.Headers;
|
||||||
using System.Security.Claims;
|
using System.Security.Claims;
|
||||||
|
using System.Security.Policy;
|
||||||
|
|
||||||
namespace BMA.EHR.Leave.Service.Controllers
|
namespace BMA.EHR.Leave.Service.Controllers
|
||||||
{
|
{
|
||||||
|
|
@ -883,7 +884,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
break;
|
break;
|
||||||
case "LV-005":
|
case "LV-005":
|
||||||
// fix issue : ระบบลา (ขรก.) >> ลาพักผ่อน (กรณีรับราชการไม่ถึง 6 เดือน) #838
|
// 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); // หายอดวันลาที่เหลือของปีก่อน
|
//var leavePrevYearRemain = 10 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน
|
||||||
|
|
||||||
if (govAge >= 180)
|
if (govAge >= 180)
|
||||||
|
|
@ -1975,6 +1976,8 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
var rejectList = await _leaveRequestRepository.GetSumRejectLeaveAsync(thisYear);
|
var rejectList = await _leaveRequestRepository.GetSumRejectLeaveAsync(thisYear);
|
||||||
var deleteList = await _leaveRequestRepository.GetSumDeleteLeaveAsync(thisYear);
|
var deleteList = await _leaveRequestRepository.GetSumDeleteLeaveAsync(thisYear);
|
||||||
|
|
||||||
|
var approvePrevYear = await _leaveRequestRepository.GetSumApproveLeaveAsync(thisYear - 1);
|
||||||
|
|
||||||
var result = new List<dynamic>();
|
var result = new List<dynamic>();
|
||||||
foreach (var leaveType in leaveTypes)
|
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 deleteData = deleteList.FirstOrDefault(x => x.KeycloakUserId == userId && x.LeaveTypeId == leaveType.Id);
|
||||||
var delete = deleteData == null ? 0 : deleteData.SumLeaveDay;
|
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
|
var data = new
|
||||||
{
|
{
|
||||||
Id = leaveType.Id,
|
Id = leaveType.Id,
|
||||||
LeaveTypeName = leaveType.Name,
|
LeaveTypeName = leaveType.Name,
|
||||||
LeaveLimit = leaveType.Limit,
|
LeaveLimit = leaveLimit,
|
||||||
LeaveExtend = 0,
|
LeaveExtend = extendLeave,
|
||||||
leavePercent = Math.Round((approve * 100.0) / leaveType.Limit, 2),
|
leavePercent = Math.Round((approve * 100.0) / leaveType.Limit, 2),
|
||||||
LeaveCountSend = send,
|
LeaveCountSend = send,
|
||||||
LeaveCountApprove = approve,
|
LeaveCountApprove = approve,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue