diff --git a/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs b/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs index dc8e94df..c8053ed5 100644 --- a/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs +++ b/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs @@ -3563,6 +3563,43 @@ namespace BMA.EHR.Retirement.Service.Controllers } } + + /// + /// แก้ไขข้อมูลการลาออกของข้าราชการ + /// + /// Id ลาออก + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("admin-update/resign-info/{id:length(36)}")] + public async Task> UpdateResignInfo([FromBody] RetirementUpdateResignInfoRequest req, Guid id) + { + var getPermission = await _permission.GetPermissionAPIAsync("UPDATE", "SYS_RESIGN"); + var jsonData = JsonConvert.DeserializeObject(getPermission); + if (jsonData["status"]?.ToString() != "200") + { + return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); + } + var updated = await _context.RetirementResigns.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == id); + if (updated == null) + return Error(GlobalMessages.RetirementResignNotFound, 404); + + updated.Location = !string.IsNullOrEmpty(req.Location) ? req.Location : updated.Location; + updated.ReasonResign = !string.IsNullOrEmpty(req.ReasonResign) ? req.ReasonResign : updated.ReasonResign; + updated.Remark = !string.IsNullOrEmpty(req.ReasonResign) && req.ReasonResign == "อื่น ๆ" && !string.IsNullOrEmpty(req.Remark) + ? req.Remark + : null; + updated.SendDate = req.SendDate.HasValue ? req.SendDate : updated.SendDate; + updated.ActiveDate = req.ActiveDate.HasValue ? req.ActiveDate : updated.ActiveDate; + updated.LastUpdateFullName = FullName ?? "System Administrator"; + updated.LastUpdateUserId = UserId ?? ""; + updated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + return Success(); + } #endregion } } diff --git a/BMA.EHR.Retirement.Service/Controllers/RetirementResignEmployeeController.cs b/BMA.EHR.Retirement.Service/Controllers/RetirementResignEmployeeController.cs index 60bf379a..cb9d382c 100644 --- a/BMA.EHR.Retirement.Service/Controllers/RetirementResignEmployeeController.cs +++ b/BMA.EHR.Retirement.Service/Controllers/RetirementResignEmployeeController.cs @@ -3030,5 +3030,42 @@ namespace BMA.EHR.Retirement.Service.Controllers } } + + /// + /// แก้ไขข้อมูลการลาออกของลูกจ้างประจำ + /// + /// Id ลาออก + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("admin-update/resign-info/{id:length(36)}")] + public async Task> UpdateResignInfo([FromBody] RetirementUpdateResignInfoRequest req, Guid id) + { + var getPermission = await _permission.GetPermissionAPIAsync("UPDATE", "SYS_RESIGN_EMP"); + var jsonData = JsonConvert.DeserializeObject(getPermission); + if (jsonData["status"]?.ToString() != "200") + { + return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); + } + var updated = await _context.RetirementResignEmployees.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == id); + if (updated == null) + return Error(GlobalMessages.RetirementResignNotFound, 404); + + updated.Location = !string.IsNullOrEmpty(req.Location) ? req.Location : updated.Location; + updated.ReasonResign = !string.IsNullOrEmpty(req.ReasonResign) ? req.ReasonResign : updated.ReasonResign; + updated.Remark = !string.IsNullOrEmpty(req.ReasonResign) && req.ReasonResign == "อื่น ๆ" && !string.IsNullOrEmpty(req.Remark) + ? req.Remark + : null; + updated.SendDate = req.SendDate.HasValue ? req.SendDate : updated.SendDate; + updated.ActiveDate = req.ActiveDate.HasValue ? req.ActiveDate : updated.ActiveDate; + updated.LastUpdateFullName = FullName ?? "System Administrator"; + updated.LastUpdateUserId = UserId ?? ""; + updated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + return Success(); + } } } diff --git a/BMA.EHR.Retirement.Service/Requests/RetirementUpdateResignInfoRequest.cs b/BMA.EHR.Retirement.Service/Requests/RetirementUpdateResignInfoRequest.cs new file mode 100644 index 00000000..c4dfb304 --- /dev/null +++ b/BMA.EHR.Retirement.Service/Requests/RetirementUpdateResignInfoRequest.cs @@ -0,0 +1,14 @@ +using BMA.EHR.Domain.Models.MetaData; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Retirement.Service.Requests +{ + public class RetirementUpdateResignInfoRequest + { + public string? Location { get; set; } + public string? ReasonResign { get; set; } + public string? Remark { get; set; } + public DateTime? SendDate { get; set; } + public DateTime? ActiveDate { get; set; } + } +}