remove workflow retire

This commit is contained in:
kittapath 2025-06-11 10:58:47 +07:00
parent 61407c342b
commit afb2cfa189
4 changed files with 1070 additions and 425 deletions

View file

@ -625,7 +625,7 @@ namespace BMA.EHR.Application.Repositories
Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ",
ReceiverUserId = _firstCommander!.ProfileId, ReceiverUserId = _firstCommander!.ProfileId,
Type = "", Type = "",
Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.RetirementResignEmployee.Id}", Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.Id}",
}; };
_dbContext.Set<Notification>().Add(_noti1); _dbContext.Set<Notification>().Add(_noti1);
} }
@ -643,7 +643,7 @@ namespace BMA.EHR.Application.Repositories
Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ",
ReceiverUserId = firstCommander!.ProfileId, ReceiverUserId = firstCommander!.ProfileId,
Type = "", Type = "",
Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.RetirementResignEmployee.Id}", Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.Id}",
}; };
_dbContext.Set<Notification>().Add(noti1); _dbContext.Set<Notification>().Add(noti1);
await _dbContext.SaveChangesAsync(); await _dbContext.SaveChangesAsync();
@ -731,7 +731,7 @@ namespace BMA.EHR.Application.Repositories
Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ",
ReceiverUserId = nextApprover!.ProfileId, ReceiverUserId = nextApprover!.ProfileId,
Type = "", Type = "",
Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.RetirementResignEmployee.Id}", Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.Id}",
}; };
_dbContext.Set<Notification>().Add(noti); _dbContext.Set<Notification>().Add(noti);
await _dbContext.SaveChangesAsync(); await _dbContext.SaveChangesAsync();
@ -758,7 +758,7 @@ namespace BMA.EHR.Application.Repositories
Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ",
ReceiverUserId = firstCommander!.ProfileId, ReceiverUserId = firstCommander!.ProfileId,
Type = "", Type = "",
Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.RetirementResignEmployee.Id}", Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.Id}",
}; };
_dbContext.Set<Notification>().Add(noti1); _dbContext.Set<Notification>().Add(noti1);
await _dbContext.SaveChangesAsync(); await _dbContext.SaveChangesAsync();
@ -820,7 +820,7 @@ namespace BMA.EHR.Application.Repositories
Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ",
ReceiverUserId = nextApprover!.ProfileId, ReceiverUserId = nextApprover!.ProfileId,
Type = "", Type = "",
Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.RetirementResignEmployee.Id}", Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.Id}",
}; };
_dbContext.Set<Notification>().Add(noti); _dbContext.Set<Notification>().Add(noti);
@ -848,7 +848,7 @@ namespace BMA.EHR.Application.Repositories
Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ",
ReceiverUserId = firstCommander!.ProfileId, ReceiverUserId = firstCommander!.ProfileId,
Type = "", Type = "",
Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.RetirementResignEmployee.Id}", Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.Id}",
}; };
_dbContext.Set<Notification>().Add(noti1); _dbContext.Set<Notification>().Add(noti1);
await _dbContext.SaveChangesAsync(); await _dbContext.SaveChangesAsync();

View file

@ -550,7 +550,7 @@ namespace BMA.EHR.Application.Repositories
Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ",
ReceiverUserId = _firstCommander!.ProfileId, ReceiverUserId = _firstCommander!.ProfileId,
Type = "", Type = "",
Payload = $"{URL}/retirement/resign-detail-reject/{rawData.RetirementResign.Id}", Payload = $"{URL}/retirement/resign-detail-reject/{rawData.Id}",
}; };
_dbContext.Set<Notification>().Add(_noti1); _dbContext.Set<Notification>().Add(_noti1);
} }
@ -566,7 +566,7 @@ namespace BMA.EHR.Application.Repositories
Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ",
ReceiverUserId = firstCommander!.ProfileId, ReceiverUserId = firstCommander!.ProfileId,
Type = "", Type = "",
Payload = $"{URL}/retirement/resign-detail-reject/{rawData.RetirementResign.Id}", Payload = $"{URL}/retirement/resign-detail-reject/{rawData.Id}",
}; };
_dbContext.Set<Notification>().Add(noti1); _dbContext.Set<Notification>().Add(noti1);
await _dbContext.SaveChangesAsync(); await _dbContext.SaveChangesAsync();
@ -626,7 +626,7 @@ namespace BMA.EHR.Application.Repositories
Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ",
ReceiverUserId = nextApprover!.ProfileId, ReceiverUserId = nextApprover!.ProfileId,
Type = "", Type = "",
Payload = $"{URL}/retirement/resign-detail-reject/{rawData.RetirementResign.Id}", Payload = $"{URL}/retirement/resign-detail-reject/{rawData.Id}",
}; };
_dbContext.Set<Notification>().Add(noti); _dbContext.Set<Notification>().Add(noti);
await _dbContext.SaveChangesAsync(); await _dbContext.SaveChangesAsync();
@ -650,7 +650,7 @@ namespace BMA.EHR.Application.Repositories
Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ",
ReceiverUserId = firstCommander!.ProfileId, ReceiverUserId = firstCommander!.ProfileId,
Type = "", Type = "",
Payload = $"{URL}/retirement/resign-detail-reject/{rawData.RetirementResign.Id}", Payload = $"{URL}/retirement/resign-detail-reject/{rawData.Id}",
}; };
_dbContext.Set<Notification>().Add(noti1); _dbContext.Set<Notification>().Add(noti1);
} }
@ -713,7 +713,7 @@ namespace BMA.EHR.Application.Repositories
Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ",
ReceiverUserId = nextApprover!.ProfileId, ReceiverUserId = nextApprover!.ProfileId,
Type = "", Type = "",
Payload = $"{URL}/retirement/resign-detail-reject/{rawData.RetirementResign.Id}", Payload = $"{URL}/retirement/resign-detail-reject/{rawData.Id}",
}; };
_dbContext.Set<Notification>().Add(noti); _dbContext.Set<Notification>().Add(noti);
@ -742,7 +742,7 @@ namespace BMA.EHR.Application.Repositories
Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ",
ReceiverUserId = firstCommander!.ProfileId, ReceiverUserId = firstCommander!.ProfileId,
Type = "", Type = "",
Payload = $"{URL}/retirement/resign-detail-reject/{rawData.RetirementResign.Id}", Payload = $"{URL}/retirement/resign-detail-reject/{rawData.Id}",
}; };
_dbContext.Set<Notification>().Add(noti1); _dbContext.Set<Notification>().Add(noti1);
} }

View file

