diff --git a/BMA.EHR.Leave.Service/Controllers/LeaveController.cs b/BMA.EHR.Leave.Service/Controllers/LeaveController.cs index 03f9798a..a2492cd6 100644 --- a/BMA.EHR.Leave.Service/Controllers/LeaveController.cs +++ b/BMA.EHR.Leave.Service/Controllers/LeaveController.cs @@ -1551,10 +1551,42 @@ namespace BMA.EHR.Leave.Service.Controllers return Success(); } - - #endregion - - #endregion } + + #endregion + + #region " แก้ไขสถานะการลงเวลา " + + /// + /// LV1_025 - บันทึกแก้ไขสถานะการเข้า-ออกงาน (ADMIN) + /// + /// + /// + /// เมื่อทำรายการสำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("admin/edit/checkin/{id:guid}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> EditCheckInStatusAsync(Guid id, [FromQuery] EditCheckInStatusDto req) + { + var data = await _processUserTimeStampRepository.GetByIdAsync(id); + if (data == null) + return Error(GlobalMessages.DataNotFound); + + data.CheckInStatus = req.CheckInStatus; + data.CheckInStatus = req.CheckOutStatus; + data.EditReason = req.Reason; + + await _processUserTimeStampRepository.UpdateAsync(data); + + return Success(); + } + + #endregion + + #endregion + } } diff --git a/BMA.EHR.Leave.Service/DTOs/CheckIn/EditCheckInStatusDto.cs b/BMA.EHR.Leave.Service/DTOs/CheckIn/EditCheckInStatusDto.cs new file mode 100644 index 00000000..c431c3b7 --- /dev/null +++ b/BMA.EHR.Leave.Service/DTOs/CheckIn/EditCheckInStatusDto.cs @@ -0,0 +1,15 @@ +using System.ComponentModel.DataAnnotations; + +namespace BMA.EHR.Leave.Service.DTOs.CheckIn +{ + public class EditCheckInStatusDto + { + [Required] + public string CheckInStatus { get; set; } = string.Empty; + + [Required] + public string CheckOutStatus { get; set; } = string.Empty; + + public string? Reason { get; set; } = string.Empty; + } +} \ No newline at end of file