diff --git a/BMA.EHR.Placement.Service/Controllers/PlacementController.cs b/BMA.EHR.Placement.Service/Controllers/PlacementController.cs
index 2a1e5399..e8970095 100644
--- a/BMA.EHR.Placement.Service/Controllers/PlacementController.cs
+++ b/BMA.EHR.Placement.Service/Controllers/PlacementController.cs
@@ -903,6 +903,49 @@ 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)
{