@ -349,179 +349,165 @@ namespace BMA.EHR.Retirement.Service.Controllers
return Error(GlobalMessages.RetirementResignNotFound, 404); return Error(GlobalMessages.RetirementResignNotFound, 404);
// if (dataMain.IsCancel != true) // if (dataMain.IsCancel != true)
// { // {
var getWorkflow = await _permission.GetPermissionAPIWorkflowAsync(id.ToString(), "SYS_RESIGN"); var data = await _context.RetirementResigns.AsQueryable()
var createdUserId = await _context.RetirementResigns.AsQueryable() .Where(x => x.Id == id)
.Where(x => x.Id == id) .Select(p => new
.Where(x => x.CreatedUserId == UserId) {
.FirstOrDefaultAsync(); p.Id,
if (getWorkflow == false && createdUserId == null) p.prefix,
{ p.firstName,
var getPermission = await _permission.GetPermissionAPIAsync("GET", "SYS_RESIGN"); p.lastName,
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission); p.profileId,
if (jsonData["status"]?.ToString() != "200") p.Location,
{ p.SendDate,
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); p.ActiveDate,
} p.Reason,
} p.ReasonResign,
var data = await _context.RetirementResigns.AsQueryable() p.Remark,
.Where(x => x.Id == id) p.Status,
.Select(p => new salary = p.AmountOld,
{ p.ApproveReason,
p.Id, p.RejectReason,
p.prefix, p.IsActive,
p.firstName, p.CreatedAt,
p.lastName, p.PositionTypeOld,
p.profileId, p.PositionLevelOld,
p.Location, p.PositionNumberOld,
p.SendDate, p.OrganizationPositionOld,
p.ActiveDate, p.OligarchReject,
p.Reason, p.OligarchApproveReason,
p.ReasonResign, p.OligarchRejectReason,
p.Remark, p.OligarchRejectDate,
p.Status, p.CommanderReject,
salary = p.AmountOld, p.CommanderApproveReason,
p.ApproveReason, p.CommanderRejectReason,
p.RejectReason, p.CommanderRejectDate,
p.IsActive, p.OfficerReject,
p.CreatedAt, p.OfficerApproveReason,
p.PositionTypeOld, p.OfficerRejectReason,
p.PositionLevelOld, p.OfficerRejectDate,
p.PositionNumberOld, p.RemarkHorizontal,
p.OrganizationPositionOld, p.rootOld,
p.OligarchReject, p.rootOldId,
p.OligarchApproveReason, p.rootShortNameOld,
p.OligarchRejectReason, p.child1Old,
p.OligarchRejectDate, p.child1OldId,
p.CommanderReject, p.child1ShortNameOld,
p.CommanderApproveReason, p.child2Old,
p.CommanderRejectReason, p.child2OldId,
p.CommanderRejectDate, p.child2ShortNameOld,
p.OfficerReject, p.child3Old,
p.OfficerApproveReason, p.child3OldId,
p.OfficerRejectReason, p.child3ShortNameOld,
p.OfficerRejectDate, p.child4Old,
p.RemarkHorizontal, p.child4OldId,
p.rootOld, p.child4ShortNameOld,
p.rootOldId, p.PositionOld,
p.rootShortNameOld, p.posMasterNoOld,
p.child1Old, p.posTypeOldId,
p.child1OldId, p.posTypeNameOld,
p.child1ShortNameOld, p.posLevelOldId,
p.child2Old, p.posLevelNameOld,
p.child2OldId, p.IsNoDebt,
p.child2ShortNameOld, p.IsNoBurden,
p.child3Old, p.IsDiscipline,
p.child3OldId, p.CancelReason,
p.child3ShortNameOld, p.ApproveStep,
p.child4Old, p.Group,
p.child4OldId, Approvers = p.Approvers.Where(x => x.ApproveType.ToUpper() == "APPROVER"),
p.child4ShortNameOld, Commanders = p.Approvers.Where(x => x.ApproveType.ToUpper() == "COMMANDER"),
p.PositionOld, KeycloakUserId = p.CreatedUserId,
p.posMasterNoOld, RetirementResignCancels = p.RetirementResignCancels.FirstOrDefault(),
p.posTypeOldId, RetirementResignDocs = p.RetirementResignDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
p.posTypeNameOld, })
p.posLevelOldId, .FirstOrDefaultAsync();
p.posLevelNameOld, if (data == null)
p.IsNoDebt, return Error(GlobalMessages.RetirementResignNotFound, 404);
p.IsNoBurden,
p.IsDiscipline,
p.CancelReason,
p.ApproveStep,
p.Group,
Approvers = p.Approvers.Where(x => x.ApproveType.ToUpper() == "APPROVER"),
Commanders = p.Approvers.Where(x => x.ApproveType.ToUpper() == "COMMANDER"),
KeycloakUserId = p.CreatedUserId,
RetirementResignCancels = p.RetirementResignCancels.FirstOrDefault(),
RetirementResignDocs = p.RetirementResignDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
})
.FirstOrDefaultAsync();
if (data == null)
return Error(GlobalMessages.RetirementResignNotFound, 404);
var retirementResignDocs = new List<dynamic>(); var retirementResignDocs = new List<dynamic>();
foreach (var doc in data.RetirementResignDocs) foreach (var doc in data.RetirementResignDocs)
{
var _doc = new
{ {
var _doc = new FileName = doc.FileName,
{ PathName = await _documentService.ImagesPath(doc.Id),
FileName = doc.FileName, doc.Id,
PathName = await _documentService.ImagesPath(doc.Id),
doc.Id,
};
retirementResignDocs.Add(_doc);
}
var _data = new
{
data.Id,
data.profileId,
data.prefix,
data.firstName,
data.lastName,
data.Location,
data.SendDate,
data.ActiveDate,
data.Reason,
data.ReasonResign,
data.Remark,
data.Status,
data.salary,
data.PositionTypeOld,
data.PositionLevelOld,
data.PositionNumberOld,
data.OrganizationPositionOld,
data.ApproveReason,
data.RejectReason,
data.IsActive,
data.CreatedAt,
data.OligarchReject,
data.OligarchApproveReason,
data.OligarchRejectReason,
data.OligarchRejectDate,
data.CommanderReject,
data.CommanderApproveReason,
data.CommanderRejectReason,
data.CommanderRejectDate,
data.OfficerReject,
data.OfficerApproveReason,
data.OfficerRejectReason,
data.OfficerRejectDate,
data.RemarkHorizontal,
data.rootOld,
data.rootOldId,
data.rootShortNameOld,
data.child1Old,
data.child1OldId,
data.child1ShortNameOld,
data.child2Old,
data.child2OldId,
data.child2ShortNameOld,
data.child3Old,
data.child3OldId,
data.child3ShortNameOld,
data.child4Old,
data.child4OldId,
data.child4ShortNameOld,
data.PositionOld,
data.posMasterNoOld,
data.posTypeOldId,
data.posTypeNameOld,
data.posLevelOldId,
data.posLevelNameOld,
data.IsNoDebt,
data.IsNoBurden,
data.IsDiscipline,
data.CancelReason,
data.KeycloakUserId,
data.Approvers,
data.Commanders,
data.ApproveStep,
data.Group,
idCancel = data.RetirementResignCancels?.Id ?? null,
statusCancel = data.RetirementResignCancels?.Status ?? null,
statusMain = data.Status == "CANCEL" ? "DONECANCEL" : data.Status,
Docs = retirementResignDocs,
}; };
retirementResignDocs.Add(_doc);
}
var _data = new
{
data.Id,
data.profileId,
data.prefix,
data.firstName,
data.lastName,
data.Location,
data.SendDate,
data.ActiveDate,
data.Reason,
data.ReasonResign,
data.Remark,
data.Status,
data.salary,
data.PositionTypeOld,
data.PositionLevelOld,
data.PositionNumberOld,
data.OrganizationPositionOld,
data.ApproveReason,
data.RejectReason,
data.IsActive,
data.CreatedAt,
data.OligarchReject,
data.OligarchApproveReason,
data.OligarchRejectReason,
data.OligarchRejectDate,
data.CommanderReject,
data.CommanderApproveReason,
data.CommanderRejectReason,
data.CommanderRejectDate,
data.OfficerReject,
data.OfficerApproveReason,
data.OfficerRejectReason,
data.OfficerRejectDate,
data.RemarkHorizontal,
data.rootOld,
data.rootOldId,
data.rootShortNameOld,
data.child1Old,
data.child1OldId,
data.child1ShortNameOld,
data.child2Old,
data.child2OldId,
data.child2ShortNameOld,
data.child3Old,
data.child3OldId,
data.child3ShortNameOld,
data.child4Old,
data.child4OldId,
data.child4ShortNameOld,
data.PositionOld,
data.posMasterNoOld,
data.posTypeOldId,
data.posTypeNameOld,
data.posLevelOldId,
data.posLevelNameOld,
data.IsNoDebt,
data.IsNoBurden,
data.IsDiscipline,
data.CancelReason,
data.KeycloakUserId,
data.Approvers,
data.Commanders,
data.ApproveStep,
data.Group,
idCancel = data.RetirementResignCancels?.Id ?? null,
statusCancel = data.RetirementResignCancels?.Status ?? null,
statusMain = data.Status == "CANCEL" ? "DONECANCEL" : data.Status,
Docs = retirementResignDocs,
};
return Success(_data); return Success(_data);
// } // }
// else // else
// { // {
@ -700,6 +686,360 @@ namespace BMA.EHR.Retirement.Service.Controllers
// } // }
} }
/// <summary>
/// get รายละเอียดลาออก
/// </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>
[HttpGet("user/{id:length(36)}")]
public async Task<ActionResult<ResponseObject>> GetDetailByUsers(Guid id)
{
var dataMain = await _context.RetirementResigns.AsQueryable()
.Where(x => x.Id == id)
.Select(p => new
{
p.IsCancel,
})
.FirstOrDefaultAsync();
if (dataMain == null)
return Error(GlobalMessages.RetirementResignNotFound, 404);
if (dataMain.IsCancel != true)
{
var data = await _context.RetirementResigns.AsQueryable()
.Where(x => x.Id == id)
.Select(p => new
{
p.Id,
p.prefix,
p.firstName,
p.lastName,
p.profileId,
p.Location,
p.SendDate,
p.ActiveDate,
p.Reason,
p.ReasonResign,
p.Remark,
p.Status,
salary = p.AmountOld,
p.ApproveReason,
p.RejectReason,
p.IsActive,
p.CreatedAt,
p.PositionTypeOld,
p.PositionLevelOld,
p.PositionNumberOld,
p.OrganizationPositionOld,
p.OligarchReject,
p.OligarchApproveReason,
p.OligarchRejectReason,
p.OligarchRejectDate,
p.CommanderReject,
p.CommanderApproveReason,
p.CommanderRejectReason,
p.CommanderRejectDate,
p.OfficerReject,
p.OfficerApproveReason,
p.OfficerRejectReason,
p.OfficerRejectDate,
p.RemarkHorizontal,
p.rootOld,
p.rootOldId,
p.rootShortNameOld,
p.child1Old,
p.child1OldId,
p.child1ShortNameOld,
p.child2Old,
p.child2OldId,
p.child2ShortNameOld,
p.child3Old,
p.child3OldId,
p.child3ShortNameOld,
p.child4Old,
p.child4OldId,
p.child4ShortNameOld,
p.PositionOld,
p.posMasterNoOld,
p.posTypeOldId,
p.posTypeNameOld,
p.posLevelOldId,
p.posLevelNameOld,
p.IsNoDebt,
p.IsNoBurden,
p.IsDiscipline,
p.CancelReason,
p.ApproveStep,
p.Group,
Approvers = p.Approvers.Where(x => x.ApproveType.ToUpper() == "APPROVER"),
Commanders = p.Approvers.Where(x => x.ApproveType.ToUpper() == "COMMANDER"),
CancelApprovers = new List<dynamic>(),
CancelCommanders = new List<dynamic>(),
KeycloakUserId = p.CreatedUserId,
RetirementResignCancels = p.RetirementResignCancels.FirstOrDefault(),
RetirementResignDocs = p.RetirementResignDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
})
.FirstOrDefaultAsync();
if (data == null)
return Error(GlobalMessages.RetirementResignNotFound, 404);
var retirementResignDocs = new List<dynamic>();
foreach (var doc in data.RetirementResignDocs)
{
var _doc = new
{
FileName = doc.FileName,
PathName = await _documentService.ImagesPath(doc.Id),
doc.Id,
};
retirementResignDocs.Add(_doc);
}
var _data = new
{
data.Id,
data.profileId,
data.prefix,
data.firstName,
data.lastName,
data.Location,
data.SendDate,
data.ActiveDate,
data.Reason,
data.ReasonResign,
data.Remark,
data.Status,
data.salary,
data.PositionTypeOld,
data.PositionLevelOld,
data.PositionNumberOld,
data.OrganizationPositionOld,
data.ApproveReason,
data.RejectReason,
data.IsActive,
data.CreatedAt,
data.OligarchReject,
data.OligarchApproveReason,
data.OligarchRejectReason,
data.OligarchRejectDate,
data.CommanderReject,
data.CommanderApproveReason,
data.CommanderRejectReason,
data.CommanderRejectDate,
data.OfficerReject,
data.OfficerApproveReason,
data.OfficerRejectReason,
data.OfficerRejectDate,
data.RemarkHorizontal,
data.rootOld,
data.rootOldId,
data.rootShortNameOld,
data.child1Old,
data.child1OldId,
data.child1ShortNameOld,
data.child2Old,
data.child2OldId,
data.child2ShortNameOld,
data.child3Old,
data.child3OldId,
data.child3ShortNameOld,
data.child4Old,
data.child4OldId,
data.child4ShortNameOld,
data.PositionOld,
data.posMasterNoOld,
data.posTypeOldId,
data.posTypeNameOld,
data.posLevelOldId,
data.posLevelNameOld,
data.IsNoDebt,
data.IsNoBurden,
data.IsDiscipline,
data.CancelReason,
data.KeycloakUserId,
data.Approvers,
data.Commanders,
data.ApproveStep,
data.CancelApprovers,
data.CancelCommanders,
data.Group,
idCancel = data.RetirementResignCancels?.Id ?? null,
statusCancel = data.RetirementResignCancels?.Status ?? null,
statusMain = data.Status == "CANCEL" ? "DONECANCEL" : data.Status,
Docs = retirementResignDocs,
};
return Success(_data);
}
else
{
var data = await _context.RetirementResignCancels.AsQueryable()
.Where(x => x.RetirementResign.Id == id)
.Select(p => new
{
p.Id,
p.prefix,
p.firstName,
p.lastName,
p.profileId,
p.Location,
p.SendDate,
p.ActiveDate,
p.Reason,
p.Remark,
p.Status,
salary = p.AmountOld,
p.ApproveReason,
p.RejectReason,
p.IsActive,
p.CreatedAt,
p.PositionTypeOld,
p.PositionLevelOld,
p.PositionNumberOld,
p.OrganizationPositionOld,
p.OligarchReject,
p.OligarchApproveReason,
p.OligarchRejectReason,
p.OligarchRejectDate,
p.CommanderReject,
p.CommanderApproveReason,
p.CommanderRejectReason,
p.CommanderRejectDate,
p.OfficerReject,
p.OfficerApproveReason,
p.OfficerRejectReason,
p.OfficerRejectDate,
p.RemarkHorizontal,
p.rootOld,
p.rootOldId,
p.rootShortNameOld,
p.child1Old,
p.child1OldId,
p.child1ShortNameOld,
p.child2Old,
p.child2OldId,
p.child2ShortNameOld,
p.child3Old,
p.child3OldId,
p.child3ShortNameOld,
p.child4Old,
p.child4OldId,
p.child4ShortNameOld,
p.PositionOld,
p.posMasterNoOld,
p.posTypeOldId,
p.posTypeNameOld,
p.posLevelOldId,
p.posLevelNameOld,
p.IsNoDebt,
p.IsNoBurden,
p.IsDiscipline,
p.CancelReason,
p.ApproveStep,
p.Group,
Approvers = p.RetirementResign.Approvers.Where(x => x.ApproveType.ToUpper() == "APPROVER"),
Commanders = p.RetirementResign.Approvers.Where(x => x.ApproveType.ToUpper() == "COMMANDER"),
CancelApprovers = p.Approvers.Where(x => x.ApproveType.ToUpper() == "APPROVER"),
CancelCommanders = p.Approvers.Where(x => x.ApproveType.ToUpper() == "COMMANDER"),
KeycloakUserId = p.CreatedUserId,
idMain = p.RetirementResign.Id,
statusMain = p.RetirementResign.Status,
RetirementResignDocs = p.RetirementResign.RetirementResignDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
})
.FirstOrDefaultAsync();
if (data == null)
return Error(GlobalMessages.RetirementResignNotFound, 404);
var retirementResignDocs = new List<dynamic>();
foreach (var doc in data.RetirementResignDocs)
{
var _doc = new
{
FileName = doc.FileName,
PathName = await _documentService.ImagesPath(doc.Id),
doc.Id,
};
retirementResignDocs.Add(_doc);
}
var _data = new
{
data.Id,
data.profileId,
data.prefix,
// data.PrefixId,
data.firstName,
data.lastName,
data.Location,
data.SendDate,
data.ActiveDate,
data.Reason,
data.Remark,
data.Status,
data.salary,
data.PositionTypeOld,
data.PositionLevelOld,
data.PositionNumberOld,
data.OrganizationPositionOld,
data.ApproveReason,
data.RejectReason,
data.IsActive,
data.CreatedAt,
data.OligarchReject,
data.OligarchApproveReason,
data.OligarchRejectReason,
data.OligarchRejectDate,
data.CommanderReject,
data.CommanderApproveReason,
data.CommanderRejectReason,
data.CommanderRejectDate,
data.OfficerReject,
data.OfficerApproveReason,
data.OfficerRejectReason,
data.OfficerRejectDate,
data.RemarkHorizontal,
data.rootOld,
data.rootOldId,
data.rootShortNameOld,
data.child1Old,
data.child1OldId,
data.child1ShortNameOld,
data.child2Old,
data.child2OldId,
data.child2ShortNameOld,
data.child3Old,
data.child3OldId,
data.child3ShortNameOld,
data.child4Old,
data.child4OldId,
data.child4ShortNameOld,
data.PositionOld,
data.posMasterNoOld,
data.posTypeOldId,
data.posTypeNameOld,
data.posLevelOldId,
data.posLevelNameOld,
data.IsNoDebt,
data.IsNoBurden,
data.IsDiscipline,
data.CancelReason,
data.idMain,
data.statusMain,
data.KeycloakUserId,
data.ApproveStep,
data.Group,
data.Approvers,
data.Commanders,
data.CancelApprovers,
data.CancelCommanders,
statusCancel = data.Status,
Docs = retirementResignDocs,
};
return Success(_data);
}
}
/// <summary> /// <summary>
/// get รายละเอียดลาออก /// get รายละเอียดลาออก
/// </summary> /// </summary>
@ -712,19 +1052,6 @@ namespace BMA.EHR.Retirement.Service.Controllers
[HttpGet("cancel/{id:length(36)}")] [HttpGet("cancel/{id:length(36)}")]
public async Task<ActionResult<ResponseObject>> GetDetailByUserCancel(Guid id) public async Task<ActionResult<ResponseObject>> GetDetailByUserCancel(Guid id)
{ {
var getWorkflow = await _permission.GetPermissionAPIWorkflowAsync(id.ToString(), "RETIREMENT_CANCEL");
var createdUserId = await _context.RetirementResignCancels.AsQueryable()
.Where(x => x.CreatedUserId == UserId)
.FirstOrDefaultAsync();
if (getWorkflow == false && createdUserId == null)
{
var getPermission = await _permission.GetPermissionAPIAsync("GET", "SYS_RESIGN");
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission);
if (jsonData["status"]?.ToString() != "200")
{
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
}
}
var data = await _context.RetirementResignCancels.AsQueryable() var data = await _context.RetirementResignCancels.AsQueryable()
.Where(x => x.Id == id) .Where(x => x.Id == id)
.Select(p => new .Select(p => new
@ -1026,19 +1353,6 @@ namespace BMA.EHR.Retirement.Service.Controllers
} }
} }
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _res = await client.PostAsJsonAsync($"{_configuration["API"]}/org/workflow/add-workflow", new
{
refId = retirementResign.Id,
sysName = "SYS_RESIGN",
posLevelName = retirementResign.PositionLevelOld,
posTypeName = retirementResign.PositionTypeOld,
fullName = $"{retirementResign.prefix}{retirementResign.firstName} {retirementResign.lastName}"
});
}
return Success(retirementResign); return Success(retirementResign);
} }
@ -1304,18 +1618,6 @@ namespace BMA.EHR.Retirement.Service.Controllers
} }
await _context.AddRangeAsync(addList); await _context.AddRangeAsync(addList);
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _res = await client.PostAsJsonAsync($"{_configuration["API"]}/org/workflow/add-workflow", new
{
refId = retirementResignCancel.Id,
sysName = "RETIREMENT_CANCEL",
posLevelName = retirementResignCancel.PositionLevelOld,
posTypeName = retirementResignCancel.PositionTypeOld,
});
}
updated.IsCancel = true; updated.IsCancel = true;
updated.Status = "CANCELING"; updated.Status = "CANCELING";
} }

