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 @@
-
+
-
-
-
+
+
+