fix issue : SIT ระบบบันทึกเวลาปฏิบัติงาน>>ลงเวลากรณีพิเศษ (ไม่มีแจ้งเตือนไปยังผู้บังคับบัญชา) #969
This commit is contained in:
parent
752b1a5479
commit
6afb95fe1b
3 changed files with 116 additions and 37 deletions
|
|
@ -703,12 +703,55 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
||||
}
|
||||
|
||||
var govAge = (profile?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
|
||||
|
||||
var leaveType = await _leaveTypeRepository.GetByIdAsync(req.Type);
|
||||
if (leaveType == null)
|
||||
{
|
||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
||||
}
|
||||
|
||||
var leaveLimit = 0;
|
||||
if (leaveType.Code.Trim().ToUpper() == "LV-005")
|
||||
{
|
||||
if (govAge >= 180)
|
||||
{
|
||||
if (govAge >= 3650) leaveLimit = 30;
|
||||
else leaveLimit = 20;
|
||||
}
|
||||
else
|
||||
{
|
||||
leaveLimit = 0;
|
||||
}
|
||||
//var leavePrevYear = (await _leaveRequestRepository.GetSumApproveLeaveAsync(thisYear)).Where(x => x.LeaveTypeCode == "LV-005" && x.KeycloakUserId == userId).FirstOrDefault();
|
||||
//var leavePrevYearRemain = 0;
|
||||
|
||||
|
||||
////var leavePrevYearRemain = 10 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน
|
||||
|
||||
//if (govAge >= 180)
|
||||
// if (govAge >= 3650)
|
||||
// {
|
||||
// // ถ้าอายุราชการเกิน 10 ปี ได้บวกเพิ่มอีก 10 วัน
|
||||
// isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= (20 + leavePrevYearRemain);
|
||||
// if (!isLeave) message = "จำนวนวันลาเกินที่กำหนด";
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= (10 + leavePrevYearRemain);
|
||||
// if (!isLeave) message = "จำนวนวันลาเกินที่กำหนด";
|
||||
// }
|
||||
|
||||
//else
|
||||
//{
|
||||
// leavePrevYearRemain
|
||||
//}
|
||||
|
||||
}
|
||||
else
|
||||
leaveLimit = leaveType.Limit;
|
||||
|
||||
|
||||
var sumLeave = await _leaveRequestRepository.GetSumLeaveByTypeForUserAsync(userId, req.Type, thisYear);
|
||||
var restOldDay = await _leaveRequestRepository.GetRestDayTotalByYearForUserAsync(userId, thisYear - 1);
|
||||
|
||||
|
|
@ -738,9 +781,9 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
PositionLevelName = profile.PosLevel == null ? "" : profile.PosLevel,
|
||||
OrganizationName = profile.Root ?? "", //profile.Oc ?? "",
|
||||
|
||||
LeaveLimit = leaveType.Limit,
|
||||
LeaveLimit = leaveLimit,
|
||||
LeaveTotal = sumLeave,
|
||||
LeaveRemain = leaveType.Limit - sumLeave,
|
||||
LeaveRemain = leaveLimit - sumLeave,
|
||||
RestDayTotalOld = restOldDay,
|
||||
BirthDate = profile.BirthDate.Date,
|
||||
DateAppoint = profile.DateAppoint == null ? null : profile.DateAppoint.Value.Date,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue