From 6f9116ead58cbccde9f20f294065029fb3c27358 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Tue, 29 Apr 2025 15:43:06 +0700 Subject: [PATCH] =?UTF-8?q?Update=20=E0=B8=84=E0=B9=88=E0=B8=B2=E0=B9=84?= =?UTF-8?q?=E0=B8=9B=E0=B8=95=E0=B8=B2=E0=B8=A3=E0=B8=B2=E0=B8=87=20Beginn?= =?UTF-8?q?ing=20=E0=B9=80=E0=B8=A1=E0=B8=B7=E0=B9=88=E0=B8=AD=E0=B8=A1?= =?UTF-8?q?=E0=B8=B5=E0=B8=81=E0=B8=B2=E0=B8=A3=20approve=20=E0=B8=81?= =?UTF-8?q?=E0=B8=B2=E0=B8=A3=E0=B8=A5=E0=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LeaveRequests/LeaveBeginingRepository.cs | 21 +++++++++++++++++++ .../LeaveRequests/LeaveRequestRepository.cs | 14 ++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveBeginingRepository.cs b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveBeginingRepository.cs index fe5364ca..4d3eedd9 100644 --- a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveBeginingRepository.cs +++ b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveBeginingRepository.cs @@ -76,6 +76,27 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests return data; } + public async Task UpdateLeaveUsageAsync(int year, Guid typeId, Guid userId, double day) + { + var pf = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); + if (pf == null) + { + throw new Exception(GlobalMessages.DataNotFound); + } + + var data = await _dbContext.Set() + .Include(x => x.LeaveType) + .FirstOrDefaultAsync(x => x.LeaveYear == year && x.LeaveTypeId == typeId && x.ProfileId == pf.Id); + + if(data == null) + { + throw new Exception(GlobalMessages.DataNotFound); + } + data.LeaveDaysUsed += day; + + await _dbContext.SaveChangesAsync(); + } + public async Task GetByYearAndTypeIdForUserAsync(int year, Guid typeId, Guid userId) { diff --git a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs index a82ebe9f..abb954c7 100644 --- a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs +++ b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs @@ -31,6 +31,8 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests private readonly IApplicationDBContext _appDbContext; private readonly MinIOLeaveService _minIOService; + private readonly LeaveBeginningRepository _leaveBeginningRepository; + private readonly string URL = string.Empty; #endregion @@ -44,7 +46,8 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests IConfiguration configuration, EmailSenderService emailSenderService, IApplicationDBContext appDbContext, - MinIOLeaveService minIOService) : base(dbContext, httpContextAccessor) + MinIOLeaveService minIOService, + LeaveBeginningRepository leaveBeginningRepository) : base(dbContext, httpContextAccessor) { _dbContext = dbContext; _httpContextAccessor = httpContextAccessor; @@ -56,6 +59,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests URL = (_configuration["API"]).Replace("/api/v1", ""); _minIOService = minIOService; + _leaveBeginningRepository = leaveBeginningRepository; } #endregion @@ -435,6 +439,9 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests data.LeaveCancelStatus = "APPROVE"; data.LeaveCancelComment = Reason; + // TODO : Update ไปตาราง beginning + await _leaveBeginningRepository.UpdateLeaveUsageAsync(data.LeaveStartDate.Year, data.Type.Id, data.KeycloakUserId, -1 * data.LeaveTotal); + // Send Noti var noti = new Notification { @@ -475,6 +482,9 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests await UpdateWithTrackingAsync(rawData); + // TODO : Update ไปตาราง beginning + await _leaveBeginningRepository.UpdateLeaveUsageAsync(rawData.LeaveStartDate.Year, rawData.Type.Id, rawData.KeycloakUserId, -1 * rawData.LeaveTotal); + // TODO: remove วันลา // Send Noti @@ -876,6 +886,8 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests await UpdateWithTrackingAsync(rawData); // TODO : Update ไปตาราง beginning + await _leaveBeginningRepository.UpdateLeaveUsageAsync(rawData.LeaveStartDate.Year, rawData.Type.Id, rawData.KeycloakUserId, rawData.LeaveTotal); + var _baseAPI = _configuration["API"]; var apiUrlSalary = string.Empty;