Compare commits
No commits in common. "0cb199d0ee298df6b0aa977eeaebafe26d9fbd9c" and "019a0a1be1043494abdf9a7b1c595696bc92dbc9" have entirely different histories.
0cb199d0ee
...
019a0a1be1
3 changed files with 17 additions and 139 deletions
|
|
@ -32,9 +32,6 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
|
||||
private readonly LeaveBeginningRepository _leaveBeginningRepository;
|
||||
private readonly ProcessUserTimeStampRepository _processUserTimeStampRepository;
|
||||
|
||||
private readonly UserDutyTimeRepository _userDutyTimeRepository;
|
||||
private readonly DutyTimeRepository _dutyTimeRepository;
|
||||
|
||||
private readonly string URL = string.Empty;
|
||||
|
||||
|
|
@ -51,9 +48,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
IApplicationDBContext appDbContext,
|
||||
MinIOLeaveService minIOService,
|
||||
LeaveBeginningRepository leaveBeginningRepository,
|
||||
ProcessUserTimeStampRepository processUserTimeStampRepository,
|
||||
UserDutyTimeRepository userDutyTimeRepository,
|
||||
DutyTimeRepository dutyTimeRepository) : base(dbContext, httpContextAccessor)
|
||||
ProcessUserTimeStampRepository processUserTimeStampRepository) : base(dbContext, httpContextAccessor)
|
||||
{
|
||||
_dbContext = dbContext;
|
||||
_httpContextAccessor = httpContextAccessor;
|
||||
|
|
@ -63,10 +58,6 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
_emailSenderService = emailSenderService;
|
||||
_appDbContext = appDbContext;
|
||||
|
||||
_userDutyTimeRepository = userDutyTimeRepository;
|
||||
_dutyTimeRepository = dutyTimeRepository;
|
||||
|
||||
|
||||
URL = (_configuration["VITE_URL_MGT"]).Replace("/api/v1", "");
|
||||
Console.WriteLine($"URL : {URL}");
|
||||
_minIOService = minIOService;
|
||||
|
|
@ -1340,20 +1331,6 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
await _appDbContext.SaveChangesAsync();
|
||||
|
||||
// ปรับสถานะการลงเวลา
|
||||
var currentDate = rawData.LeaveStartDate;
|
||||
var defaultRound = await _dutyTimeRepository.GetDefaultAsync();
|
||||
if (defaultRound is null)
|
||||
{
|
||||
throw new Exception("ไม่พบรอบการลงเวลาทำงาน Default");
|
||||
}
|
||||
var effectiveDate = await _userDutyTimeRepository.GetLastEffectRound(profile.Id, currentDate);
|
||||
var roundId = effectiveDate != null ? effectiveDate.DutyTimeId : Guid.Empty;
|
||||
var userRound = await _dutyTimeRepository.GetByIdAsync(roundId);
|
||||
|
||||
// TODO : รอดุึงรอบที่ผูกกับ user
|
||||
var duty = userRound ?? defaultRound;
|
||||
|
||||
|
||||
if (rawData.LeaveStartDate.Date == rawData.LeaveEndDate.Date)
|
||||
{
|
||||
var processCheckIn = await _dbContext.Set<ProcessUserTimeStamp>()
|
||||
|
|
@ -1364,39 +1341,13 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
|
||||
if (processCheckIn is not null)
|
||||
{
|
||||
var startTimeMorning = duty.StartTimeMorning;
|
||||
var endTimeMorning = duty.EndTimeMorning;
|
||||
var startTimeAfterNoon = duty.StartTimeAfternoon;
|
||||
var endTimeAfterNoon = duty.EndTimeAfternoon;
|
||||
|
||||
// var currentDateTime = DateTime.Parse(currentDate.ToString("yyyy-MM-dd HH:mm"));
|
||||
// var dutyEndTimeAfternoon = DateTime.Parse($"{checkout.CheckIn.ToString("yyyy-MM-dd")} {endTime1}");
|
||||
// var dutyEndTimeMorning = DateTime.Parse($"{checkout.CheckIn.ToString("yyyy-MM-dd")} {endTimeMorning1}");
|
||||
|
||||
switch (rawData.LeaveRange.Trim().ToUpper())
|
||||
{
|
||||
case "MORNING":
|
||||
var checkIn = DateTime.Parse(processCheckIn.CheckIn.ToString("yyyy-MM-dd HH:mm"));
|
||||
var startAfternoon = DateTime.Parse($"{processCheckIn.CheckIn.ToString("yyyy-MM-dd")} {startTimeAfterNoon}");
|
||||
if (checkIn <= startAfternoon)
|
||||
processCheckIn.CheckInStatus = "NORMAL";
|
||||
else
|
||||
{
|
||||
processCheckIn.CheckInStatus = "LATE";
|
||||
}
|
||||
processCheckIn.CheckInStatus = "NORMAL";
|
||||
break;
|
||||
case "AFTERNOON":
|
||||
if (processCheckIn.CheckOut is not null)
|
||||
{
|
||||
var checkOut = DateTime.Parse(processCheckIn.CheckOut.Value.ToString("yyyy-MM-dd HH:mm"));
|
||||
var endMorning = DateTime.Parse($"{processCheckIn.CheckIn.ToString("yyyy-MM-dd")} {endTimeMorning}");
|
||||
if(checkOut >= endMorning)
|
||||
processCheckIn.CheckOutStatus = "NORMAL";
|
||||
else
|
||||
{
|
||||
processCheckIn.CheckOutStatus = "ABSENT";
|
||||
}
|
||||
}
|
||||
processCheckIn.CheckOutStatus = "NORMAL";
|
||||
break;
|
||||
case "ALL":
|
||||
processCheckIn.CheckInStatus = "NORMAL";
|
||||
|
|
@ -1410,11 +1361,6 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
}
|
||||
else
|
||||
{
|
||||
var startTimeMorning = duty.StartTimeMorning;
|
||||
var endTimeMorning = duty.EndTimeMorning;
|
||||
var startTimeAfterNoon = duty.StartTimeAfternoon;
|
||||
var endTimeAfterNoon = duty.EndTimeAfternoon;
|
||||
|
||||
var from = rawData.LeaveStartDate.Date;
|
||||
var to = rawData.LeaveEndDate.Date;
|
||||
for (var day = from.Date; day <= to.Date; day = day.AddDays(1))
|
||||
|
|
@ -1429,34 +1375,14 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
|||
switch (rawData.LeaveRange.Trim().ToUpper())
|
||||
{
|
||||
case "MORNING":
|
||||
var checkIn = DateTime.Parse(processCheckIn.CheckIn.ToString("yyyy-MM-dd HH:mm"));
|
||||
var startAfternoon = DateTime.Parse($"{processCheckIn.CheckIn.ToString("yyyy-MM-dd")} {startTimeAfterNoon}");
|
||||
if (checkIn <= startAfternoon)
|
||||
processCheckIn.CheckInStatus = "NORMAL";
|
||||
else
|
||||
{
|
||||
processCheckIn.CheckInStatus = "LATE";
|
||||
}
|
||||
processCheckIn.CheckInStatus = "NORMAL";
|
||||
break;
|
||||
case "AFTERNOON":
|
||||
if (processCheckIn.CheckOut is not null)
|
||||
{
|
||||
var checkOut = DateTime.Parse(processCheckIn.CheckOut.Value.ToString("yyyy-MM-dd HH:mm"));
|
||||
var endMorning = DateTime.Parse($"{processCheckIn.CheckIn.ToString("yyyy-MM-dd")} {endTimeMorning}");
|
||||
if (checkOut >= endMorning)
|
||||
processCheckIn.CheckOutStatus = "NORMAL";
|
||||
else
|
||||
{
|
||||
processCheckIn.CheckOutStatus = "ABSENT";
|
||||
}
|
||||
}
|
||||
processCheckIn.CheckOutStatus = "NORMAL";
|
||||
break;
|
||||
case "ALL":
|
||||
processCheckIn.CheckInStatus = "NORMAL";
|
||||
if (processCheckIn.CheckOut is not null)
|
||||
{
|
||||
processCheckIn.CheckOutStatus = "NORMAL";
|
||||
}
|
||||
processCheckIn.CheckOutStatus = "NORMAL";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1436,18 +1436,9 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(userId, currentDate.Date);
|
||||
if (leaveReq != null)
|
||||
{
|
||||
var startTimeAfternoon = duty.StartTimeAfternoon;
|
||||
var endTimeAfterNoon = duty.EndTimeAfternoon;
|
||||
var leaveRange = leaveReq.LeaveRange == null ? "" : leaveReq.LeaveRange.ToUpper();
|
||||
if (leaveRange == "MORNING" || leaveRange == "ALL")
|
||||
if(DateTime.Parse(currentDate.ToString("yyyy-MM-dd HH:mm")) >
|
||||
DateTime.Parse($"{currentDate.ToString("yyyy-MM-dd")} {startTimeAfternoon}"))
|
||||
checkInStatus = "LATE";
|
||||
else if(DateTime.Parse(currentDate.ToString("yyyy-MM-dd HH:mm")) >
|
||||
DateTime.Parse($"{currentDate.ToString("yyyy-MM-dd")} {endTimeAfterNoon}"))
|
||||
checkInStatus = "ABSENT";
|
||||
else
|
||||
checkInStatus = "NORMAL";
|
||||
checkInStatus = "NORMAL";
|
||||
else
|
||||
{
|
||||
checkInStatus = DateTime.Parse(currentDate.ToString("yyyy-MM-dd HH:mm")) >
|
||||
|
|
@ -3308,6 +3299,8 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
return Error("ไม่สามารถขอลงเวลากรณีพิเศษในวันที่มากกว่าวันที่ปัจจุบันได้", StatusCodes.Status400BadRequest);
|
||||
}
|
||||
|
||||
|
||||
|
||||
var userId = UserId != null ? Guid.Parse(UserId) : Guid.Empty;
|
||||
|
||||
var checkin = await _userTimeStampRepository.GetTimestampByDateAsync(userId, req.CheckDate.Date);
|
||||
|
|
@ -3567,21 +3560,9 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
var roundId = effectiveDate != null ? effectiveDate.DutyTimeId : Guid.Empty;
|
||||
var userRound = await _dutyTimeRepository.GetByIdAsync(roundId);
|
||||
var checkInData = await _userTimeStampRepository.GetTimestampByDateAsync(data.KeycloakUserId, data.CheckDate);
|
||||
|
||||
|
||||
|
||||
var duty = userRound ?? getDefaultRound;
|
||||
|
||||
var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(data.KeycloakUserId, data.CheckDate.Date);
|
||||
|
||||
var startTimeMorning = leaveReq is null ? duty.StartTimeMorning :
|
||||
leaveReq.LeaveRange == "MORNING" ? duty.StartTimeAfternoon : duty.StartTimeMorning;
|
||||
var endTimeMorning = leaveReq is null ? duty.EndTimeMorning :
|
||||
leaveReq.LeaveRange == "MORNING" ? duty.StartTimeAfternoon : duty.EndTimeMorning;
|
||||
|
||||
var startTimeAfterNoon = duty.StartTimeAfternoon;
|
||||
var endTimeAfterNoon = duty.EndTimeAfternoon;
|
||||
|
||||
//var duty = getDefaultRound;
|
||||
|
||||
// create result object to return
|
||||
|
|
@ -3622,15 +3603,10 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
"ABSENT" :
|
||||
"NORMAL",
|
||||
|
||||
// StartTimeMorning = duty.StartTimeMorning,
|
||||
// EndTimeMorning = duty.EndTimeMorning,
|
||||
// StartTimeAfternoon = duty.StartTimeAfternoon,
|
||||
// EndTimeAfternoon = duty.EndTimeAfternoon,
|
||||
|
||||
StartTimeMorning = startTimeMorning,
|
||||
EndTimeMorning = endTimeMorning,
|
||||
StartTimeAfternoon = startTimeAfterNoon,
|
||||
EndTimeAfternoon = endTimeAfterNoon,
|
||||
StartTimeMorning = duty.StartTimeMorning,
|
||||
EndTimeMorning = duty.EndTimeMorning,
|
||||
StartTimeAfternoon = duty.StartTimeAfternoon,
|
||||
EndTimeAfternoon = duty.EndTimeAfternoon,
|
||||
|
||||
Reason = data.Comment ?? "",
|
||||
Status = data.Status,
|
||||
|
|
@ -4208,22 +4184,11 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
DateTime? resultCheckInDate, resultCheckOutDate, resultCheckInDateAndTime, resultCheckOutDateAndTime;
|
||||
string resultCheckInTime, resultCheckOutTime;
|
||||
string resultCheckInLocation = "", resultCheckOutLocation = "";
|
||||
|
||||
var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(data.KeycloakUserId, data.CheckDate.Date);
|
||||
|
||||
var startTimeMorning = leaveReq is null ? duty.StartTimeMorning :
|
||||
leaveReq.LeaveRange == "MORNING" ? duty.StartTimeAfternoon : duty.StartTimeMorning;
|
||||
var endTimeMorning = leaveReq is null ? duty.EndTimeMorning :
|
||||
leaveReq.LeaveRange == "MORNING" ? duty.StartTimeAfternoon : duty.EndTimeMorning;
|
||||
|
||||
var startTimeAfterNoon = duty.StartTimeAfternoon;
|
||||
var endTimeAfterNoon = duty.EndTimeAfternoon;
|
||||
|
||||
if (data.CheckInEdit)
|
||||
{
|
||||
resultCheckInDate = data.CheckDate.Date;
|
||||
//resultCheckInTime = duty.StartTimeMorning;
|
||||
resultCheckInTime = startTimeMorning;
|
||||
resultCheckInTime = duty.StartTimeMorning;
|
||||
resultCheckInLocation = data.POI ?? "";
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -1111,22 +1111,9 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
x.KeycloakUserId == userId)
|
||||
.ToListAsync();
|
||||
|
||||
if (req.StartLeaveDate.Date == req.EndLeaveDate.Date)
|
||||
{
|
||||
isBetween = existingLeaves.Any(leave =>
|
||||
req.StartLeaveDate.Date == leave.LeaveEndDate.Date &&
|
||||
req.EndLeaveDate.Date == leave.LeaveStartDate.Date &&
|
||||
req.LeaveRange == leave.LeaveRange);
|
||||
}
|
||||
else
|
||||
{
|
||||
isBetween = existingLeaves.Any(leave =>
|
||||
req.StartLeaveDate.Date <= leave.LeaveEndDate.Date &&
|
||||
req.EndLeaveDate.Date >= leave.LeaveStartDate.Date);
|
||||
}
|
||||
|
||||
|
||||
|
||||
isBetween = existingLeaves.Any(leave =>
|
||||
req.StartLeaveDate.Date <= leave.LeaveEndDate.Date &&
|
||||
req.EndLeaveDate.Date >= leave.LeaveStartDate.Date);
|
||||
|
||||
// var minLeave = (await _context.Set<LeaveRequest>().Where(x => x.Type.Id == req.Type &&
|
||||
// (x.LeaveStatus == "PENDING" || x.LeaveStatus == "APPROVE") &&
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue