เพิี่มขั้นตอนการอนุมัติใบลา โดยดึงข้อมูลจากตาราง approver

This commit is contained in:
Suphonchai Phoonsawat 2025-04-22 15:35:10 +07:00
parent ddc3d268be
commit e635e4ff61
2 changed files with 339 additions and 128 deletions

View file

@ -1815,15 +1815,57 @@ namespace BMA.EHR.Leave.Service.Controllers
public async Task<ActionResult<ResponseObject>> CommanderApproveLeaveRequestAsync(Guid id,
[FromBody] LeaveRequestApproveDto req)
{
var getPermission = await _permission.GetPermissionAPIAsync("UPDATE", "SYS_LEAVE_LIST");
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission);
if (jsonData["status"]?.ToString() != "200")
try
{
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
}
await _leaveRequestRepository.CommanderApproveLeaveRequest(id, req.Reason ?? "");
var getPermission = await _permission.GetPermissionAPIAsync("UPDATE", "SYS_LEAVE_LIST");
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission);
if (jsonData["status"]?.ToString() != "200")
{
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
}
await _leaveRequestRepository.CommanderApproveLeaveRequest(id, req.Reason ?? "");
return Success();
}
catch(Exception ex)
{
return Error(ex);
}
}
/// <summary>
/// ผู้บังคับบัญชาไม่อนุมัติการลา(ADMIN)
/// </summary>
/// <returns>
/// </returns>
/// <response code="200">เมื่อทำรายการสำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPut("admin/reject/comander/{id:guid}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> CommanderRejectLeaveRequestAsync(Guid id,
[FromBody] LeaveRequestApproveDto req)
{
try
{
var getPermission = await _permission.GetPermissionAPIAsync("UPDATE", "SYS_LEAVE_LIST");
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission);
if (jsonData["status"]?.ToString() != "200")
{
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
}
await _leaveRequestRepository.CommanderRejectLeaveRequest(id, req.Reason ?? "");
return Success();
}
catch (Exception ex)
{
return Error(ex);
}
return Success();
}
/// <summary>
@ -1841,15 +1883,23 @@ namespace BMA.EHR.Leave.Service.Controllers
public async Task<ActionResult<ResponseObject>> ApproveLeaveRequestAsync(Guid id,
[FromBody] LeaveRequestApproveDto req)
{
var getPermission = await _permission.GetPermissionAPIAsync("UPDATE", "SYS_LEAVE_LIST");
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission);
if (jsonData["status"]?.ToString() != "200")
try
{
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
}
await _leaveRequestRepository.ApproveLeaveRequest(id, req.Reason ?? "");
var getPermission = await _permission.GetPermissionAPIAsync("UPDATE", "SYS_LEAVE_LIST");
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission);
if (jsonData["status"]?.ToString() != "200")
{
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
}
await _leaveRequestRepository.ApproveLeaveRequest(id, req.Reason ?? "");
return Success();
return Success();
}
catch (Exception ex)
{
return Error(ex);
}
}
/// <summary>
@ -1934,15 +1984,23 @@ namespace BMA.EHR.Leave.Service.Controllers
public async Task<ActionResult<ResponseObject>> RejectLeaveRequestAsync(Guid id,
[FromBody] LeaveRequestApproveDto req)
{
var getPermission = await _permission.GetPermissionAPIAsync("UPDATE", "SYS_LEAVE_LIST");
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission);
if (jsonData["status"]?.ToString() != "200")
try
{
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
}
await _leaveRequestRepository.RejectLeaveRequest(id, req.Reason ?? "");
var getPermission = await _permission.GetPermissionAPIAsync("UPDATE", "SYS_LEAVE_LIST");
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission);
if (jsonData["status"]?.ToString() != "200")
{
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
}
await _leaveRequestRepository.RejectLeaveRequest(id, req.Reason ?? "");
return Success();
return Success();
}
catch (Exception ex)
{
return Error(ex);
}
}
/// <summary>