Logic การคำนวนวันลา แบบร่าง และ นะหว่างพิจาณา #1567

This commit is contained in:
Suphonchai Phoonsawat 2026-04-23 19:11:54 +07:00
parent bb329f86de
commit d58c7dc07e
4 changed files with 84 additions and 11 deletions

View file

@ -855,10 +855,10 @@ namespace BMA.EHR.Leave.Service.Controllers
{
var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId);
var thisYear = DateTime.Now.Year;
var thisYear = DateTime.Now.Year - 1;
var toDay = DateTime.Now.Date;
var startFiscalDate = new DateTime(DateTime.Now.Year, 10, 1);
var endFiscalDate = new DateTime(DateTime.Now.Year + 1, 9, 30);
var startFiscalDate = new DateTime(DateTime.Now.Year - 1, 10, 1);
var endFiscalDate = new DateTime(DateTime.Now.Year, 9, 30);
if (toDay >= startFiscalDate && toDay <= endFiscalDate)
thisYear = thisYear + 1;
@ -925,6 +925,9 @@ namespace BMA.EHR.Leave.Service.Controllers
var leaveLast = await _leaveRequestRepository.GetLeaveLastByTypeForUserAsync(userId, req.Type);
var leaveDraftSummary = await _leaveRequestRepository.GetSumDraftLeaveTotalByTypeAndRangeForUser2(userId, req.Type, startFiscalDate, endFiscalDate);
var leaveWaitingSummary = await _leaveRequestRepository.GetSumNewLeaveTotalByTypeAndRangeForUser2(userId, req.Type, startFiscalDate, endFiscalDate);
var result = new GetUserLeaveProfileResultDto
{
DateSendLeave = DateTime.Now.Date,
@ -960,7 +963,10 @@ namespace BMA.EHR.Leave.Service.Controllers
CurrentDistrict = profile.CurrentDistrict ?? "",
CurrentProvince = profile.CurrentProvince ?? "",
CurrentZipCode = profile.CurrentZipCode ?? "",
GovAge = govAge
GovAge = govAge,
LeaveDraftSummary = leaveDraftSummary,
LeaveWaitingSummary = leaveWaitingSummary
};
return Success(result);
@ -2824,7 +2830,13 @@ namespace BMA.EHR.Leave.Service.Controllers
var startFiscalYear = new DateTime(rawData.LeaveStartDate.Year - 1, 10, 1);
var endFiscalYear = rawData.CreatedAt;
var endFiscalYear2 = new DateTime(rawData.LeaveStartDate.Year, 9, 30);
var leaveSummary = await _leaveRequestRepository.GetSumApproveLeaveTotalByTypeAndRangeForUser2(rawData.KeycloakUserId, rawData.Type.Id, startFiscalYear, endFiscalYear);
// วันลาแบบร่างและที่ยื่นลาไปแล้ว
var leaveDraftSummary = await _leaveRequestRepository.GetSumDraftLeaveTotalByTypeAndRangeForUser2(rawData.KeycloakUserId, rawData.Type.Id, startFiscalYear, endFiscalYear2);
var leaveWaitingSummary = await _leaveRequestRepository.GetSumNewLeaveTotalByTypeAndRangeForUser2(rawData.KeycloakUserId, rawData.Type.Id, startFiscalYear, endFiscalYear2);
//var leaveSummary = leaveData == null ? 0.0 : leaveData.LeaveDaysUsed;
if (leaveData != null)
leaveSummary += leaveData.BeginningLeaveDays;
@ -2938,7 +2950,10 @@ namespace BMA.EHR.Leave.Service.Controllers
LeaveLimit = rawData.Type.Limit + extendLeave,
LeaveSummary = leaveSummary,
LeaveRemain = (rawData.Type.Limit + extendLeave) - leaveSummary
LeaveRemain = (rawData.Type.Limit + extendLeave) - leaveSummary,
LeaveDraftSummary = leaveDraftSummary,
LeaveWaitingSummary = leaveWaitingSummary
};
if (rawData.LeaveDocument != null && rawData.LeaveDocument.Count > 0)