From 28b573bfb8bebbcd30d26275f33584c9abf29ebe Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Thu, 17 Apr 2025 10:58:09 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=9A=E0=B8=B1=E0=B8=99=E0=B8=97=E0=B8=B6?= =?UTF-8?q?=E0=B8=81=E0=B8=9C=E0=B8=B9=E0=B9=89=E0=B8=AD=E0=B8=99=E0=B8=B8?= =?UTF-8?q?=E0=B8=A1=E0=B8=B1=E0=B8=95=E0=B8=B4=E0=B8=81=E0=B8=B2=E0=B8=A3?= =?UTF-8?q?=E0=B8=A5=E0=B8=B2=20=E0=B9=82=E0=B9=82=E0=B8=A2=E0=B9=81?= =?UTF-8?q?=E0=B8=9B=E0=B8=A5=E0=B8=87=20json=20=E0=B8=97=E0=B8=B5?= =?UTF-8?q?=E0=B9=88=E0=B8=A1=E0=B8=B2=E0=B8=88=E0=B8=B2=E0=B8=81=20FormDa?= =?UTF-8?q?ta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/LeaveRequestController.cs | 29 +++++++++++++++++-- .../LeaveRequest/CreateLeaveRequestDto.cs | 28 +++++++++++++++++- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs index 25a391de..632d5e4e 100644 --- a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs @@ -20,6 +20,7 @@ using Swashbuckle.AspNetCore.Annotations; using System.Net.Http.Headers; using System.Security.Claims; using System.Security.Policy; +using System.Text.Json.Nodes; namespace BMA.EHR.Leave.Service.Controllers { @@ -170,7 +171,7 @@ namespace BMA.EHR.Leave.Service.Controllers var leaveRequest = new LeaveRequest { Type = leaveType, - + LeaveSubTypeName = req.LeaveSubTypeName, LeaveRange = req.LeaveRange, LeaveStartDate = req.LeaveStartDate, @@ -366,6 +367,30 @@ namespace BMA.EHR.Leave.Service.Controllers leaveRequest.PositionLevelName = profile.PosLevel == null ? "" : profile.PosLevel; leaveRequest.OrganizationName = userOc; + if (req.Approvers != null && req.Approvers != "") + { + //var jsonString = System.Text.Json.JsonSerializer.Deserialize(req.Approvers ?? ""); + //var fixedJson = req.Approvers.Replace("\\\"", "\""); + var approvers = JsonConvert.DeserializeObject>(req.Approvers); + if (approver != null) + { + foreach (var r in approvers!) + { + leaveRequest.Approvers.Add(new LeaveRequestApprover + { + Seq = r.Seq, + Prefix = r.Prefix, + FirstName = r.FirstName, + LastName = r.LastName, + PositionName = r.PositionName, + ProfileId = r.ProfileId, + KeycloakId = r.KeycloakId, + ApproveStatus = "PENDING", + }); + } + } + + } // save to database @@ -1989,7 +2014,7 @@ namespace BMA.EHR.Leave.Service.Controllers // เปลี่ยนมาอ่านจากฐานข้อมูลแทน read_db Dear = rawData.Dear ?? "", - CommanderPosition = rawData.CommanderPosition ?? "", + CommanderPosition = rawData.CommanderPosition ?? "", PositionName = rawData.PositionName ?? "", PositionLevelName = rawData.PositionLevelName ?? "", OrganizationName = orgName, diff --git a/BMA.EHR.Leave/DTOs/LeaveRequest/CreateLeaveRequestDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/CreateLeaveRequestDto.cs index e5e19cef..c431388d 100644 --- a/BMA.EHR.Leave/DTOs/LeaveRequest/CreateLeaveRequestDto.cs +++ b/BMA.EHR.Leave/DTOs/LeaveRequest/CreateLeaveRequestDto.cs @@ -1,4 +1,6 @@ -using System.ComponentModel.DataAnnotations; +using BMA.EHR.Domain.Models.Base; +using Newtonsoft.Json; +using System.ComponentModel.DataAnnotations; namespace BMA.EHR.Leave.Service.DTOs.LeaveRequest { @@ -99,6 +101,30 @@ namespace BMA.EHR.Leave.Service.DTOs.LeaveRequest public string? CoupleDaySumTotalHistory { get; set; } + public string? Approvers { get; set; } = string.Empty; + } + public class LeaveRequestApproverDto + { + [JsonProperty("seq")] + public int Seq { get; set; } = 0; + + [JsonProperty("prefix")] + public string Prefix { get; set; } = string.Empty; + + [JsonProperty("firstName")] + public string FirstName { get; set; } = string.Empty; + + [JsonProperty("lastName")] + public string LastName { get; set; } = string.Empty; + + [JsonProperty("positionName")] + public string PositionName { get; set; } = string.Empty; + + [JsonProperty("profileId")] + public Guid ProfileId { get; set; } = Guid.Empty; + + [JsonProperty("keycloakId")] + public Guid KeycloakId { get; set; } = Guid.Empty; } }