Update leave calculations to use DateAppoint and adjust leave limits based on government age #2266
All checks were successful
Build & Deploy Leave Service / build (push) Successful in 1m35s
All checks were successful
Build & Deploy Leave Service / build (push) Successful in 1m35s
This commit is contained in:
parent
659e06a08d
commit
c25bef0672
3 changed files with 21 additions and 8 deletions
|
|
@ -108,7 +108,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
throw new Exception(GlobalMessages.DataNotFound);
|
||||
}
|
||||
|
||||
var govAge = (pf?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
|
||||
var govAge = (pf?.DateAppoint?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
|
||||
|
||||
var leaveType = await _dbContext.Set<LeaveType>().FirstOrDefaultAsync(x => x.Id == typeId);
|
||||
|
||||
|
|
@ -174,7 +174,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
|
||||
public async Task<LeaveBeginning?> GetByYearAndTypeIdForUser(int year, Guid typeId, GetProfileByKeycloakIdDto? pf)
|
||||
{
|
||||
var govAge = (pf?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
|
||||
var govAge = (pf?.DateAppoint?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
|
||||
|
||||
var leaveType = await _dbContext.Set<LeaveType>().FirstOrDefaultAsync(x => x.Id == typeId);
|
||||
|
||||
|
|
@ -247,7 +247,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
return null;
|
||||
}
|
||||
|
||||
var govAge = (pf?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
|
||||
var govAge = (pf?.DateAppoint?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
|
||||
|
||||
var leaveType = await _dbContext.Set<LeaveType>().FirstOrDefaultAsync(x => x.Id == typeId);
|
||||
|
||||
|
|
@ -337,7 +337,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
return null;
|
||||
}
|
||||
|
||||
var govAge = (pf?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
|
||||
var govAge = (pf?.DateAppoint?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
|
||||
|
||||
var leaveType = await _dbContext.Set<LeaveType>().FirstOrDefaultAsync(x => x.Id == typeId);
|
||||
|
||||
|
|
@ -416,5 +416,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
public string LastName { get; set; } = string.Empty;
|
||||
|
||||
public DateTime? DateStart { get; set; } = null;
|
||||
|
||||
public DateTime? DateAppoint { get; set; } = null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1360,6 +1360,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
FirstName = x.FirstName ?? "",
|
||||
LastName = x.LastName ?? "",
|
||||
DateStart = x.DateStart ?? x.DateAppoint,
|
||||
DateAppoint = x.DateAppoint,
|
||||
}).Distinct().ToList();
|
||||
|
||||
var beginningData = await _leaveBeginningRepository.GetAllByYearAsync(year);
|
||||
|
|
|
|||
|
|
@ -869,7 +869,7 @@ 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 govAge = (profile?.DateAppoint?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
|
||||
|
||||
var leaveType = await _leaveTypeRepository.GetByIdAsync(req.Type);
|
||||
if (leaveType == null)
|
||||
|
|
@ -897,13 +897,23 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
|
||||
if (leaveType.Code.Trim().ToUpper() == "LV-005")
|
||||
{
|
||||
leaveLimit = leaveData == null ? 0 : leaveData.LeaveDays;
|
||||
if (govAge < 180)
|
||||
leaveLimit = 0;
|
||||
else
|
||||
leaveLimit = leaveData == null ? 0 : leaveData.LeaveDays;
|
||||
}
|
||||
else
|
||||
leaveLimit = leaveType.Limit;
|
||||
|
||||
var restOldDay = leaveData == null ? 0 : leaveData.LeaveDays - 10;
|
||||
var restCurrentDay = 10.0;
|
||||
if (govAge < 180)
|
||||
{
|
||||
restOldDay = 0;
|
||||
restCurrentDay = 0;
|
||||
}
|
||||
if(restOldDay < 0)
|
||||
restOldDay = 0;
|
||||
var sumLeave = leaveData == null ? 0 : leaveData.LeaveDaysUsed;
|
||||
|
||||
// var lastSalary = profile.ProfileSalary;
|
||||
|
|
@ -970,7 +980,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
|
||||
// var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken);
|
||||
var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken);
|
||||
var govAge = (profile?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
|
||||
var govAge = (profile?.DateAppoint?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
|
||||
var thisYear = DateTime.Now.Year;
|
||||
|
||||
var message = string.Empty;
|
||||
|
|
@ -1527,7 +1537,7 @@ 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 govAge = (profile?.DateAppoint?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
|
||||
|
||||
var userCalendar = await _userCalendarRepository.GetExist(profile.Id);
|
||||
var category = userCalendar == null ? "NORMAL" : userCalendar.Calendar;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue