diff --git a/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs
index 7cd12fe4..c4b44943 100644
--- a/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs
+++ b/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs
@@ -668,6 +668,59 @@ namespace BMA.EHR.Leave.Service.Controllers
return Success(new { data = pageResult, total = result.Count });
}
+
+ ///
+ /// LV2_006 - รายละเอียดการยกเลิกการลา (USER/ADMIN)
+ ///
+ ///
+ ///
+ /// เมื่อทำรายการสำเร็จ
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("user/delete/{id:guid}")]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+ [ProducesResponseType(StatusCodes.Status500InternalServerError)]
+ public async Task> GetCancelLeaveRequestByIdAsync(Guid id)
+ {
+ var rawData = await _leaveRequestRepository.GetByIdAsync(id);
+
+ var thisYear = DateTime.Now.Year;
+
+ if (rawData == null)
+ {
+ return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
+ }
+
+ var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId);
+
+ if (profile == null)
+ {
+ return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
+ }
+
+
+
+ var result = new GetCancelLeaveRequestByIdDto
+ {
+ Id = rawData.Id,
+ LeaveTypeName = rawData.Type.Name,
+ FullName = $"{profile.Prefix.Name}{profile.FirstName} {profile.LastName}",
+ Status = rawData.LeaveCancelStatus,
+ LeaveStartDate = rawData.LeaveStartDate,
+ LeaveEndDate = rawData.LeaveEndDate,
+ LeaveWrote = rawData.LeaveWrote,
+ LeaveAddress = rawData.LeaveAddress,
+ LeaveNumber = rawData.LeaveNumber,
+ LeaveDetail = rawData.LeaveDetail,
+ LeaveDocDelete = await _minIOService.ImagesPath(rawData.LeaveCancelDocument.Id),
+ LeaveReasonDelete = rawData.LeaveCancelComment ?? "",
+ LeaveTotal = rawData.LeaveTotal,
+ };
+
+ return Success(result);
+ }
+
#endregion
}
}
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetCancelLeaveRequestByIdDto.cs b/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetCancelLeaveRequestByIdDto.cs
new file mode 100644
index 00000000..2859ba6f
--- /dev/null
+++ b/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetCancelLeaveRequestByIdDto.cs
@@ -0,0 +1,31 @@
+namespace BMA.EHR.Leave.Service.DTOs.LeaveRequest
+{
+ public class GetCancelLeaveRequestByIdDto
+ {
+ public Guid Id { get; set; } = Guid.Empty;
+
+ public string LeaveTypeName { get; set; } = string.Empty;
+
+ public string FullName { get; set; } = string.Empty;
+
+ public string Status { get; set; } = string.Empty;
+
+ public string LeaveDocDelete { get; set; } = string.Empty;
+
+ public string LeaveReasonDelete { get; set; } = string.Empty;
+
+ public string LeaveWrote { get; set; } = string.Empty;
+
+ public string LeaveAddress { get; set; } = string.Empty;
+
+ public string LeaveNumber { get; set; } = string.Empty;
+
+ public string LeaveDetail { get; set; } = string.Empty;
+
+ public double LeaveTotal { get; set; } = 0;
+
+ public DateTime LeaveStartDate { get; set; } = DateTime.MinValue;
+
+ public DateTime LeaveEndDate { get; set;} = DateTime.MinValue;
+ }
+}