Update leave calculations to use DateAppoint and adjust leave limits based on government age #2266
This commit is contained in:
parent
659e06a08d
commit
10d6ee160e
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);
|
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);
|
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)
|
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);
|
var leaveType = await _dbContext.Set<LeaveType>().FirstOrDefaultAsync(x => x.Id == typeId);
|
||||||
|
|
||||||
|
|
@ -247,7 +247,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
||||||
return null;
|
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);
|
var leaveType = await _dbContext.Set<LeaveType>().FirstOrDefaultAsync(x => x.Id == typeId);
|
||||||
|
|
||||||
|
|
@ -337,7 +337,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
||||||
return null;
|
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);
|
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 string LastName { get; set; } = string.Empty;
|
||||||
|
|
||||||
public DateTime? DateStart { get; set; } = null;
|
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 ?? "",
|
FirstName = x.FirstName ?? "",
|
||||||
LastName = x.LastName ?? "",
|
LastName = x.LastName ?? "",
|
||||||
DateStart = x.DateStart ?? x.DateAppoint,
|
DateStart = x.DateStart ?? x.DateAppoint,
|
||||||
|
DateAppoint = x.DateAppoint,
|
||||||
}).Distinct().ToList();
|
}).Distinct().ToList();
|
||||||
|
|
||||||
var beginningData = await _leaveBeginningRepository.GetAllByYearAsync(year);
|
var beginningData = await _leaveBeginningRepository.GetAllByYearAsync(year);
|
||||||
|
|
|
||||||
|
|
@ -869,7 +869,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
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);
|
var leaveType = await _leaveTypeRepository.GetByIdAsync(req.Type);
|
||||||
if (leaveType == null)
|
if (leaveType == null)
|
||||||
|
|
@ -897,13 +897,23 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
|
|
||||||
if (leaveType.Code.Trim().ToUpper() == "LV-005")
|
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
|
else
|
||||||
leaveLimit = leaveType.Limit;
|
leaveLimit = leaveType.Limit;
|
||||||
|
|
||||||
var restOldDay = leaveData == null ? 0 : leaveData.LeaveDays - 10;
|
var restOldDay = leaveData == null ? 0 : leaveData.LeaveDays - 10;
|
||||||
var restCurrentDay = 10.0;
|
var restCurrentDay = 10.0;
|
||||||
|
if (govAge < 180)
|
||||||
|
{
|
||||||
|
restOldDay = 0;
|
||||||
|
restCurrentDay = 0;
|
||||||
|
}
|
||||||
|
if(restOldDay < 0)
|
||||||
|
restOldDay = 0;
|
||||||
var sumLeave = leaveData == null ? 0 : leaveData.LeaveDaysUsed;
|
var sumLeave = leaveData == null ? 0 : leaveData.LeaveDaysUsed;
|
||||||
|
|
||||||
// var lastSalary = profile.ProfileSalary;
|
// 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.GetProfileByKeycloakIdAsync(userId, AccessToken);
|
||||||
var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(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 thisYear = DateTime.Now.Year;
|
||||||
|
|
||||||
var message = string.Empty;
|
var message = string.Empty;
|
||||||
|
|
@ -1527,7 +1537,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
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 userCalendar = await _userCalendarRepository.GetExist(profile.Id);
|
||||||
var category = userCalendar == null ? "NORMAL" : userCalendar.Calendar;
|
var category = userCalendar == null ? "NORMAL" : userCalendar.Calendar;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue