API ลบรายการเฉพาะสิทธิ์ OWNER #1586
This commit is contained in:
parent
3f98e07419
commit
dc5ac329e2
7 changed files with 268 additions and 2 deletions
|
|
@ -932,6 +932,60 @@ namespace BMA.EHR.Placement.Service.Controllers
|
|||
return Success();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// API ลบรายการคำขอโอน (ADMIN)
|
||||
/// </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>
|
||||
[HttpDelete("admin/{id:length(36)}")]
|
||||
public async Task<ActionResult<ResponseObject>> DeleteForAdminAsync(Guid id)
|
||||
{
|
||||
var jsonData = await _permission.GetPermissionWithActingAPIAsync("DELETE", "SYS_TRANSFER_REQ");
|
||||
if (jsonData!.status != 200)
|
||||
{
|
||||
return Error(jsonData.message, StatusCodes.Status403Forbidden);
|
||||
}
|
||||
// ตรวจสอบว่า role ต้องเป็น OWNER เท่านั้น
|
||||
if (jsonData.result.privilege != "OWNER")
|
||||
{
|
||||
return Error("ไม่มีสิทธิ์ในการลบรายการคำขอโอน", StatusCodes.Status403Forbidden);
|
||||
}
|
||||
var deleted = await _context.PlacementTransfers.AsQueryable()
|
||||
.Include(x => x.PlacementTransferDocs)
|
||||
.ThenInclude(x => x.Document)
|
||||
.FirstOrDefaultAsync(x => x.Id == id);
|
||||
if (deleted == null)
|
||||
return NotFound();
|
||||
|
||||
// ห้ามลบเฉพาะสถานะ REPORT, WAITING, DONE
|
||||
if (new[] { "REPORT", "WAITING", "DONE" }.Contains(deleted.Status))
|
||||
{
|
||||
return Error("ไม่สามารถลบรายการคำขอโอนสถานะนี้ได้");
|
||||
}
|
||||
|
||||
var placementTransferDocs = new List<dynamic>();
|
||||
foreach (var doc in deleted.PlacementTransferDocs)
|
||||
{
|
||||
if (doc.Document != null)
|
||||
placementTransferDocs.Add(doc.Document.Id);
|
||||
}
|
||||
_context.PlacementTransferDocs.RemoveRange(deleted.PlacementTransferDocs);
|
||||
await _context.SaveChangesAsync();
|
||||
_context.PlacementTransfers.Remove(deleted);
|
||||
foreach (var doc in placementTransferDocs)
|
||||
{
|
||||
if (doc != null)
|
||||
await _documentService.DeleteFileAsync(doc);
|
||||
}
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
return Success();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// สั่งรายชื่อไปออกคำสั่ง
|
||||
/// </summary>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue