diff --git a/BMA.EHR.Application/BMA.EHR.Application.csproj b/BMA.EHR.Application/BMA.EHR.Application.csproj index b3262e4b..7a12c4b5 100644 --- a/BMA.EHR.Application/BMA.EHR.Application.csproj +++ b/BMA.EHR.Application/BMA.EHR.Application.csproj @@ -4,6 +4,9 @@ net6.0 enable enable + false + $(NoWarn);$(WarningsNotAsErrors) + diff --git a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs index 5d2f76e2..811b41c8 100644 --- a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs +++ b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs @@ -308,6 +308,33 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests return await rawData.ToListAsync(); } + public async Task> GetLeaveRequestForAdminWithAuthAsync(int year, Guid type, string status, DateTime startDate, DateTime endDate,List keycloakIdList) + { + var rawData = _dbContext.Set().AsNoTracking() + .Include(x => x.Type) + .Where(x => keycloakIdList.Contains(x.KeycloakUserId)) + .Where(x => x.LeaveStatus != "DRAFT") + .OrderByDescending(x => x.CreatedAt) + .AsQueryable(); + + if (year != 0) + rawData = rawData.Where(x => x.LeaveStartDate.Year == year); + + if (type != Guid.Empty) + rawData = rawData.Where(x => x.Type.Id == type); + + if (status.Trim().ToUpper() != "ALL") + rawData = rawData.Where(x => x.LeaveStatus == status); + + if (startDate != DateTime.MinValue) + rawData = rawData.Where(x => x.LeaveStartDate >= startDate); + + if (endDate != DateTime.MinValue) + rawData = rawData.Where(x => x.LeaveEndDate <= endDate); + + return await rawData.ToListAsync(); + } + public async Task GetRestDayTotalByYearForUserAsync(Guid keycloakUserId, int year) { var startFiscalDate = new DateTime(year - 1, 10, 1); @@ -425,7 +452,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests return await rawData.ToListAsync(); } - public async Task ApproveCancelLeaveRequestAsync(LeaveRequest data, string Reason) + public async Task ApproveCancelLeaveRequestAsync(LeaveRequest data, string Reason,string LeaveReason) { try { @@ -438,6 +465,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests data.LeaveCancelStatus = "APPROVE"; data.LeaveDirectorComment = Reason; + data.LeaveCancelComment = LeaveReason; // TODO : Update ไปตาราง beginning if (data.ApproveStep == "st4") // ถ้ามีการอนุมัติจากผู้มีอำนาจแล้ว diff --git a/BMA.EHR.CheckInConsumer/BMA.EHR.CheckInConsumer.csproj b/BMA.EHR.CheckInConsumer/BMA.EHR.CheckInConsumer.csproj index c59ded2b..ef4df6df 100644 --- a/BMA.EHR.CheckInConsumer/BMA.EHR.CheckInConsumer.csproj +++ b/BMA.EHR.CheckInConsumer/BMA.EHR.CheckInConsumer.csproj @@ -1,25 +1,28 @@  - - Exe - net8.0 - enable - enable - Linux - + + Exe + net8.0 + enable + enable + Linux + false + $(NoWarn);$(WarningsNotAsErrors) - - - - - - - + - - - PreserveNewest - - + + + + + + + + + + + PreserveNewest + + diff --git a/BMA.EHR.Command.Service/BMA.EHR.Command.Service.csproj b/BMA.EHR.Command.Service/BMA.EHR.Command.Service.csproj index 9e86639f..4bb04261 100644 --- a/BMA.EHR.Command.Service/BMA.EHR.Command.Service.csproj +++ b/BMA.EHR.Command.Service/BMA.EHR.Command.Service.csproj @@ -9,6 +9,9 @@ True . BMA.EHR.Command.Service + false + $(NoWarn);$(WarningsNotAsErrors) + diff --git a/BMA.EHR.Discipline.Service/BMA.EHR.Discipline.Service.csproj b/BMA.EHR.Discipline.Service/BMA.EHR.Discipline.Service.csproj index b4da4155..9787eddb 100644 --- a/BMA.EHR.Discipline.Service/BMA.EHR.Discipline.Service.csproj +++ b/BMA.EHR.Discipline.Service/BMA.EHR.Discipline.Service.csproj @@ -1,17 +1,20 @@ - - net7.0 - enable - enable - 9d934a68-d1dd-449d-bde0-3078a774ad0f - Linux - True - . - BMA.EHR.Discipline.Service - + + net7.0 + enable + enable + 9d934a68-d1dd-449d-bde0-3078a774ad0f + Linux + True + . + BMA.EHR.Discipline.Service + false + $(NoWarn);$(WarningsNotAsErrors) - + + + @@ -36,10 +39,10 @@ - + - - - + + + diff --git a/BMA.EHR.Domain/BMA.EHR.Domain.csproj b/BMA.EHR.Domain/BMA.EHR.Domain.csproj index be1779a2..16f82ee7 100644 --- a/BMA.EHR.Domain/BMA.EHR.Domain.csproj +++ b/BMA.EHR.Domain/BMA.EHR.Domain.csproj @@ -1,18 +1,21 @@  - - net6.0 - enable - enable - + + net6.0 + enable + enable + false + $(NoWarn);$(WarningsNotAsErrors) - - - - - - - - + + + + + + + + + + diff --git a/BMA.EHR.Infrastructure/BMA.EHR.Infrastructure.csproj b/BMA.EHR.Infrastructure/BMA.EHR.Infrastructure.csproj index 9bae0b2e..b3370a5e 100644 --- a/BMA.EHR.Infrastructure/BMA.EHR.Infrastructure.csproj +++ b/BMA.EHR.Infrastructure/BMA.EHR.Infrastructure.csproj @@ -1,41 +1,44 @@  - - net6.0 - enable - enable - + + net6.0 + enable + enable + false + $(NoWarn);$(WarningsNotAsErrors) - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - - + - - - + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + - - - PreserveNewest - - + + + + + + + PreserveNewest + + diff --git a/BMA.EHR.Insignia/BMA.EHR.Insignia.csproj b/BMA.EHR.Insignia/BMA.EHR.Insignia.csproj index 3c761786..93282da5 100644 --- a/BMA.EHR.Insignia/BMA.EHR.Insignia.csproj +++ b/BMA.EHR.Insignia/BMA.EHR.Insignia.csproj @@ -1,53 +1,56 @@ - - net7.0 - enable - enable - 93677512-b64b-4a19-9e7d-dd283c7ec901 - Linux - True - . - BMA.EHR.Insignia.Service - BMA.EHR.Insignia - + + net7.0 + enable + enable + 93677512-b64b-4a19-9e7d-dd283c7ec901 + Linux + True + . + BMA.EHR.Insignia.Service + BMA.EHR.Insignia + false + $(NoWarn);$(WarningsNotAsErrors) - - - - - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - - - - - - - - - + - - - - - - PreserveNewest - - + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + diff --git a/BMA.EHR.Leave/BMA.EHR.Leave.csproj b/BMA.EHR.Leave/BMA.EHR.Leave.csproj index 07324011..621e568f 100644 --- a/BMA.EHR.Leave/BMA.EHR.Leave.csproj +++ b/BMA.EHR.Leave/BMA.EHR.Leave.csproj @@ -11,7 +11,8 @@ BMA.EHR.Leave.Service BMA.EHR.Leave - $(NoWarn); + false + $(NoWarn);$(WarningsNotAsErrors) diff --git a/BMA.EHR.Leave/Controllers/LeaveReportController.cs b/BMA.EHR.Leave/Controllers/LeaveReportController.cs index e13349fd..613bb2a2 100644 --- a/BMA.EHR.Leave/Controllers/LeaveReportController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveReportController.cs @@ -282,8 +282,13 @@ namespace BMA.EHR.Leave.Service.Controllers //var sumWeekend = _holidayRepository.GetWeekEndCount(data.LeaveStartDate.Date, data.LeaveEndDate.Date, category); + var startFiscalYear = new DateTime(data.LeaveStartDate.Year - 1, 10, 1); + var endFiscalYear = data.CreatedAt.Date.AddDays(-1); // นับจากวันที่ยื่นลา + var leaveData = await _leaveBeginningRepository.GetByYearAndTypeIdForUserAsync(data.LeaveStartDate.Year, data.Type.Id, data.KeycloakUserId); - var sumLeave = leaveData == null ? 0 : leaveData.LeaveDaysUsed; + //var sumLeave = leaveData == null ? 0 : leaveData.LeaveDaysUsed; + + var sumLeave = await _leaveRequestRepository.GetSumApproveLeaveTotalByTypeAndRangeForUser(data.KeycloakUserId, data.Type.Id, startFiscalYear, endFiscalYear); var leaveLimit = leaveData == null ? 0.0 : leaveData.LeaveDays; @@ -314,13 +319,16 @@ namespace BMA.EHR.Leave.Service.Controllers leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(), leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(), - leaveTotal = data.LeaveTotal.ToString().ToThaiNumber(), - //LeaveTotal = data.LeaveStartDate.DiffDay(data.LeaveEndDate).ToString().ToThaiNumber(), + leaveAddress = data.LeaveAddress.ToThaiNumber(), leaveNumber = data.LeaveNumber.ToThaiNumber(), - - LeaveSummary = sumLeave.ToString().ToThaiNumber(), LeaveRemain = (leaveLimit - sumLeave).ToString().ToThaiNumber(), + + leaveTotal = data.LeaveTotal.ToString().ToThaiNumber(), // วันลาปัจจุบัน + LeaveSummary = sumLeave.ToString().ToThaiNumber(), // วันลาครั้งก่อน + + LeaveAll = (data.LeaveTotal + sumLeave).ToString().ToThaiNumber(), // ลาครั้งนี้ + ครั้งก่อน + LeaveLimit = leaveLimit.ToString().ToThaiNumber() // สิทธิ์การลา } }; } diff --git a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs index e4e3b130..19d0b8cb 100644 --- a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs @@ -3,6 +3,7 @@ using BMA.EHR.Application.Repositories.Commands; using BMA.EHR.Application.Repositories.Leaves.LeaveRequests; using BMA.EHR.Application.Repositories.Leaves.TimeAttendants; using BMA.EHR.Application.Repositories.MetaData; +using BMA.EHR.Application.Responses.Profiles; using BMA.EHR.Domain.Common; using BMA.EHR.Domain.Extensions; using BMA.EHR.Domain.Models.Leave.Commons; @@ -1552,7 +1553,27 @@ namespace BMA.EHR.Leave.Service.Controllers { return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); } - var rawData = await _leaveRequestRepository.GetLeaveRequestForAdminAsync(req.Year, req.Type, req.Status, req.StartDate, req.EndDate); + + // เพิ่มเติมการดึงคนตามสิทธิ์แบบที่ bright ทำ #1462 + var profileList = new List(); + if (req.ProfileType.Trim().ToUpper() == "OFFICER") + { + + profileList = await _userProfileRepository.GetProfileWithNoneValidateKeycloakAllOfficerAndRevision(AccessToken, req.Node, req.NodeId, jsonData["result"] == "OWNER" || jsonData["result"] == "CHILD", req.RevisionId); + } + else + { + + profileList = await _userProfileRepository.GetProfileWithNoneValidateKeycloakAllEmployeeAndRevision(AccessToken, req.Node, req.NodeId, jsonData["result"] == "OWNER" || jsonData["result"] == "CHILD", req.RevisionId); + } + + var keycloakList = new List(); + if(profileList != null) + { + keycloakList = profileList.Where(x => x.Keycloak != null).Select(x => x.Keycloak!.Value).ToList(); + } + + var rawData = await _leaveRequestRepository.GetLeaveRequestForAdminWithAuthAsync(req.Year, req.Type, req.Status, req.StartDate, req.EndDate, keycloakList); var result = new List(); @@ -1650,7 +1671,7 @@ namespace BMA.EHR.Leave.Service.Controllers } else { - data = await _leaveRequestRepository.ApproveCancelLeaveRequestAsync(data, "อนุมัติการขอยกเลิกการลา โดยระบบ"); + data = await _leaveRequestRepository.ApproveCancelLeaveRequestAsync(data, "อนุมัติการขอยกเลิกการลา โดยระบบ", req.Reason ?? ""); } // upload leave cancel document diff --git a/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestForAdminDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestForAdminDto.cs index 2a8e4acf..cadeea86 100644 --- a/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestForAdminDto.cs +++ b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestForAdminDto.cs @@ -28,5 +28,11 @@ namespace BMA.EHR.Leave.Service.DTOs.LeaveRequest public string ProfileType { get; set; } = string.Empty; + public string NodeId { get; set; } = string.Empty; + + public int Node { get; set; } + + public string? RevisionId { get; set; } = string.Empty; + } } diff --git a/BMA.EHR.MetaData.Service/BMA.EHR.MetaData.Service.csproj b/BMA.EHR.MetaData.Service/BMA.EHR.MetaData.Service.csproj index 87e2fdaf..9ef27e1e 100644 --- a/BMA.EHR.MetaData.Service/BMA.EHR.MetaData.Service.csproj +++ b/BMA.EHR.MetaData.Service/BMA.EHR.MetaData.Service.csproj @@ -9,10 +9,13 @@ True . BMA.EHR.MetaData.Service + false + $(NoWarn);$(WarningsNotAsErrors) + - + diff --git a/BMA.EHR.OrganizationEmployee.Service/BMA.EHR.OrganizationEmployee.Service.csproj b/BMA.EHR.OrganizationEmployee.Service/BMA.EHR.OrganizationEmployee.Service.csproj index 10fafc6a..ccc0028b 100644 --- a/BMA.EHR.OrganizationEmployee.Service/BMA.EHR.OrganizationEmployee.Service.csproj +++ b/BMA.EHR.OrganizationEmployee.Service/BMA.EHR.OrganizationEmployee.Service.csproj @@ -1,17 +1,20 @@ - - net7.0 - enable - enable - 3d68209a-41b1-4d00-914e-b895d74467c0 - Linux - True - . - BMA.EHR.OrganizationEmployee.Service - + + net7.0 + enable + enable + 3d68209a-41b1-4d00-914e-b895d74467c0 + Linux + True + . + BMA.EHR.OrganizationEmployee.Service + false + $(NoWarn);$(WarningsNotAsErrors) - + + + @@ -33,10 +36,10 @@ - + - - - + + + diff --git a/BMA.EHR.Placement.Service/BMA.EHR.Placement.Service.csproj b/BMA.EHR.Placement.Service/BMA.EHR.Placement.Service.csproj index 9338f6b5..25abca11 100644 --- a/BMA.EHR.Placement.Service/BMA.EHR.Placement.Service.csproj +++ b/BMA.EHR.Placement.Service/BMA.EHR.Placement.Service.csproj @@ -1,17 +1,20 @@ - - net7.0 - enable - enable - 9d934a68-d1dd-449d-bde0-3078a774ad0f - Linux - True - . - BMA.EHR.Placement.Service - + + net7.0 + enable + enable + 9d934a68-d1dd-449d-bde0-3078a774ad0f + Linux + True + . + BMA.EHR.Placement.Service + false + $(NoWarn);$(WarningsNotAsErrors) - + + + @@ -36,10 +39,10 @@ - + - - - + + + diff --git a/BMA.EHR.Report.Service/BMA.EHR.Report.Service.csproj b/BMA.EHR.Report.Service/BMA.EHR.Report.Service.csproj index 8308a1be..bd9c567c 100644 --- a/BMA.EHR.Report.Service/BMA.EHR.Report.Service.csproj +++ b/BMA.EHR.Report.Service/BMA.EHR.Report.Service.csproj @@ -9,20 +9,23 @@ True . BMA.EHR.Report.Service + false + $(NoWarn);$(WarningsNotAsErrors) + - + - + - + - + @@ -49,15 +52,15 @@ - + - + - + - - Never - + + Never + @@ -157,10 +160,10 @@ PreserveNewest - + PreserveNewest - + PreserveNewest @@ -200,22 +203,22 @@ PreserveNewest - PreserveNewest + PreserveNewest - PreserveNewest + PreserveNewest - PreserveNewest + PreserveNewest - PreserveNewest + PreserveNewest - PreserveNewest + PreserveNewest - PreserveNewest + PreserveNewest PreserveNewest @@ -248,22 +251,22 @@ PreserveNewest - PreserveNewest + PreserveNewest - PreserveNewest + PreserveNewest - PreserveNewest + PreserveNewest - PreserveNewest + PreserveNewest - PreserveNewest + PreserveNewest - PreserveNewest + PreserveNewest PreserveNewest @@ -302,19 +305,19 @@ PreserveNewest - PreserveNewest + PreserveNewest - PreserveNewest + PreserveNewest - PreserveNewest + PreserveNewest - PreserveNewest + PreserveNewest - PreserveNewest + PreserveNewest PreserveNewest @@ -326,7 +329,7 @@ PreserveNewest - PreserveNewest + PreserveNewest PreserveNewest diff --git a/BMA.EHR.Retirement.Service/BMA.EHR.Retirement.Service.csproj b/BMA.EHR.Retirement.Service/BMA.EHR.Retirement.Service.csproj index 8c1fd03f..255f2a75 100644 --- a/BMA.EHR.Retirement.Service/BMA.EHR.Retirement.Service.csproj +++ b/BMA.EHR.Retirement.Service/BMA.EHR.Retirement.Service.csproj @@ -1,17 +1,20 @@ - - net7.0 - enable - enable - 7be0011e-a539-4e0e-a300-ed7f11163989 - Linux - True - . - BMA.EHR.Retirement.Service - + + net7.0 + enable + enable + 7be0011e-a539-4e0e-a300-ed7f11163989 + Linux + True + . + BMA.EHR.Retirement.Service + false + $(NoWarn);$(WarningsNotAsErrors) - + + + @@ -37,10 +40,10 @@ - + - - - + + +