เพิ่ม API การเจ้าหน้าที่แก้ไขข้อมูลการขอลาออกได้หาก สถานะเป็น ใหม่ (NEW) #1714
Some checks failed
release-dev / release-dev (push) Failing after 11s

This commit is contained in:
Bright 2025-07-31 14:52:04 +07:00
parent e3a57b0159
commit 23d86f632e
3 changed files with 88 additions and 0 deletions

View file

@ -3563,6 +3563,43 @@ namespace BMA.EHR.Retirement.Service.Controllers
}
}
/// <summary>
/// แก้ไขข้อมูลการลาออกของข้าราชการ
/// </summary>
/// <param name="id">Id ลาออก</param>
/// <returns></returns>
/// <response code="200"></response>
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPut("admin-update/resign-info/{id:length(36)}")]
public async Task<ActionResult<ResponseObject>> UpdateResignInfo([FromBody] RetirementUpdateResignInfoRequest req, Guid id)
{
var getPermission = await _permission.GetPermissionAPIAsync("UPDATE", "SYS_RESIGN");
var jsonData = JsonConvert.DeserializeObject<JObject>(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
}
}

View file

@ -3030,5 +3030,42 @@ namespace BMA.EHR.Retirement.Service.Controllers
}
}
/// <summary>
/// แก้ไขข้อมูลการลาออกของลูกจ้างประจำ
/// </summary>
/// <param name="id">Id ลาออก</param>
/// <returns></returns>
/// <response code="200"></response>
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPut("admin-update/resign-info/{id:length(36)}")]
public async Task<ActionResult<ResponseObject>> UpdateResignInfo([FromBody] RetirementUpdateResignInfoRequest req, Guid id)
{
var getPermission = await _permission.GetPermissionAPIAsync("UPDATE", "SYS_RESIGN_EMP");
var jsonData = JsonConvert.DeserializeObject<JObject>(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();
}
}
}

View file

@ -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; }
}
}