View file

@ -288,179 +288,165 @@ namespace BMA.EHR.Retirement.Service.Controllers
// if (dataMain.IsCancel != true) // if (dataMain.IsCancel != true)
// { // {
var getWorkflow = await _permission.GetPermissionAPIWorkflowAsync(id.ToString(), "SYS_RESIGN_EMP"); var data = await _context.RetirementResignEmployees.AsQueryable()
var createdUserId = await _context.RetirementResignEmployees.AsQueryable() .Where(x => x.Id == id)
.Where(x => x.Id == id) .Select(p => new
.Where(x => x.CreatedUserId == UserId) {
.FirstOrDefaultAsync(); p.Id,
if (getWorkflow == false && createdUserId == null) p.prefix,
{ p.firstName,
var getPermission = await _permission.GetPermissionAPIAsync("GET", "SYS_RESIGN_EMP"); p.lastName,
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission); p.profileId,
if (jsonData["status"]?.ToString() != "200") p.Location,
{ p.SendDate,
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); p.ActiveDate,
} p.Reason,
} p.ReasonResign,
var data = await _context.RetirementResignEmployees.AsQueryable() p.Remark,
.Where(x => x.Id == id) p.Status,
.Select(p => new salary = p.AmountOld,
{ p.ApproveReason,
p.Id, p.RejectReason,
p.prefix, p.IsActive,
p.firstName, p.CreatedAt,
p.lastName, p.PositionTypeOld,
p.profileId, p.PositionLevelOld,
p.Location, p.PositionNumberOld,
p.SendDate, p.OrganizationPositionOld,
p.ActiveDate, p.OligarchReject,
p.Reason, p.OligarchApproveReason,
p.ReasonResign, p.OligarchRejectReason,
p.Remark, p.OligarchRejectDate,
p.Status, p.CommanderReject,
salary = p.AmountOld, p.CommanderApproveReason,
p.ApproveReason, p.CommanderRejectReason,
p.RejectReason, p.CommanderRejectDate,
p.IsActive, p.OfficerReject,
p.CreatedAt, p.OfficerApproveReason,
p.PositionTypeOld, p.OfficerRejectReason,
p.PositionLevelOld, p.OfficerRejectDate,
p.PositionNumberOld, p.RemarkHorizontal,
p.OrganizationPositionOld, p.rootOld,
p.OligarchReject, p.rootOldId,
p.OligarchApproveReason, p.rootShortNameOld,
p.OligarchRejectReason, p.child1Old,
p.OligarchRejectDate, p.child1OldId,
p.CommanderReject, p.child1ShortNameOld,
p.CommanderApproveReason, p.child2Old,
p.CommanderRejectReason, p.child2OldId,
p.CommanderRejectDate, p.child2ShortNameOld,
p.OfficerReject, p.child3Old,
p.OfficerApproveReason, p.child3OldId,
p.OfficerRejectReason, p.child3ShortNameOld,
p.OfficerRejectDate, p.child4Old,
p.RemarkHorizontal, p.child4OldId,
p.rootOld, p.child4ShortNameOld,
p.rootOldId, p.PositionOld,
p.rootShortNameOld, p.posMasterNoOld,
p.child1Old, p.posTypeOldId,
p.child1OldId, p.posTypeNameOld,
p.child1ShortNameOld, p.posLevelOldId,
p.child2Old, p.posLevelNameOld,
p.child2OldId, p.IsNoDebt,
p.child2ShortNameOld, p.IsNoBurden,
p.child3Old, p.IsDiscipline,
p.child3OldId, p.CancelReason,
p.child3ShortNameOld, p.ApproveStep,
p.child4Old, p.Group,
p.child4OldId, Approvers = p.Approvers.Where(x => x.ApproveType.ToUpper() == "APPROVER"),
p.child4ShortNameOld, Commanders = p.Approvers.Where(x => x.ApproveType.ToUpper() == "COMMANDER"),
p.PositionOld, KeycloakUserId = p.CreatedUserId,
p.posMasterNoOld, RetirementResignEmployeeCancels = p.RetirementResignEmployeeCancels.FirstOrDefault(),
p.posTypeOldId, RetirementResignEmployeeDocs = p.RetirementResignEmployeeDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
p.posTypeNameOld, })
p.posLevelOldId, .FirstOrDefaultAsync();
p.posLevelNameOld, if (data == null)
p.IsNoDebt, return Error(GlobalMessages.RetirementResignEmployeeNotFound, 404);
p.IsNoBurden,
p.IsDiscipline,
p.CancelReason,
p.ApproveStep,
p.Group,
Approvers = p.Approvers.Where(x => x.ApproveType.ToUpper() == "APPROVER"),
Commanders = p.Approvers.Where(x => x.ApproveType.ToUpper() == "COMMANDER"),
KeycloakUserId = p.CreatedUserId,
RetirementResignEmployeeCancels = p.RetirementResignEmployeeCancels.FirstOrDefault(),
RetirementResignEmployeeDocs = p.RetirementResignEmployeeDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
})
.FirstOrDefaultAsync();
if (data == null)
return Error(GlobalMessages.RetirementResignEmployeeNotFound, 404);
var retirementResignEmployeeDocs = new List<dynamic>(); var retirementResignEmployeeDocs = new List<dynamic>();
foreach (var doc in data.RetirementResignEmployeeDocs) foreach (var doc in data.RetirementResignEmployeeDocs)
{
var _doc = new
{ {
var _doc = new FileName = doc.FileName,
{ PathName = await _documentService.ImagesPath(doc.Id),
FileName = doc.FileName, doc.Id,
PathName = await _documentService.ImagesPath(doc.Id),
doc.Id,
};
retirementResignEmployeeDocs.Add(_doc);
}
var _data = new
{
data.Id,
data.profileId,
data.prefix,
data.firstName,
data.lastName,
data.Location,
data.SendDate,
data.ActiveDate,
data.Reason,
data.ReasonResign,
data.Remark,
data.Status,
data.salary,
data.PositionTypeOld,
data.PositionLevelOld,
data.PositionNumberOld,
data.OrganizationPositionOld,
data.ApproveReason,
data.RejectReason,
data.IsActive,
data.CreatedAt,
data.OligarchReject,
data.OligarchApproveReason,
data.OligarchRejectReason,
data.OligarchRejectDate,
data.CommanderReject,
data.CommanderApproveReason,
data.CommanderRejectReason,
data.CommanderRejectDate,
data.OfficerReject,
data.OfficerApproveReason,
data.OfficerRejectReason,
data.OfficerRejectDate,
data.RemarkHorizontal,
data.rootOld,
data.rootOldId,
data.rootShortNameOld,
data.child1Old,
data.child1OldId,
data.child1ShortNameOld,
data.child2Old,
data.child2OldId,
data.child2ShortNameOld,
data.child3Old,
data.child3OldId,
data.child3ShortNameOld,
data.child4Old,
data.child4OldId,
data.child4ShortNameOld,
data.PositionOld,
data.posMasterNoOld,
data.posTypeOldId,
data.posTypeNameOld,
data.posLevelOldId,
data.posLevelNameOld,
data.IsNoDebt,
data.IsNoBurden,
data.IsDiscipline,
data.CancelReason,
data.KeycloakUserId,
data.Approvers,
data.Commanders,
data.ApproveStep,
data.Group,
idCancel = data.RetirementResignEmployeeCancels?.Id ?? Guid.Empty,
statusCancel = data.RetirementResignEmployeeCancels?.Status ?? null,
statusMain = data.Status == "CANCEL" ? "DONECANCEL" : data.Status,
Docs = retirementResignEmployeeDocs,
}; };
retirementResignEmployeeDocs.Add(_doc);
}
var _data = new
{
data.Id,
data.profileId,
data.prefix,
data.firstName,
data.lastName,
data.Location,
data.SendDate,
data.ActiveDate,
data.Reason,
data.ReasonResign,
data.Remark,
data.Status,
data.salary,
data.PositionTypeOld,
data.PositionLevelOld,
data.PositionNumberOld,
data.OrganizationPositionOld,
data.ApproveReason,
data.RejectReason,
data.IsActive,
data.CreatedAt,
data.OligarchReject,
data.OligarchApproveReason,
data.OligarchRejectReason,
data.OligarchRejectDate,
data.CommanderReject,
data.CommanderApproveReason,
data.CommanderRejectReason,
data.CommanderRejectDate,
data.OfficerReject,
data.OfficerApproveReason,
data.OfficerRejectReason,
data.OfficerRejectDate,
data.RemarkHorizontal,
data.rootOld,
data.rootOldId,
data.rootShortNameOld,
data.child1Old,
data.child1OldId,
data.child1ShortNameOld,
data.child2Old,
data.child2OldId,
data.child2ShortNameOld,
data.child3Old,
data.child3OldId,
data.child3ShortNameOld,
data.child4Old,
data.child4OldId,
data.child4ShortNameOld,
data.PositionOld,
data.posMasterNoOld,
data.posTypeOldId,
data.posTypeNameOld,
data.posLevelOldId,
data.posLevelNameOld,
data.IsNoDebt,
data.IsNoBurden,
data.IsDiscipline,
data.CancelReason,
data.KeycloakUserId,
data.Approvers,
data.Commanders,
data.ApproveStep,
data.Group,
idCancel = data.RetirementResignEmployeeCancels?.Id ?? Guid.Empty,
statusCancel = data.RetirementResignEmployeeCancels?.Status ?? null,
statusMain = data.Status == "CANCEL" ? "DONECANCEL" : data.Status,
Docs = retirementResignEmployeeDocs,
};
return Success(_data); return Success(_data);
// } // }
// else // else
// { // {
@ -638,6 +624,376 @@ namespace BMA.EHR.Retirement.Service.Controllers
// } // }
} }
/// <summary>
/// get รายละเอียดลาออก
/// </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>
[HttpGet("user/{id:length(36)}")]
public async Task<ActionResult<ResponseObject>> GetDetailByUsers(Guid id)
{
var dataMain = await _context.RetirementResignEmployees.AsQueryable()
.Where(x => x.Id == id)
.Select(p => new
{
p.IsCancel,
})
.FirstOrDefaultAsync();
if (dataMain == null)
return Error(GlobalMessages.RetirementResignEmployeeNotFound, 404);
if (dataMain.IsCancel != true)
{
var createdUserId = await _context.RetirementResignEmployees.AsQueryable()
.Where(x => x.Id == id)
.Where(x => x.CreatedUserId == UserId)
.FirstOrDefaultAsync();
var data = await _context.RetirementResignEmployees.AsQueryable()
.Where(x => x.Id == id)
.Select(p => new
{
p.Id,
p.prefix,
p.firstName,
p.lastName,
p.profileId,
p.Location,
p.SendDate,
p.ActiveDate,
p.Reason,
p.ReasonResign,
p.Remark,
p.Status,
salary = p.AmountOld,
p.ApproveReason,
p.RejectReason,
p.IsActive,
p.CreatedAt,
p.PositionTypeOld,
p.PositionLevelOld,
p.PositionNumberOld,
p.OrganizationPositionOld,
p.OligarchReject,
p.OligarchApproveReason,
p.OligarchRejectReason,
p.OligarchRejectDate,
p.CommanderReject,
p.CommanderApproveReason,
p.CommanderRejectReason,
p.CommanderRejectDate,
p.OfficerReject,
p.OfficerApproveReason,
p.OfficerRejectReason,
p.OfficerRejectDate,
p.RemarkHorizontal,
p.rootOld,
p.rootOldId,
p.rootShortNameOld,
p.child1Old,
p.child1OldId,
p.child1ShortNameOld,
p.child2Old,
p.child2OldId,
p.child2ShortNameOld,
p.child3Old,
p.child3OldId,
p.child3ShortNameOld,
p.child4Old,
p.child4OldId,
p.child4ShortNameOld,
p.PositionOld,
p.posMasterNoOld,
p.posTypeOldId,
p.posTypeNameOld,
p.posLevelOldId,
p.posLevelNameOld,
p.IsNoDebt,
p.IsNoBurden,
p.IsDiscipline,
p.CancelReason,
p.ApproveStep,
p.Group,
Approvers = p.Approvers.Where(x => x.ApproveType.ToUpper() == "APPROVER"),
Commanders = p.Approvers.Where(x => x.ApproveType.ToUpper() == "COMMANDER"),
CancelApprovers = new List<dynamic>(),
CancelCommanders = new List<dynamic>(),
KeycloakUserId = p.CreatedUserId,
RetirementResignEmployeeCancels = p.RetirementResignEmployeeCancels.FirstOrDefault(),
RetirementResignEmployeeDocs = p.RetirementResignEmployeeDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
})
.FirstOrDefaultAsync();
if (data == null)
return Error(GlobalMessages.RetirementResignEmployeeNotFound, 404);
var retirementResignEmployeeDocs = new List<dynamic>();
foreach (var doc in data.RetirementResignEmployeeDocs)
{
var _doc = new
{
FileName = doc.FileName,
PathName = await _documentService.ImagesPath(doc.Id),
doc.Id,
};
retirementResignEmployeeDocs.Add(_doc);
}
var _data = new
{
data.Id,
data.profileId,
data.prefix,
data.firstName,
data.lastName,
data.Location,
data.SendDate,
data.ActiveDate,
data.Reason,
data.ReasonResign,
data.Remark,
data.Status,
data.salary,
data.PositionTypeOld,
data.PositionLevelOld,
data.PositionNumberOld,
data.OrganizationPositionOld,
data.ApproveReason,
data.RejectReason,
data.IsActive,
data.CreatedAt,
data.OligarchReject,
data.OligarchApproveReason,
data.OligarchRejectReason,
data.OligarchRejectDate,
data.CommanderReject,
data.CommanderApproveReason,
data.CommanderRejectReason,
data.CommanderRejectDate,
data.OfficerReject,
data.OfficerApproveReason,
data.OfficerRejectReason,
data.OfficerRejectDate,
data.RemarkHorizontal,
data.rootOld,
data.rootOldId,
data.rootShortNameOld,
data.child1Old,
data.child1OldId,
data.child1ShortNameOld,
data.child2Old,
data.child2OldId,
data.child2ShortNameOld,
data.child3Old,
data.child3OldId,
data.child3ShortNameOld,
data.child4Old,
data.child4OldId,
data.child4ShortNameOld,
data.PositionOld,
data.posMasterNoOld,
data.posTypeOldId,
data.posTypeNameOld,
data.posLevelOldId,
data.posLevelNameOld,
data.IsNoDebt,
data.IsNoBurden,
data.IsDiscipline,
data.CancelReason,
data.KeycloakUserId,
data.Approvers,
data.Commanders,
data.ApproveStep,
data.CancelApprovers,
data.CancelCommanders,
data.Group,
idCancel = data.RetirementResignEmployeeCancels?.Id ?? Guid.Empty,
statusCancel = data.RetirementResignEmployeeCancels?.Status ?? null,
statusMain = data.Status == "CANCEL" ? "DONECANCEL" : data.Status,
Docs = retirementResignEmployeeDocs,
};
return Success(_data);
}
else
{
var createdUserId = await _context.RetirementResignEmployeeCancels.AsQueryable()
.Where(x => x.CreatedUserId == UserId)
.Where(x => x.RetirementResignEmployee.Id == id)
.FirstOrDefaultAsync();
{
var getPermission = await _permission.GetPermissionAPIAsync("GET", "SYS_RESIGN_EMP");
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission);
if (jsonData["status"]?.ToString() != "200")
{
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
}
}
var data = await _context.RetirementResignEmployeeCancels.AsQueryable()
.Where(x => x.RetirementResignEmployee.Id == id)
.Select(p => new
{
p.Id,
p.prefix,
p.firstName,
p.lastName,
p.profileId,
p.Location,
p.SendDate,
p.ActiveDate,
p.Reason,
p.Remark,
p.Status,
salary = p.AmountOld,
p.ApproveReason,
p.RejectReason,
p.IsActive,
p.CreatedAt,
p.PositionTypeOld,
p.PositionLevelOld,
p.PositionNumberOld,
p.OrganizationPositionOld,
p.OligarchReject,
p.OligarchApproveReason,
p.OligarchRejectReason,
p.OligarchRejectDate,
p.CommanderReject,
p.CommanderApproveReason,
p.CommanderRejectReason,
p.CommanderRejectDate,
p.OfficerReject,
p.OfficerApproveReason,
p.OfficerRejectReason,
p.OfficerRejectDate,
p.RemarkHorizontal,
p.rootOld,
p.rootOldId,
p.rootShortNameOld,
p.child1Old,
p.child1OldId,
p.child1ShortNameOld,
p.child2Old,
p.child2OldId,
p.child2ShortNameOld,
p.child3Old,
p.child3OldId,
p.child3ShortNameOld,
p.child4Old,
p.child4OldId,
p.child4ShortNameOld,
p.PositionOld,
p.posMasterNoOld,
p.posTypeOldId,
p.posTypeNameOld,
p.posLevelOldId,
p.posLevelNameOld,
p.IsNoDebt,
p.IsNoBurden,
p.IsDiscipline,
p.ApproveStep,
p.Group,
Approvers = p.RetirementResignEmployee.Approvers.Where(x => x.ApproveType.ToUpper() == "APPROVER"),
Commanders = p.RetirementResignEmployee.Approvers.Where(x => x.ApproveType.ToUpper() == "COMMANDER"),
CancelApprovers = p.Approvers.Where(x => x.ApproveType.ToUpper() == "APPROVER"),
CancelCommanders = p.Approvers.Where(x => x.ApproveType.ToUpper() == "COMMANDER"),
KeycloakUserId = p.CreatedUserId,
p.CancelReason,
idMain = p.RetirementResignEmployee.Id,
statusMain = p.RetirementResignEmployee.Status,
RetirementResignEmployeeDocs = p.RetirementResignEmployee.RetirementResignEmployeeDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
})
.FirstOrDefaultAsync();
if (data == null)
return Error(GlobalMessages.RetirementResignEmployeeNotFound, 404);
var retirementResignEmployeeDocs = new List<dynamic>();
foreach (var doc in data.RetirementResignEmployeeDocs)
{
var _doc = new
{
FileName = doc.FileName,
PathName = await _documentService.ImagesPath(doc.Id),
doc.Id,
};
retirementResignEmployeeDocs.Add(_doc);
}
var _data = new
{
data.Id,
data.profileId,
data.prefix,
data.firstName,
data.lastName,
data.Location,
data.SendDate,
data.ActiveDate,
data.Reason,
data.Remark,
data.Status,
data.salary,
data.PositionTypeOld,
data.PositionLevelOld,
data.PositionNumberOld,
data.OrganizationPositionOld,
data.ApproveReason,
data.RejectReason,
data.IsActive,
data.CreatedAt,
data.OligarchReject,
data.OligarchApproveReason,
data.OligarchRejectReason,
data.OligarchRejectDate,
data.CommanderReject,
data.CommanderApproveReason,
data.CommanderRejectReason,
data.CommanderRejectDate,
data.OfficerReject,
data.OfficerApproveReason,
data.OfficerRejectReason,
data.OfficerRejectDate,
data.RemarkHorizontal,
data.rootOld,
data.rootOldId,
data.rootShortNameOld,
data.child1Old,
data.child1OldId,
data.child1ShortNameOld,
data.child2Old,
data.child2OldId,
data.child2ShortNameOld,
data.child3Old,
data.child3OldId,
data.child3ShortNameOld,
data.child4Old,
data.child4OldId,
data.child4ShortNameOld,
data.PositionOld,
data.posMasterNoOld,
data.posTypeOldId,
data.posTypeNameOld,
data.posLevelOldId,
data.posLevelNameOld,
data.IsNoDebt,
data.IsNoBurden,
data.IsDiscipline,
data.CancelReason,
data.idMain,
data.statusMain,
data.ApproveStep,
data.Group,
data.KeycloakUserId,
data.Approvers,
data.Commanders,
data.CancelApprovers,
data.CancelCommanders,
statusCancel = data.Status,
Docs = retirementResignEmployeeDocs,
};
return Success(_data);
}
}
/// <summary> /// <summary>
/// get รายละเอียดลาออก /// get รายละเอียดลาออก
/// </summary> /// </summary>
@ -650,19 +1006,6 @@ namespace BMA.EHR.Retirement.Service.Controllers
[HttpGet("cancel/{id:length(36)}")] [HttpGet("cancel/{id:length(36)}")]
public async Task<ActionResult<ResponseObject>> GetDetailByUserCancel(Guid id) public async Task<ActionResult<ResponseObject>> GetDetailByUserCancel(Guid id)
{ {
var getWorkflow = await _permission.GetPermissionAPIWorkflowAsync(id.ToString(), "RETIREMENT_CANCEL_EMP");
var createdUserId = await _context.RetirementResignEmployeeCancels.AsQueryable()
.Where(x => x.CreatedUserId == UserId)
.FirstOrDefaultAsync();
if (getWorkflow == false && createdUserId == null)
{
var getPermission = await _permission.GetPermissionAPIAsync("GET", "SYS_RESIGN_EMP");
var jsonData = JsonConvert.DeserializeObject<JObject>(getPermission);
if (jsonData["status"]?.ToString() != "200")
{
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
}
}
var data = await _context.RetirementResignEmployeeCancels.AsQueryable() var data = await _context.RetirementResignEmployeeCancels.AsQueryable()
.Where(x => x.Id == id) .Where(x => x.Id == id)
.Select(p => new .Select(p => new
@ -961,18 +1304,18 @@ namespace BMA.EHR.Retirement.Service.Controllers
} }
} }
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
using (var client = new HttpClient()) // using (var client = new HttpClient())
{ // {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); // client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); // client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _res = await client.PostAsJsonAsync($"{_configuration["API"]}/org/workflow/add-workflow", new // var _res = await client.PostAsJsonAsync($"{_configuration["API"]}/org/workflow/add-workflow", new
{ // {
refId = retirementResignEmployee.Id, // refId = retirementResignEmployee.Id,
sysName = "SYS_RESIGN_EMP", // sysName = "SYS_RESIGN_EMP",
posLevelName = retirementResignEmployee.PositionLevelOld, // posLevelName = retirementResignEmployee.PositionLevelOld,
posTypeName = retirementResignEmployee.PositionTypeOld, // posTypeName = retirementResignEmployee.PositionTypeOld,
}); // });
} // }
return Success(retirementResignEmployee); return Success(retirementResignEmployee);
} }
@ -1209,18 +1552,18 @@ namespace BMA.EHR.Retirement.Service.Controllers
} }
await _context.AddRangeAsync(addList); await _context.AddRangeAsync(addList);
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
using (var client = new HttpClient()) // using (var client = new HttpClient())
{ // {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); // client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); // client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _res = await client.PostAsJsonAsync($"{_configuration["API"]}/org/workflow/add-workflow", new // var _res = await client.PostAsJsonAsync($"{_configuration["API"]}/org/workflow/add-workflow", new
{ // {
refId = retirementResignEmployeeCancel.Id, // refId = retirementResignEmployeeCancel.Id,
sysName = "RETIREMENT_CANCEL_EMP", // sysName = "RETIREMENT_CANCEL_EMP",
posLevelName = retirementResignEmployeeCancel.PositionLevelOld, // posLevelName = retirementResignEmployeeCancel.PositionLevelOld,
posTypeName = retirementResignEmployeeCancel.PositionTypeOld, // posTypeName = retirementResignEmployeeCancel.PositionTypeOld,
}); // });
} // }
updated.IsCancel = true; updated.IsCancel = true;
updated.Status = "CANCELING"; updated.Status = "CANCELING";
} }