diff --git a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveBeginingRepository.cs b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveBeginingRepository.cs index a62aa291..2d14db9c 100644 --- a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveBeginingRepository.cs +++ b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveBeginingRepository.cs @@ -80,7 +80,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests public async Task UpdateLeaveUsageAsync(int year, Guid typeId, Guid userId, double day) { // var pf = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); - var pf = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var pf = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); if (pf == null) { throw new Exception(GlobalMessages.DataNotFound); @@ -102,7 +102,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests public async Task UpdateLeaveCountAsync(int year, Guid typeId, Guid userId, int count) { // var pf = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); - var pf = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var pf = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); if (pf == null) { throw new Exception(GlobalMessages.DataNotFound); @@ -124,7 +124,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests public async Task GetByYearAndTypeIdForUserAsync(int year, Guid typeId, Guid userId) { // var pf = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); - var pf = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var pf = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); if (pf == null) { throw new Exception(GlobalMessages.DataNotFound); @@ -263,7 +263,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests public async Task GetByYearAndTypeIdForUser2Async(int year, Guid typeId, Guid userId) { // var pf = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); - var pf = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var pf = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); if (pf == null) { return null; diff --git a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs index 792b57cb..8416af4e 100644 --- a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs +++ b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs @@ -254,7 +254,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests public async Task> GetLeaveRequestByYearAsync(int year, Guid userId) { // var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); if (profile == null) { @@ -497,7 +497,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests public async Task GetSumLeaveByTypeForUserAsync(Guid keycloakUserId, Guid leaveTypeId, int year) { // var pf = await _userProfileRepository.GetProfileByKeycloakIdAsync(keycloakUserId, AccessToken); - var pf = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(keycloakUserId, AccessToken); + var pf = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(keycloakUserId, AccessToken); if (pf == null) throw new Exception(GlobalMessages.DataNotFound); @@ -651,7 +651,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests try { // var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken ?? ""); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(data.KeycloakUserId, AccessToken ?? ""); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(data.KeycloakUserId, AccessToken ?? ""); if (profile == null) { throw new Exception(GlobalMessages.DataNotFound); @@ -728,7 +728,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests } // var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId, AccessToken ?? ""); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(rawData.KeycloakUserId, AccessToken ?? ""); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(rawData.KeycloakUserId, AccessToken ?? ""); if (profile == null) { throw new Exception(GlobalMessages.DataNotFound); @@ -817,7 +817,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests } // var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId, AccessToken ?? ""); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(rawData.KeycloakUserId, AccessToken ?? ""); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(rawData.KeycloakUserId, AccessToken ?? ""); if (profile == null) { throw new Exception(GlobalMessages.DataNotFound); @@ -1242,7 +1242,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests else { // var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId, AccessToken); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(rawData.KeycloakUserId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(rawData.KeycloakUserId, AccessToken); if (profile == null) { throw new Exception(GlobalMessages.DataNotFound); @@ -1412,7 +1412,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests else { // var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId, AccessToken); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(rawData.KeycloakUserId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(rawData.KeycloakUserId, AccessToken); if (profile == null) { throw new Exception(GlobalMessages.DataNotFound); diff --git a/BMA.EHR.Application/Repositories/PermissionRepository.cs b/BMA.EHR.Application/Repositories/PermissionRepository.cs index a63207ec..84191f91 100644 --- a/BMA.EHR.Application/Repositories/PermissionRepository.cs +++ b/BMA.EHR.Application/Repositories/PermissionRepository.cs @@ -10,7 +10,6 @@ using System.Net.Http.Headers; using Microsoft.Extensions.Configuration; using System.Security.Claims; using System.Net.Http.Json; -using BMA.EHR.Application.Responses.Leaves; namespace BMA.EHR.Application.Repositories { @@ -77,39 +76,6 @@ namespace BMA.EHR.Application.Repositories } } - public async Task GetPermissionWithActingAPIAsync(string action, string system) - { - try - { - var apiPath = $"{_configuration["API"]}/org/permission/dotnet-acting/{action}/{system}"; - - using (var client = new HttpClient()) - { - client.DefaultRequestHeaders.Authorization = - new AuthenticationHeaderValue("Bearer", AccessToken.Replace("Bearer ", "")); - client.DefaultRequestHeaders.Add("api-key", _configuration["API_KEY"]); - var req = await client.GetAsync(apiPath); - if (!req.IsSuccessStatusCode) - { - throw new Exception("Error calling permission API"); - } - var apiResult = await req.Content.ReadAsStringAsync(); - //return res; - - if (apiResult != null) - { - var raw = JsonConvert.DeserializeObject(apiResult); - return raw; - } - return null; - } - } - catch - { - throw; - } - } - public async Task GetPermissionOrgAPIAsync(string action, string system, string profileId) { try diff --git a/BMA.EHR.Application/Responses/Leaves/GetPermissionWithActingDto.cs b/BMA.EHR.Application/Responses/Leaves/GetPermissionWithActingDto.cs deleted file mode 100644 index 083c4b20..00000000 --- a/BMA.EHR.Application/Responses/Leaves/GetPermissionWithActingDto.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using BMA.EHR.Domain.Shared; -using Newtonsoft.Json; - -namespace BMA.EHR.Application.Responses.Leaves -{ - public class GetPermissionWithActingDto - { - public string privilege {get; set;} = string.Empty; - public bool isAct {get; set;} = false; - public List posMasterActs {get; set;} = new(); - } - - public class ActingPermission - { - public string posNo {get; set;} = string.Empty; - //public string? privilege {get; set;} = "PARENT"; - [JsonConverter(typeof(PrivilegeConverter))] - public string privilege {get; set;} = "CHILD"; - - public Guid? rootDnaId {get; set;} - public Guid? child1DnaId {get; set;} - public Guid? child2DnaId {get; set;} - public Guid? child3DnaId {get; set;} - public Guid? child4DnaId {get; set;} - } - - public class GetPermissionWithActingResultDto - { - public int status {get; set;} = 0; - public string message {get; set;} = string.Empty; - public GetPermissionWithActingDto result {get; set;} = new(); - } -} \ No newline at end of file diff --git a/BMA.EHR.Domain/Shared/GlobalMessages.cs b/BMA.EHR.Domain/Shared/GlobalMessages.cs index a99dc3c9..8746de95 100644 --- a/BMA.EHR.Domain/Shared/GlobalMessages.cs +++ b/BMA.EHR.Domain/Shared/GlobalMessages.cs @@ -8,8 +8,6 @@ public static readonly string DataNotFound = "ไม่พบข้อมูลในระบบ"; - public static readonly string ProfileNotFound = "ไม่พบข้อมูลในระบบทะเบียนประวัติ"; - public static readonly string NotAuthorized = "กรุณาเข้าสู่ระบบก่อนใช้งาน!"; public static readonly string ForbiddenAccess = "คุณไม่ได้รับอนุญาติให้เข้าใช้งาน!"; diff --git a/BMA.EHR.Domain/Shared/PrivilegeConverter.cs b/BMA.EHR.Domain/Shared/PrivilegeConverter.cs deleted file mode 100644 index 4dc7fd85..00000000 --- a/BMA.EHR.Domain/Shared/PrivilegeConverter.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Newtonsoft.Json; - -namespace BMA.EHR.Domain.Shared -{ - public class PrivilegeConverter : JsonConverter -{ - public override bool CanConvert(Type objectType) - { - return objectType == typeof(string); - } - - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) - { - if (reader.TokenType == JsonToken.Null) - { - return "CHILD"; - } - return reader.Value; - } - - public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) - { - writer.WriteValue(value); - } -} -} \ No newline at end of file diff --git a/BMA.EHR.Leave/Controllers/LeaveController.cs b/BMA.EHR.Leave/Controllers/LeaveController.cs index 8ff74510..0a423d60 100644 --- a/BMA.EHR.Leave/Controllers/LeaveController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveController.cs @@ -3,10 +3,8 @@ 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.MessageQueue; -using BMA.EHR.Application.Responses.Leaves; using BMA.EHR.Application.Responses.Profiles; using BMA.EHR.Domain.Common; -using BMA.EHR.Domain.Extensions; using BMA.EHR.Domain.Models.Leave.TimeAttendants; using BMA.EHR.Domain.Models.Notifications; using BMA.EHR.Domain.Shared; @@ -449,7 +447,7 @@ namespace BMA.EHR.Leave.Service.Controllers // Get user's last check-in record and profile in parallel var dataTask = _userTimeStampRepository.GetLastRecord(userId); - var profileTask = _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var profileTask = _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); var defaultRoundTask = _dutyTimeRepository.GetDefaultAsync(); await Task.WhenAll(dataTask, profileTask, defaultRoundTask); @@ -938,7 +936,7 @@ namespace BMA.EHR.Leave.Service.Controllers await _checkInJobStatusRepository.UpdateToProcessingAsync(taskId); } - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, data.Token); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, data.Token); if (profile == null) { @@ -1591,7 +1589,7 @@ namespace BMA.EHR.Leave.Service.Controllers public async Task> CheckInOldAsync([FromForm] CheckTimeDto data) { var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); if (profile == null) return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -1756,7 +1754,7 @@ namespace BMA.EHR.Leave.Service.Controllers { var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); if (profile == null) { return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -2045,7 +2043,7 @@ namespace BMA.EHR.Leave.Service.Controllers } else { - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(d.KeycloakUserId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(d.KeycloakUserId, AccessToken); if (profile == null) { return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -2995,7 +2993,7 @@ namespace BMA.EHR.Leave.Service.Controllers var time = DateTime.Now; var userId = UserId != null ? Guid.Parse(UserId) : Guid.Empty; - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); if (profile == null) { throw new Exception(GlobalMessages.DataNotFound); @@ -3115,7 +3113,7 @@ namespace BMA.EHR.Leave.Service.Controllers } var userId = UserId != null ? Guid.Parse(UserId) : Guid.Empty; - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); if (profile == null) { throw new Exception(GlobalMessages.DataNotFound); @@ -3164,14 +3162,13 @@ namespace BMA.EHR.Leave.Service.Controllers [ProducesResponseType(StatusCodes.Status500InternalServerError)] public async Task> GetAdditionalCheckRequestAsync([Required] int year, [Required] int month, [Required] int page = 1, [Required] int pageSize = 10, string keyword = "", string? sortBy = "", bool? descending = false) { - var jsonData = await _permission.GetPermissionWithActingAPIAsync("LIST", "SYS_CHECKIN_SPECIAL"); - //var jsonData = JsonConvert.DeserializeObject(getPermission); - if (jsonData!.status != 200) + var getPermission = await _permission.GetPermissionAPIAsync("LIST", "SYS_CHECKIN_SPECIAL"); + var jsonData = JsonConvert.DeserializeObject(getPermission); + if (jsonData["status"]?.ToString() != "200") { - return Error(jsonData.message, StatusCodes.Status403Forbidden); + return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); } - //string role = jsonData["result"]?.ToString(); - string role = jsonData.result.privilege; + string role = jsonData["result"]?.ToString(); var nodeId = string.Empty; var profileAdmin = new GetUserOCAllDto(); profileAdmin = await _userProfileRepository.GetUserOCAll(Guid.Parse(UserId!), AccessToken); @@ -3209,80 +3206,6 @@ namespace BMA.EHR.Leave.Service.Controllers //var rawData = await _additionalCheckRequestRepository.GetAdditionalCheckRequests(year, month); var rawData = await _additionalCheckRequestRepository.GetAdditionalCheckRequestsByAdminRole(year, month, role, nodeId, profileAdmin?.Node, keyword); - // ถ้ามีการรักษาการ - if (jsonData.result.isAct) - { - var posActs = jsonData.result.posMasterActs; - foreach(var act in posActs) - { - var actRole = act.privilege; - string actNodeId = string.Empty; - int? actNode; - - if (role == "NORMAL" || role == "CHILD") - { - actNodeId = act.child4DnaId != null ? - act.child4DnaId.Value.ToString("D") : - act.child3DnaId != null ? - act.child3DnaId.Value.ToString("D") : - act.child2DnaId != null ? - act.child2DnaId.Value.ToString("D") : - act.child1DnaId != null ? - act.child1DnaId.Value.ToString("D") : - act.rootDnaId != null ? - act.rootDnaId.Value.ToString("D") : - ""; - actNode = act.child4DnaId != null ? - 4 : - act.child3DnaId != null ? - 3 : - act.child2DnaId != null ? - 2 : - act.child1DnaId != null ? - 1 : - act.rootDnaId != null ? - 0 : - null; - } - else if (role == "BROTHER") - { - actNodeId = act.child3DnaId != null ? - act.child3DnaId.Value.ToString("D") : - act.child2DnaId != null ? - act.child2DnaId.Value.ToString("D") : - act.child1DnaId != null ? - act.rootDnaId!.Value.ToString("D") : - act.rootDnaId != null ? - act.rootDnaId.Value.ToString("D") : - ""; - actNode = act.child4DnaId != null ? - 4 : - act.child3DnaId != null ? - 4 : - act.child2DnaId != null ? - 3 : - act.child1DnaId != null ? - 2 : - act.rootDnaId != null ? - 0 : - null; - } - else if (role == "ROOT" /*|| role == "PARENT"*/) - { - actNodeId = act.rootDnaId!.Value.ToString("D"); - actNode = 0; - } - - var rawDataAct = await _additionalCheckRequestRepository.GetAdditionalCheckRequestsByAdminRole(year, month, actRole, actNodeId, profileAdmin?.Node, keyword); - if (rawDataAct != null) - { - if (rawData != null) - rawData = rawData.Union(rawDataAct).ToList(); - else - rawData = rawDataAct; - } - } - } var total = rawData.Count; var getDefaultRound = await _dutyTimeRepository.GetDefaultAsync(); @@ -3353,7 +3276,7 @@ namespace BMA.EHR.Leave.Service.Controllers foreach (var data in rawDataPaged) { - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(data.KeycloakUserId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(data.KeycloakUserId, AccessToken); UserDutyTime? effectiveDate = null; if (profile != null) { @@ -3532,7 +3455,7 @@ namespace BMA.EHR.Leave.Service.Controllers // change user timestamp var processTimeStamp = await _processUserTimeStampRepository.GetTimestampByDateAsync(requestData.KeycloakUserId, requestData.CheckDate.Date); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(requestData.KeycloakUserId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(requestData.KeycloakUserId, AccessToken); if (processTimeStamp == null) { @@ -3686,7 +3609,7 @@ namespace BMA.EHR.Leave.Service.Controllers requestData.Comment = req.Reason; await _additionalCheckRequestRepository.UpdateAsync(requestData); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(requestData.KeycloakUserId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(requestData.KeycloakUserId, AccessToken); var recvId = new List { profile.Id }; await _notificationRepository.PushNotificationsAsync(recvId.ToArray(), "ลงเวลากรณีพิเศษ", "การขอลงเวลากรณีพิเศษของคุณไม่ได้รับการอนุมัติ", "", "", true, false); @@ -3730,7 +3653,7 @@ namespace BMA.EHR.Leave.Service.Controllers } else { - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(d.KeycloakUserId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(d.KeycloakUserId, AccessToken); if (profile == null) { return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -3824,7 +3747,7 @@ namespace BMA.EHR.Leave.Service.Controllers foreach (var data in rawData) { - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(data.KeycloakUserId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(data.KeycloakUserId, AccessToken); if (profile == null) { return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -4114,7 +4037,7 @@ namespace BMA.EHR.Leave.Service.Controllers //var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); // แก้เป็นมาใช้งาน KeycloakUserId แทน - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(data.KeycloakUserId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(data.KeycloakUserId, AccessToken); var defaultRound = await _dutyTimeRepository.GetDefaultAsync(); if (defaultRound == null) { @@ -4184,7 +4107,7 @@ namespace BMA.EHR.Leave.Service.Controllers [ProducesResponseType(StatusCodes.Status500InternalServerError)] public async Task> GetLeaveSummaryByProfileAsync(Guid id, [FromBody] GetLeaveSummaryDto req) { - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(id, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(id, AccessToken); var thisYear = DateTime.Now.Year; var startDate = req.StartDate; @@ -4254,7 +4177,7 @@ namespace BMA.EHR.Leave.Service.Controllers { var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); if (profile == null) { return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); diff --git a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs index 5720bccc..7bc3b151 100644 --- a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs @@ -214,7 +214,7 @@ namespace BMA.EHR.Leave.Service.Controllers var thisYear = DateTime.Now.Year; // var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); if (profile == null) { @@ -502,7 +502,7 @@ namespace BMA.EHR.Leave.Service.Controllers foreach (var leave in leaves) { // var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(leave.KeycloakUserId, AccessToken); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(leave.KeycloakUserId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(leave.KeycloakUserId, AccessToken); if (profile != null) { leave.Prefix = profile.Prefix; @@ -563,7 +563,7 @@ namespace BMA.EHR.Leave.Service.Controllers // } // var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); if (profile == null) { @@ -1026,7 +1026,7 @@ namespace BMA.EHR.Leave.Service.Controllers var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); // var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); var govAge = (profile?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date); var startDate = profile?.DateStart?.Date ?? DateTime.Now.Date; // var date1Raw = profile?.DateStart?.Date ?? DateTime.Now.Date; @@ -1352,14 +1352,14 @@ namespace BMA.EHR.Leave.Service.Controllers public async Task> GetLeaveRequestCalendarAdminAsync( [FromBody] GetLeaveRequestCalendarDto req) { - var jsonData = await _permission.GetPermissionWithActingAPIAsync("LIST", "SYS_LEAVE_LIST"); - //var jsonData = JsonConvert.DeserializeObject(getPermission); - if (jsonData!.status != 200) + var getPermission = await _permission.GetPermissionAPIAsync("LIST", "SYS_LEAVE_LIST"); + var jsonData = JsonConvert.DeserializeObject(getPermission); + if (jsonData["status"]?.ToString() != "200") { - return Error(jsonData.message, StatusCodes.Status403Forbidden); + return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); } - //string role = jsonData["result"]?.ToString(); - string role = jsonData.result.privilege; + + string role = jsonData["result"]?.ToString(); var nodeId = string.Empty; var profileAdmin = new GetUserOCAllDto(); profileAdmin = await _userProfileRepository.GetUserOCAll(Guid.Parse(UserId!), AccessToken); @@ -1395,85 +1395,6 @@ namespace BMA.EHR.Leave.Service.Controllers } var data = await _leaveRequestRepository.GetLeaveRequestByYearForAdminAsync(req.Year, role, nodeId, profileAdmin.Node); - - // ถ้ามีการรักษาการ - if (jsonData.result.isAct) - { - var posActs = jsonData.result.posMasterActs; - foreach(var act in posActs) - { - var actRole = act.privilege; - string actNodeId = string.Empty; - int? actNode = null; - - if (role == "NORMAL" || role == "CHILD") - { - actNodeId = act.child4DnaId != null ? - act.child4DnaId.Value.ToString("D") : - act.child3DnaId != null ? - act.child3DnaId.Value.ToString("D") : - act.child2DnaId != null ? - act.child2DnaId.Value.ToString("D") : - act.child1DnaId != null ? - act.child1DnaId.Value.ToString("D") : - act.rootDnaId != null ? - act.rootDnaId.Value.ToString("D") : - ""; - actNode = act.child4DnaId != null ? - 4 : - act.child3DnaId != null ? - 3 : - act.child2DnaId != null ? - 2 : - act.child1DnaId != null ? - 1 : - act.rootDnaId != null ? - 0 : - null; - } - else if (role == "BROTHER") - { - actNodeId = act.child3DnaId != null ? - act.child3DnaId.Value.ToString("D") : - act.child2DnaId != null ? - act.child2DnaId.Value.ToString("D") : - act.child1DnaId != null ? - act.rootDnaId!.Value.ToString("D") : - act.rootDnaId != null ? - act.rootDnaId.Value.ToString("D") : - ""; - actNode = act.child4DnaId != null ? - 4 : - act.child3DnaId != null ? - 4 : - act.child2DnaId != null ? - 3 : - act.child1DnaId != null ? - 2 : - act.rootDnaId != null ? - 0 : - null; - } - else if (role == "ROOT" /*|| role == "PARENT"*/) - { - actNodeId = act.rootDnaId!.Value.ToString("D"); - actNode = 0; - } - - var rawDataAct = await _leaveRequestRepository.GetLeaveRequestByYearForAdminAsync(req.Year, actRole, actNodeId, actNode); - if (rawDataAct != null) - { - if (data != null) - data = data.Union(rawDataAct).ToList(); - else - data = rawDataAct; - } - } - } - - - - var resultData = (from d in data //join p in profileList on d.KeycloakUserId equals p.Keycloak select new GetLeaveRequestCalendarResultDto @@ -1656,7 +1577,7 @@ namespace BMA.EHR.Leave.Service.Controllers } // var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId, AccessToken); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(rawData.KeycloakUserId, AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(rawData.KeycloakUserId, AccessToken); if (profile == null) { @@ -1829,14 +1750,14 @@ namespace BMA.EHR.Leave.Service.Controllers public async Task> GetLeaveRequestForAdminAsync( [FromBody] GetLeaveRequestForAdminDto req) { - var jsonData = await _permission.GetPermissionWithActingAPIAsync("LIST", "SYS_LEAVE_LIST"); - //var jsonData = JsonConvert.DeserializeObject(getPermission); - if (jsonData!.status != 200) + var getPermission = await _permission.GetPermissionAPIAsync("LIST", "SYS_LEAVE_LIST"); + var jsonData = JsonConvert.DeserializeObject(getPermission); + if (jsonData["status"]?.ToString() != "200") { - return Error(jsonData.message, StatusCodes.Status403Forbidden); + return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); } - //string role = jsonData["result"]?.ToString(); - string role = jsonData.result.privilege; + + string role = jsonData["result"]?.ToString(); var nodeId = string.Empty; var profileAdmin = new GetUserOCAllDto(); profileAdmin = await _userProfileRepository.GetUserOCAll(Guid.Parse(UserId!), AccessToken); @@ -1873,83 +1794,6 @@ namespace BMA.EHR.Leave.Service.Controllers var rawData = await _leaveRequestRepository.GetListLeaveRequestForAdminAsync(req.Year, req.Type, req.Status, req.StartDate, req.EndDate, role, nodeId, profileAdmin?.Node); - - // ถ้ามีการรักษาการ - if (jsonData.result.isAct) - { - var posActs = jsonData.result.posMasterActs; - foreach(var act in posActs) - { - var actRole = act.privilege; - string actNodeId = string.Empty; - int? actNode = null; - - if (role == "NORMAL" || role == "CHILD") - { - actNodeId = act.child4DnaId != null ? - act.child4DnaId.Value.ToString("D") : - act.child3DnaId != null ? - act.child3DnaId.Value.ToString("D") : - act.child2DnaId != null ? - act.child2DnaId.Value.ToString("D") : - act.child1DnaId != null ? - act.child1DnaId.Value.ToString("D") : - act.rootDnaId != null ? - act.rootDnaId.Value.ToString("D") : - ""; - actNode = act.child4DnaId != null ? - 4 : - act.child3DnaId != null ? - 3 : - act.child2DnaId != null ? - 2 : - act.child1DnaId != null ? - 1 : - act.rootDnaId != null ? - 0 : - null; - } - else if (role == "BROTHER") - { - actNodeId = act.child3DnaId != null ? - act.child3DnaId.Value.ToString("D") : - act.child2DnaId != null ? - act.child2DnaId.Value.ToString("D") : - act.child1DnaId != null ? - act.rootDnaId!.Value.ToString("D") : - act.rootDnaId != null ? - act.rootDnaId.Value.ToString("D") : - ""; - actNode = act.child4DnaId != null ? - 4 : - act.child3DnaId != null ? - 4 : - act.child2DnaId != null ? - 3 : - act.child1DnaId != null ? - 2 : - act.rootDnaId != null ? - 0 : - null; - } - else if (role == "ROOT" /*|| role == "PARENT"*/) - { - actNodeId = act.rootDnaId!.Value.ToString("D"); - actNode = 0; - } - - var rawDataAct = await _leaveRequestRepository.GetListLeaveRequestForAdminAsync(req.Year, req.Type, req.Status, req.StartDate, req.EndDate, actRole, actNodeId, actNode); - if (rawDataAct != null) - { - if (rawData != null) - rawData = rawData.Union(rawDataAct).ToList(); - else - rawData = rawDataAct; - } - } - } - - var result = new List(); foreach (var item in rawData) @@ -2032,12 +1876,6 @@ namespace BMA.EHR.Leave.Service.Controllers return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); } - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(data.KeycloakUserId, AccessToken); - if (profile == null) - { - return Error(GlobalMessages.ProfileNotFound, StatusCodes.Status404NotFound); - } - // change status to delete // แก้จาก DELETE เป็น DELETING ไว้ก่อน รอ approve ค่อยเปลี่ยนเป็น DELETE // data.LeaveStatus = "DELETE"; @@ -2074,7 +1912,7 @@ namespace BMA.EHR.Leave.Service.Controllers // TODO: Send notification to all users who need to approve the cancel leave request var approvers = data.Approvers - //.Where(x => x.ApproveStatus!.ToUpper() == "PENDING") + .Where(x => x.ApproveStatus!.ToUpper() == "PENDING") .OrderBy(x => x.Seq) .ToList(); @@ -2086,33 +1924,11 @@ namespace BMA.EHR.Leave.Service.Controllers Body = $"คำร้องขอยกเลิกการลาของคุณ {data.FirstName} {data.LastName} รอรับการอนุมัติจากคุณ", ReceiverUserId = approver!.ProfileId, Type = "", - Payload = $"{URL}/leave-reject/detail/{id}", + Payload = $"{URL}/leave/detail/{id}", }; _appDbContext.Set().Add(noti1); } - // Get Officer List - var officers = await _userProfileRepository.GetOCStaffAsync(profile.Id, AccessToken); - var approverProfileIdList = approvers.Select(x => x.ProfileId).ToList(); - - if(officers != null && officers.Count > 0) - { - officers = officers.Where(x => !approverProfileIdList.Contains(x.ProfileId)).ToList(); - foreach (var officer in officers) - { - // Send Notification - var noti = new Notification - { - Body = $"คำร้องขอยกเลิกการลาของคุณ {data.FirstName} {data.LastName} รอรับการอนุมัติจากคุณ", - ReceiverUserId = officer.ProfileId, - Type = "", - Payload = $"{URL}/leave-reject/detail/{id}", - }; - _appDbContext.Set().Add(noti); - } - await _appDbContext.SaveChangesAsync(); - } - return Success(); } @@ -2132,14 +1948,14 @@ namespace BMA.EHR.Leave.Service.Controllers public async Task> GetCancelLeaveRequestForAdminAsync( [FromBody] GetLeaveRequestForAdminDto req) { - var jsonData = await _permission.GetPermissionWithActingAPIAsync("LIST", "SYS_LEAVE_LIST"); - //var jsonData = JsonConvert.DeserializeObject(getPermission); - if (jsonData!.status != 200) + var getPermission = await _permission.GetPermissionAPIAsync("LIST", "SYS_LEAVE_LIST"); + var jsonData = JsonConvert.DeserializeObject(getPermission); + if (jsonData["status"]?.ToString() != "200") { - return Error(jsonData.message, StatusCodes.Status403Forbidden); + return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); } - //string role = jsonData["result"]?.ToString(); - string role = jsonData.result.privilege; + + string role = jsonData["result"]?.ToString(); var nodeId = string.Empty; var profileAdmin = new GetUserOCAllDto(); profileAdmin = await _userProfileRepository.GetUserOCAll(Guid.Parse(UserId!), AccessToken); @@ -2177,82 +1993,6 @@ namespace BMA.EHR.Leave.Service.Controllers var rawData = await _leaveRequestRepository.GetCancelLeaveRequestForAdminAsync(req.Year, req.Type, req.Status, role, nodeId, profileAdmin?.Node); - // ถ้ามีการรักษาการ - if (jsonData.result.isAct) - { - var posActs = jsonData.result.posMasterActs; - foreach(var act in posActs) - { - var actRole = act.privilege; - string actNodeId = string.Empty; - int? actNode = null; - - if (role == "NORMAL" || role == "CHILD") - { - actNodeId = act.child4DnaId != null ? - act.child4DnaId.Value.ToString("D") : - act.child3DnaId != null ? - act.child3DnaId.Value.ToString("D") : - act.child2DnaId != null ? - act.child2DnaId.Value.ToString("D") : - act.child1DnaId != null ? - act.child1DnaId.Value.ToString("D") : - act.rootDnaId != null ? - act.rootDnaId.Value.ToString("D") : - ""; - actNode = act.child4DnaId != null ? - 4 : - act.child3DnaId != null ? - 3 : - act.child2DnaId != null ? - 2 : - act.child1DnaId != null ? - 1 : - act.rootDnaId != null ? - 0 : - null; - } - else if (role == "BROTHER") - { - actNodeId = act.child3DnaId != null ? - act.child3DnaId.Value.ToString("D") : - act.child2DnaId != null ? - act.child2DnaId.Value.ToString("D") : - act.child1DnaId != null ? - act.rootDnaId!.Value.ToString("D") : - act.rootDnaId != null ? - act.rootDnaId.Value.ToString("D") : - ""; - actNode = act.child4DnaId != null ? - 4 : - act.child3DnaId != null ? - 4 : - act.child2DnaId != null ? - 3 : - act.child1DnaId != null ? - 2 : - act.rootDnaId != null ? - 0 : - null; - } - else if (role == "ROOT" /*|| role == "PARENT"*/) - { - actNodeId = act.rootDnaId!.Value.ToString("D"); - actNode = 0; - } - - var rawDataAct = await _leaveRequestRepository.GetCancelLeaveRequestForAdminAsync(req.Year, req.Type, req.Status, actRole, actNodeId, actNode); - if (rawDataAct != null) - { - if (rawData != null) - rawData = rawData.Union(rawDataAct).ToList(); - else - rawData = rawDataAct; - } - } - } - - var recCount = rawData.Count; if (req.Keyword != "") @@ -2372,7 +2112,7 @@ namespace BMA.EHR.Leave.Service.Controllers } // var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(Guid.Parse(UserId!), AccessToken); - var profile = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(Guid.Parse(UserId!), AccessToken); + var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(Guid.Parse(UserId!), AccessToken); if (profile == null) { @@ -3017,7 +2757,7 @@ namespace BMA.EHR.Leave.Service.Controllers var rejectList = await _leaveRequestRepository.GetSumRejectLeaveAsync(thisYear); var deleteList = await _leaveRequestRepository.GetSumDeleteLeaveAsync(thisYear); // var pf = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); - var pf = await _userProfileRepository.GetProfileByKeycloakIdNew2Async(userId, AccessToken); + var pf = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken); if (pf == null) { diff --git a/BMA.EHR.Placement.Service/Controllers/PlacementController.cs b/BMA.EHR.Placement.Service/Controllers/PlacementController.cs index fbb6e2de..2a1e5399 100644 --- a/BMA.EHR.Placement.Service/Controllers/PlacementController.cs +++ b/BMA.EHR.Placement.Service/Controllers/PlacementController.cs @@ -903,49 +903,6 @@ namespace BMA.EHR.Placement.Service.Controllers return Success(); } - /// - /// API สำหรับยกเลิกการส่งตัว - /// - /// - /// - /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง - /// ไม่ได้ Login เข้าระบบ - /// เมื่อเกิดข้อผิดพลาดในการทำงาน - [HttpPost("update/draft-status")] - [ProducesResponseType(StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status400BadRequest)] - [ProducesResponseType(StatusCodes.Status401Unauthorized)] - [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public async Task> PersonUpdateDraftStatus([FromBody] PersonUpdateStatusRequest req) - { - var getPermission = await _permission.GetPermissionAPIAsync("UPDATE", "SYS_PLACEMENT_PASS"); - var jsonData = JsonConvert.DeserializeObject(getPermission); - if (jsonData["status"]?.ToString() != "200") - return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); - - string role = jsonData["result"]?.ToString(); - if (role != "OWNER") - return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); - - var person = await _context.PlacementProfiles - .FirstOrDefaultAsync(x => x.Id == req.PersonalId); - if (person == null) - return Error(GlobalMessages.DataNotFound, 404); - - if (person.PlacementStatus == "REPORT") - return Error("ไม่สามารถยกเลิกการส่งตัวได้ เนื่องจากส่งไปออกคำสั่งแล้ว"); - - if (person.PlacementStatus == "DONE") - return Error("ไม่สามารถยกเลิกการส่งตัวได้ เนื่องจากบรรจุไปแล้ว"); - - person.Draft = false; - person.LastUpdateFullName = FullName ?? "System Administrator"; - person.LastUpdateUserId = UserId ?? ""; - person.LastUpdatedAt = DateTime.Now; - await _context.SaveChangesAsync(); - return Success(); - } - [HttpGet("pass/deferment/{personalId:length(36)}")] public async Task> GetPersonDeferment(Guid personalId) { @@ -2045,7 +2002,7 @@ namespace BMA.EHR.Placement.Service.Controllers .Where(x => req.refIds.Contains(x.Id.ToString())) // .Where(x => x.PlacementStatus.ToUpper() == "REPORT") .ToListAsync(); - placementProfiles.ForEach(profile => profile.PlacementStatus = "PREPARE-CONTAIN"); + placementProfiles.ForEach(profile => profile.PlacementStatus = "PREPARE-CONTAI"); await _context.SaveChangesAsync(); return Success(); }