fix defect

เพิ่ม api ตาม spec ใหม่
This commit is contained in:
Suphonchai Phoonsawat 2024-01-15 10:52:39 +07:00
parent 4f32e253fd
commit 82e6ce6d11
7 changed files with 166 additions and 18 deletions

View file

@ -14,6 +14,7 @@ using System.Security.Claims;
using BMA.EHR.Application.Repositories.Commands;
using BMA.EHR.Application.Repositories.Leaves.TimeAttendants;
using Org.BouncyCastle.Ocsp;
using System.Runtime.CompilerServices;
namespace BMA.EHR.Leave.Service.Controllers
{
@ -390,6 +391,11 @@ namespace BMA.EHR.Leave.Service.Controllers
ApproveStep = oldData.ApproveStep
};
// assign old upload documents to new request
leaveRequest.LeaveDraftDocument = oldData.LeaveDraftDocument;
leaveRequest.LeaveDocument.AddRange(oldData.LeaveDocument);
leaveRequest.LeaveCancelDocument = oldData.LeaveCancelDocument;
// get leave last
leaveRequest.LeaveLast = await _leaveRequestRepository.GetLeaveLastByTypeForUserAsync(userId, req.Type);
@ -526,7 +532,9 @@ namespace BMA.EHR.Leave.Service.Controllers
leaveRequest.PositionLevelName = profile.PositionLevel == null ? "" : profile.PositionLevel.Name;
leaveRequest.OrganizationName = profile.Oc ?? "";
// delet old
// delete old
await _leaveRequestRepository.DeleteAsync(oldData);
// save to database
@ -535,6 +543,35 @@ namespace BMA.EHR.Leave.Service.Controllers
return Success(new { id = leaveRequest.Id });
}
/// <summary>
/// LV2_038 - ลบรายการการลา (USER)
/// </summary>
/// <returns>
/// </returns>
/// <response code="200">เมื่อทำรายการสำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpDelete("user/{id:guid}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> DeleteLeaveRequestAsync(Guid id)
{
var deleted = await _leaveRequestRepository.GetByIdAsync(id);
if (deleted == null)
return Error(GlobalMessages.DataNotFound);
if (deleted.LeaveStatus != "DRAFT")
{
return Error("ไม่สามารถลบคำร้องขอลาที่นำส่งแล้วได้");
}
await _leaveRequestRepository.DeleteAsync(deleted);
return Success();
}
/// <summary>
/// LV2_002 - ข้อมูลที่ user ขอยื่นลา (USER)
/// </summary>
@ -880,7 +917,11 @@ namespace BMA.EHR.Leave.Service.Controllers
foreach (var d in rawData.LeaveDocument)
{
var file = await _minIOService.ImagesPath(d.Document.Id);
result.LeaveDocument.Add(file);
result.LeaveDocument.Add(new LeaveDocumentDto
{
DocId = d.Document.Id,
Path = file
});
}
}
@ -1375,7 +1416,11 @@ namespace BMA.EHR.Leave.Service.Controllers
foreach (var d in rawData.LeaveDocument)
{
var file = await _minIOService.ImagesPath(d.Document.Id);
result.LeaveDocument.Add(file);
result.LeaveDocument.Add(new LeaveDocumentDto
{
DocId = d.Document.Id,
Path = file
});
}
}
@ -1434,6 +1479,36 @@ namespace BMA.EHR.Leave.Service.Controllers
return Success(result);
}
/// <summary>
/// LV2_037 - ลบเอกสารประกอบรายละเอียดการลา (USER)
/// </summary>
/// <returns>
/// </returns>
/// <response code="200">เมื่อทำรายการสำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpDelete("user/file/document/{id:guid}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> DeleteLeaveDocumentByIdAsync(Guid id, [FromBody] DeleteLeaveDocumentDto req)
{
var leaveReq = await _leaveRequestRepository.GetByIdAsync(id);
if (leaveReq == null)
return Error(GlobalMessages.DataNotFound);
var doc = leaveReq.LeaveDocument.Where(x => x.Document.Id == req.DocId).FirstOrDefault();
if (doc != null)
{
await _minIOService.DeleteFileAsync(doc.Document.Id);
await _leaveRequestRepository.DeleteLeaveDocumentAsync(doc.Id);
return Success();
}
else
return Error("Document not found");
}
#endregion
}
}