Task #2233 รายงานใบลา แสดงสำนักงาน ก.ก.
All checks were successful
Build & Deploy Leave Service / build (push) Successful in 1m23s

This commit is contained in:
harid 2026-01-26 18:21:33 +07:00
parent 22a7a8c17c
commit 2e6a81ff31
3 changed files with 227 additions and 115 deletions

View file

@ -233,6 +233,36 @@ namespace BMA.EHR.Application.Repositories
}
}
public async Task<GetProfileLeaveByKeycloakDto?> GetProfileLeaveReportByKeycloakIdAsync(Guid keycloakId, string? accessToken, string? report)
{
try
{
var apiPath = $"{_configuration["API"]}/org/dotnet/profile-leave/keycloak";
var apiKey = _configuration["API_KEY"];
var body = new
{
keycloakId = keycloakId,
report = report
};
var profiles = new List<SearchProfileDto>();
var apiResult = await PostExternalAPIAsync(apiPath, accessToken, body, apiKey);
if (apiResult != null)
{
var raw = JsonConvert.DeserializeObject<GetProfileLeaveByKeycloakResultDto>(apiResult);
if (raw != null)
return raw.Result;
}
return null;
}
catch
{
throw;
}
}
public async Task<GetProfileByKeycloakIdDto?> GetProfileByProfileIdAsync(Guid profileId, string? accessToken)
{
try

View file

@ -2,6 +2,11 @@
{
public class GetProfileLeaveByKeycloakDto
{
public string ProfileType { get; set; }
public string Prefix { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string CitizenId { get; set; }
public DateTime BirthDate { get; set; }
public DateTime RetireDate { get; set; }
public string GovAge { get; set; } = string.Empty;
@ -10,11 +15,14 @@
public DateTime DateCurrent { get; set; }
public int Amount { get; set; }
public string? TelephoneNumber { get; set; } = string.Empty;
public string PositionName { get; set; } = string.Empty;
public string Position { get; set; } = string.Empty;
public string PosLevel { get; set; } = string.Empty;
public string PosType { get; set; } = string.Empty;
public string? PositionLeaveName { get; set; }
public string? PosExecutiveName { get; set; }
public string CurrentAddress { get; set; } = string.Empty;
public string Oc { get; set; } = string.Empty;
public bool isCommission { get; set; } = false;
public string Root { get; set; } = string.Empty;
public string? Child1 { get; set; }
public string? Child2 { get; set; }

View file

@ -137,7 +137,12 @@ namespace BMA.EHR.Leave.Service.Controllers
private async Task<dynamic> GetReport01(LeaveRequest data)
{
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//if (profile == null)
//{
// return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
//}
var profile = await _userProfileRepository.GetProfileLeaveReportByKeycloakIdAsync(data.KeycloakUserId, AccessToken, "leave9");
if (profile == null)
{
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
@ -152,7 +157,11 @@ namespace BMA.EHR.Leave.Service.Controllers
var startFiscalYear = new DateTime(data.LeaveStartDate.Year - 1, 10, 1);
var endFiscalYear = data.LeaveStartDate.Date.AddDays(-1); // นับจากวันที่ยื่นลา
var sumLeave = await _leaveRequestRepository.GetSumApproveLeaveTotalByTypeAndRangeForUser(data.KeycloakUserId, data.Type.Id, startFiscalYear, endFiscalYear);
var approveResult = await GetApproverData(data.Approvers);
var Oc = profile.isCommission == false
? profile.Oc.ToThaiNumber()
: profile.Oc.Replace("สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร", "สำนักงาน ก.ก.").ToThaiNumber();
var approveResult = await GetApproverData(data.Approvers, profile.isCommission);
return new
{
template = "leave9",
@ -183,10 +192,10 @@ namespace BMA.EHR.Leave.Service.Controllers
organizationName = profile!.Oc!.ToThaiNumber(),
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
? new[] { (profile!.Oc!.ToThaiNumber()) }
? new[] { Oc }
: !string.IsNullOrEmpty(profile.PosExecutiveName)
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
: new[] { (profile!.Oc!.ToThaiNumber()) },
? new[] { profile.PosExecutiveName.ToThaiNumber(), Oc }
: new[] { Oc },
leaveDetail = data.LeaveDetail.ToThaiNumber(),
leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(),
leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(),
@ -227,14 +236,22 @@ namespace BMA.EHR.Leave.Service.Controllers
private async Task<dynamic> GetReport02(LeaveRequest data)
{
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//if (profile == null)
//{
// return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
//}
var profile = await _userProfileRepository.GetProfileLeaveReportByKeycloakIdAsync(data.KeycloakUserId, AccessToken, "leave10");
if (profile == null)
{
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
}
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
var approveResult = await GetApproverData(data.Approvers);
var Oc = profile.isCommission == false
? profile.Oc.ToThaiNumber()
: profile.Oc.Replace("สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร", "สำนักงาน ก.ก.").ToThaiNumber();
var approveResult = await GetApproverData(data.Approvers, profile.isCommission);
return new
{
template = "leave10",
@ -265,10 +282,10 @@ namespace BMA.EHR.Leave.Service.Controllers
organizationName = profile!.Oc!.ToThaiNumber(),
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
? new[] { (profile!.Oc!.ToThaiNumber()) }
? new[] { Oc }
: !string.IsNullOrEmpty(profile.PosExecutiveName)
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
: new[] { (profile!.Oc!.ToThaiNumber()) },
? new[] { profile.PosExecutiveName.ToThaiNumber(), Oc }
: new[] { Oc },
wifeDayName = data.WifeDayName ?? "",
wifeDayDateBorn = data.WifeDayDateBorn == null || data.WifeDayDateBorn == "" ? "" : DateTime.Parse(data.WifeDayDateBorn).ToThaiShortDate().ToThaiNumber(),
leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(),
@ -289,7 +306,12 @@ namespace BMA.EHR.Leave.Service.Controllers
private async Task<dynamic> GetReport03(LeaveRequest data)
{
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//if (profile == null)
//{
// return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
//}
var profile = await _userProfileRepository.GetProfileLeaveReportByKeycloakIdAsync(data.KeycloakUserId, AccessToken, "leave11");
if (profile == null)
{
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
@ -313,8 +335,10 @@ namespace BMA.EHR.Leave.Service.Controllers
var sumLeave = leaveData == null ? 0.0 : leaveData.LeaveDaysUsed;
var leaveLimit = leaveData == null ? 0.0 : leaveData.LeaveDays;
var extendLeave = leaveLimit - 10;
var approveResult = await GetApproverData(data.Approvers);
var Oc = profile.isCommission == false
? profile.Oc.ToThaiNumber()
: profile.Oc.Replace("สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร", "สำนักงาน ก.ก.").ToThaiNumber();
var approveResult = await GetApproverData(data.Approvers, profile.isCommission);
return new
{
template = "leave11",
@ -345,10 +369,10 @@ namespace BMA.EHR.Leave.Service.Controllers
organizationName = profile!.Oc!.ToThaiNumber(),
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
? new[] { (profile!.Oc!.ToThaiNumber()) }
? new[] { Oc }
: !string.IsNullOrEmpty(profile.PosExecutiveName)
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
: new[] { (profile!.Oc!.ToThaiNumber()) },
? new[] { profile.PosExecutiveName.ToThaiNumber(), Oc }
: new[] { Oc },
restDayOldTotal = extendLeave.ToString().ToThaiNumber(),
restDayCurrentTotal = (10).ToString().ToThaiNumber(),
@ -379,7 +403,12 @@ namespace BMA.EHR.Leave.Service.Controllers
private async Task<dynamic> GetReport04(LeaveRequest data, bool isHajj = false)
{
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//if (profile == null)
//{
// return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
//}
var profile = await _userProfileRepository.GetProfileLeaveReportByKeycloakIdAsync(data.KeycloakUserId, AccessToken, isHajj ? "leave13": "leave12");
if (profile == null)
{
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
@ -399,7 +428,10 @@ namespace BMA.EHR.Leave.Service.Controllers
{
isHajj = true;
}
var approveResult = await GetApproverData(data.Approvers);
var Oc = profile.isCommission == false
? profile.Oc.ToThaiNumber()
: profile.Oc.Replace("สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร", "สำนักงาน ก.ก.").ToThaiNumber();
var approveResult = await GetApproverData(data.Approvers, profile.isCommission);
if (isHajj == true)
{
return new
@ -432,11 +464,10 @@ namespace BMA.EHR.Leave.Service.Controllers
organizationName = profile!.Oc!.ToThaiNumber(),
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
? new[] { (profile!.Oc!.ToThaiNumber()) }
? new[] { Oc }
: !string.IsNullOrEmpty(profile.PosExecutiveName)
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
: new[] { (profile!.Oc!.ToThaiNumber()) },
? new[] { profile.PosExecutiveName.ToThaiNumber(), Oc }
: new[] { Oc },
leavegovernmentDate = data.LeaveGovernmentDate == null ? "" : data.LeaveGovernmentDate.Value.Date.ToThaiShortDate().ToThaiNumber(),
hajjDayStatus = data.HajjDayStatus,
@ -487,10 +518,10 @@ namespace BMA.EHR.Leave.Service.Controllers
organizationName = profile!.Oc!.ToThaiNumber(),
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
? new[] { (profile!.Oc!.ToThaiNumber()) }
? new[] { Oc }
: !string.IsNullOrEmpty(profile.PosExecutiveName)
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
: new[] { (profile!.Oc!.ToThaiNumber()) },
? new[] { profile.PosExecutiveName.ToThaiNumber(), Oc }
: new[] { Oc },
leavebirthDate = data.LeaveBirthDate == null ? "" : data.LeaveBirthDate.Value.Date.ToThaiShortDate().ToThaiNumber(),
leavegovernmentDate = data.LeaveGovernmentDate == null ? "" : data.LeaveGovernmentDate.Value.Date.ToThaiShortDate().ToThaiNumber(),
@ -520,12 +551,16 @@ namespace BMA.EHR.Leave.Service.Controllers
private async Task<dynamic> GetReport05(LeaveRequest data)
{
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//if (profile == null)
//{
// return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
//}
var profile = await _userProfileRepository.GetProfileLeaveReportByKeycloakIdAsync(data.KeycloakUserId, AccessToken, "leave14");
if (profile == null)
{
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
}
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
//var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
@ -536,7 +571,10 @@ namespace BMA.EHR.Leave.Service.Controllers
// if (list.Count > 0)
// approver = list.First().Name;
//}
var approveResult = await GetApproverData(data.Approvers);
var Oc = profile.isCommission == false
? profile.Oc.ToThaiNumber()
: profile.Oc.Replace("สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร", "สำนักงาน ก.ก.").ToThaiNumber();
var approveResult = await GetApproverData(data.Approvers, profile.isCommission);
return new
{
template = "leave14",
@ -567,10 +605,10 @@ namespace BMA.EHR.Leave.Service.Controllers
organizationName = profile!.Oc!.ToThaiNumber(),
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
? new[] { (profile!.Oc!.ToThaiNumber()) }
? new[] { Oc }
: !string.IsNullOrEmpty(profile.PosExecutiveName)
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
: new[] { (profile!.Oc!.ToThaiNumber()) },
? new[] { profile.PosExecutiveName.ToThaiNumber(), Oc }
: new[] { Oc },
absentDaySummon = data.AbsentDaySummon.ToThaiNumber(),
absentDayLocation = data.AbsentDayLocation.ToThaiNumber(),
@ -594,12 +632,16 @@ namespace BMA.EHR.Leave.Service.Controllers
private async Task<dynamic> GetReport06(LeaveRequest data)
{
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//if (profile == null)
//{
// return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
//}
var profile = await _userProfileRepository.GetProfileLeaveReportByKeycloakIdAsync(data.KeycloakUserId, AccessToken, "leave15");
if (profile == null)
{
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
}
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
//var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
@ -610,7 +652,10 @@ namespace BMA.EHR.Leave.Service.Controllers
// if (list.Count > 0)
// approver = list.First().Name;
//}
var approveResult = await GetApproverData(data.Approvers);
var Oc = profile.isCommission == false
? profile.Oc.ToThaiNumber()
: profile.Oc.Replace("สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร", "สำนักงาน ก.ก.").ToThaiNumber();
var approveResult = await GetApproverData(data.Approvers, profile.isCommission);
return new
{
template = "leave15",
@ -641,10 +686,10 @@ namespace BMA.EHR.Leave.Service.Controllers
organizationName = profile!.Oc!.ToThaiNumber(),
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
? new[] { (profile!.Oc!.ToThaiNumber()) }
? new[] { Oc }
: !string.IsNullOrEmpty(profile.PosExecutiveName)
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
: new[] { (profile!.Oc!.ToThaiNumber()) },
? new[] { profile.PosExecutiveName.ToThaiNumber(), Oc }
: new[] { Oc },
leavebirthDate = data.LeaveBirthDate == null ? "" : data.LeaveBirthDate.Value.Date.ToThaiShortDate().ToThaiNumber(),
leavegovernmentDate = data.LeaveGovernmentDate == null ? "" : data.LeaveGovernmentDate.Value.Date.ToThaiShortDate().ToThaiNumber(),
@ -684,18 +729,22 @@ namespace BMA.EHR.Leave.Service.Controllers
private async Task<dynamic> GetReport07(LeaveRequest data)
{
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//if (profile == null)
//{
// return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
//}
//var profileLeave = await _userProfileRepository.GetProfileLeaveByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//if (profileLeave == null)
//{
// return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
//}
var profile = await _userProfileRepository.GetProfileLeaveReportByKeycloakIdAsync(data.KeycloakUserId, AccessToken, "leave16");
if (profile == null)
{
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
}
var profileLeave = await _userProfileRepository.GetProfileLeaveByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
if (profileLeave == null)
{
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
}
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
//var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
@ -706,7 +755,10 @@ namespace BMA.EHR.Leave.Service.Controllers
// if (list.Count > 0)
// approver = list.First().Name;
//}
var approveResult = await GetApproverData(data.Approvers);
var Oc = profile.isCommission == false
? profile.Oc.ToThaiNumber()
: profile.Oc.Replace("สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร", "สำนักงาน ก.ก.").ToThaiNumber();
var approveResult = await GetApproverData(data.Approvers, profile.isCommission);
return new
{
template = "leave16",
@ -738,36 +790,36 @@ namespace BMA.EHR.Leave.Service.Controllers
organizationName = profile!.Oc!.ToThaiNumber(),
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
? new[] { (profile!.Oc!.ToThaiNumber()) }
? new[] { Oc }
: !string.IsNullOrEmpty(profile.PosExecutiveName)
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
: new[] { (profile!.Oc!.ToThaiNumber()) },
? new[] { profile.PosExecutiveName.ToThaiNumber(), Oc }
: new[] { Oc },
leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(),
leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(),
profileType = profile.ProfileType,
birthDate = profileLeave.BirthDate.ToThaiShortDate().ToThaiNumber(),
retireDate = profileLeave.RetireDate.ToThaiShortDate().ToThaiNumber(),
govAge = profileLeave.GovAge.ToThaiNumber(),
age = profileLeave.Age.ToThaiNumber(),
dateAppoint = profileLeave.DateAppoint.ToThaiShortDate().ToThaiNumber(),
dateCurrent = profileLeave.DateCurrent.ToThaiShortDate().ToThaiNumber(),
amount = ((double)profileLeave.Amount).ToNumericText().ToThaiNumber(),
telephoneNumber = profileLeave.TelephoneNumber == null ? "" : profileLeave.TelephoneNumber.ToThaiNumber(),
birthDate = profile.BirthDate.ToThaiShortDate().ToThaiNumber(),
retireDate = profile.RetireDate.ToThaiShortDate().ToThaiNumber(),
govAge = profile.GovAge.ToThaiNumber(),
age = profile.Age.ToThaiNumber(),
dateAppoint = profile.DateAppoint.ToThaiShortDate().ToThaiNumber(),
dateCurrent = profile.DateCurrent.ToThaiShortDate().ToThaiNumber(),
amount = ((double)profile.Amount).ToNumericText().ToThaiNumber(),
telephoneNumber = profile.TelephoneNumber == null ? "" : profile.TelephoneNumber.ToThaiNumber(),
posLevel = profileLeave.PosLevel.ToThaiNumber(),
posType = profileLeave.PosType.ToThaiNumber(),
currentAddress = profileLeave.CurrentAddress.ToThaiNumber(),
oc = profileLeave.Oc.ToThaiNumber(),
root = profileLeave.Root.ToThaiNumber(),
child1 = profileLeave.Child1 == null ? "" : profileLeave.Child1!.ToThaiNumber(),
child2 = profileLeave.Child2 == null ? "" : profileLeave.Child2!.ToThaiNumber(),
child3 = profileLeave.Child3 == null ? "" : profileLeave.Child3!.ToThaiNumber(),
child4 = profileLeave.Child4 == null ? "" : profileLeave.Child4!.ToThaiNumber(),
posLevel = profile.PosLevel.ToThaiNumber(),
posType = profile.PosType.ToThaiNumber(),
currentAddress = profile.CurrentAddress.ToThaiNumber(),
oc = profile.Oc.ToThaiNumber(),
root = profile.Root.ToThaiNumber(),
child1 = profile.Child1 == null ? "" : profile.Child1!.ToThaiNumber(),
child2 = profile.Child2 == null ? "" : profile.Child2!.ToThaiNumber(),
child3 = profile.Child3 == null ? "" : profile.Child3!.ToThaiNumber(),
child4 = profile.Child4 == null ? "" : profile.Child4!.ToThaiNumber(),
positions = profileLeave.Positions.Select(x => new
positions = profile.Positions.Select(x => new
{
positionName = x.PositionName == null ? "" : x.PositionName.ToThaiNumber(),
dateStart = x.DateStart.ToThaiShortDate().ToThaiNumber(),
@ -780,7 +832,7 @@ namespace BMA.EHR.Leave.Service.Controllers
orgChild3 = x.OrgChild3 == null ? "" : x.OrgChild3.ToThaiNumber(),
orgChild4 = x.OrgChild4 == null ? "" : x.OrgChild4.ToThaiNumber(),
}).ToList(),
educations = profileLeave.Educations.Select(x => new
educations = profile.Educations.Select(x => new
{
educationLevel = x.EducationLevel == null ? "" : x.EducationLevel.ToThaiNumber(),
institute = x.Institute == null ? "" : x.Institute.ToThaiNumber(),
@ -802,12 +854,16 @@ namespace BMA.EHR.Leave.Service.Controllers
private async Task<dynamic> GetReport08(LeaveRequest data)
{
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//if (profile == null)
//{
// return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
//}
var profile = await _userProfileRepository.GetProfileLeaveReportByKeycloakIdAsync(data.KeycloakUserId, AccessToken, "leave17");
if (profile == null)
{
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
}
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
//var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
@ -818,7 +874,10 @@ namespace BMA.EHR.Leave.Service.Controllers
// if (list.Count > 0)
// approver = list.First().Name;
//}
var approveResult = await GetApproverData(data.Approvers);
var Oc = profile.isCommission == false
? profile.Oc.ToThaiNumber()
: profile.Oc.Replace("สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร", "สำนักงาน ก.ก.").ToThaiNumber();
var approveResult = await GetApproverData(data.Approvers, profile.isCommission);
return new
{
template = "leave17",
@ -849,10 +908,10 @@ namespace BMA.EHR.Leave.Service.Controllers
organizationName = profile!.Oc!.ToThaiNumber(),
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
? new[] { (profile!.Oc!.ToThaiNumber()) }
? new[] { Oc }
: !string.IsNullOrEmpty(profile.PosExecutiveName)
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
: new[] { (profile!.Oc!.ToThaiNumber()) },
? new[] { profile.PosExecutiveName.ToThaiNumber(), Oc }
: new[] { Oc },
leaveSalary = data.LeaveSalary == null ? "" : data.LeaveSalary.Value.ToNumericText().ToThaiNumber(),
leaveSalaryText = data.LeaveSalaryText.ToThaiNumber(),
@ -884,14 +943,19 @@ namespace BMA.EHR.Leave.Service.Controllers
private async Task<dynamic> GetReport09(LeaveRequest data)
{
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
if (profile == null)
{
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
}
//var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//if (profile == null)
//{
// return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
//}
var profileLeave = await _userProfileRepository.GetProfileLeaveByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
if (profileLeave == null)
//var profileLeave = await _userProfileRepository.GetProfileLeaveByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//if (profileLeave == null)
//{
// return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
//}
var profile = await _userProfileRepository.GetProfileLeaveReportByKeycloakIdAsync(data.KeycloakUserId, AccessToken, "leave18");
if (profile == null)
{
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
}
@ -906,7 +970,10 @@ namespace BMA.EHR.Leave.Service.Controllers
// if (list.Count > 0)
// approver = list.First().Name;
//}
var approveResult = await GetApproverData(data.Approvers);
var Oc = profile.isCommission == false
? profile.Oc.ToThaiNumber()
: profile.Oc.Replace("สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร", "สำนักงาน ก.ก.").ToThaiNumber();
var approveResult = await GetApproverData(data.Approvers, profile.isCommission);
return new
{
template = "leave18",
@ -937,36 +1004,36 @@ namespace BMA.EHR.Leave.Service.Controllers
organizationName = profile!.Oc!.ToThaiNumber(),
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
? new[] { (profile!.Oc!.ToThaiNumber()) }
? new[] { Oc }
: !string.IsNullOrEmpty(profile.PosExecutiveName)
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
: new[] { (profile!.Oc!.ToThaiNumber()) },
? new[] { profile.PosExecutiveName.ToThaiNumber(), Oc }
: new[] { Oc },
leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(),
leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(),
profileType = profile.ProfileType,
birthDate = profileLeave.BirthDate.ToThaiShortDate().ToThaiNumber(),
retireDate = profileLeave.RetireDate.ToThaiShortDate().ToThaiNumber(),
govAge = profileLeave.GovAge.ToThaiNumber(),
age = profileLeave.Age.ToThaiNumber(),
dateAppoint = profileLeave.DateAppoint.ToThaiShortDate().ToThaiNumber(),
dateCurrent = profileLeave.DateCurrent.ToThaiShortDate().ToThaiNumber(),
amount = ((double)profileLeave.Amount).ToNumericText().ToThaiNumber(),
telephoneNumber = profileLeave.TelephoneNumber == null ? "" : profileLeave.TelephoneNumber.ToThaiNumber(),
birthDate = profile.BirthDate.ToThaiShortDate().ToThaiNumber(),
retireDate = profile.RetireDate.ToThaiShortDate().ToThaiNumber(),
govAge = profile.GovAge.ToThaiNumber(),
age = profile.Age.ToThaiNumber(),
dateAppoint = profile.DateAppoint.ToThaiShortDate().ToThaiNumber(),
dateCurrent = profile.DateCurrent.ToThaiShortDate().ToThaiNumber(),
amount = ((double)profile.Amount).ToNumericText().ToThaiNumber(),
telephoneNumber = profile.TelephoneNumber == null ? "" : profile.TelephoneNumber.ToThaiNumber(),
posLevel = profileLeave.PosLevel.ToThaiNumber(),
posType = profileLeave.PosType.ToThaiNumber(),
currentAddress = profileLeave.CurrentAddress.ToThaiNumber(),
oc = profileLeave.Oc.ToThaiNumber(),
root = profileLeave.Root.ToThaiNumber(),
child1 = profileLeave.Child1 == null ? "" : profileLeave.Child1!.ToThaiNumber(),
child2 = profileLeave.Child2 == null ? "" : profileLeave.Child2!.ToThaiNumber(),
child3 = profileLeave.Child3 == null ? "" : profileLeave.Child3!.ToThaiNumber(),
child4 = profileLeave.Child4 == null ? "" : profileLeave.Child4!.ToThaiNumber(),
posLevel = profile.PosLevel.ToThaiNumber(),
posType = profile.PosType.ToThaiNumber(),
currentAddress = profile.CurrentAddress.ToThaiNumber(),
oc = profile.Oc.ToThaiNumber(),
root = profile.Root.ToThaiNumber(),
child1 = profile.Child1 == null ? "" : profile.Child1!.ToThaiNumber(),
child2 = profile.Child2 == null ? "" : profile.Child2!.ToThaiNumber(),
child3 = profile.Child3 == null ? "" : profile.Child3!.ToThaiNumber(),
child4 = profile.Child4 == null ? "" : profile.Child4!.ToThaiNumber(),
positions = profileLeave.Positions.Select(x => new
positions = profile.Positions.Select(x => new
{
positionName = x.PositionName == null ? "" : x.PositionName.ToThaiNumber(),
dateStart = x.DateStart.ToThaiShortDate().ToThaiNumber(),
@ -980,7 +1047,7 @@ namespace BMA.EHR.Leave.Service.Controllers
orgChild4 = x.OrgChild4 == null ? "" : x.OrgChild4.ToThaiNumber(),
}).ToList(),
educations = profileLeave.Educations.Select(x => new
educations = profile.Educations.Select(x => new
{
educationLevel = x.EducationLevel == null ? "" : x.EducationLevel.ToThaiNumber(),
institute = x.Institute == null ? "" : x.Institute.ToThaiNumber(),
@ -1109,12 +1176,16 @@ namespace BMA.EHR.Leave.Service.Controllers
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
}
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken);
//if (profile == null)
//{
// return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
//}
var profile = await _userProfileRepository.GetProfileLeaveReportByKeycloakIdAsync(data.KeycloakUserId, AccessToken, "leave9");
if (profile == null)
{
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
}
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
//var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
@ -1125,7 +1196,10 @@ namespace BMA.EHR.Leave.Service.Controllers
// if (list.Count > 0)
// approver = list.First().Name;
//}
var approveResult = await GetApproverData(data.Approvers);
var Oc = profile.isCommission == false
? profile.Oc.ToThaiNumber()
: profile.Oc.Replace("สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร", "สำนักงาน ก.ก.").ToThaiNumber();
var approveResult = await GetApproverData(data.Approvers, profile.isCommission);
var result = new
{
template = "แบบใบขอยกเลิกวันลา",
@ -1154,10 +1228,10 @@ namespace BMA.EHR.Leave.Service.Controllers
organizationName = profile!.Oc!.ToThaiNumber(),
posExOrg = !string.IsNullOrEmpty(profile.PositionLeaveName) &&
(profile.PositionLeaveName.Contains("อำนวยการ") || profile.PositionLeaveName.Contains("บริหาร"))
? new[] { (profile!.Oc!.ToThaiNumber()) }
? new[] { Oc }
: !string.IsNullOrEmpty(profile.PosExecutiveName)
? new[] { (profile.PosExecutiveName.ToThaiNumber()), (profile!.Oc!.ToThaiNumber()) }
: new[] { (profile!.Oc!.ToThaiNumber()) },
? new[] { profile.PosExecutiveName.ToThaiNumber(), Oc }
: new[] { Oc },
leaveDateStart = data.LeaveStartDate.Date.ToThaiShortDate().ToThaiNumber(),
leaveDateEnd = data.LeaveEndDate.Date.ToThaiShortDate().ToThaiNumber(),
dear = data.CommanderPosition == null ? data.Dear : data.CommanderPosition.ToThaiNumber(),
@ -2811,7 +2885,7 @@ namespace BMA.EHR.Leave.Service.Controllers
}
#endregion
private async Task<object> GetApproverData(List<LeaveRequestApprover> list)
private async Task<object> GetApproverData(List<LeaveRequestApprover> list, bool? isCommission = false)
{
var _default = new
{
@ -2842,10 +2916,10 @@ namespace BMA.EHR.Leave.Service.Controllers
: $"{x.PositionName}{x.PositionLevelName}").ToThaiNumber(),
posExOrg = !string.IsNullOrEmpty(x.PositionLevelName) &&
(x.PositionLevelName.Contains("อำนวยการ") || x.PositionLevelName.Contains("บริหาร"))
? new[] { (x!.OrganizationName!.ToThaiNumber()) }
? new[] { (isCommission == false ? x!.OrganizationName : x!.OrganizationName.Replace("สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร", "สำนักงาน ก.ก.")).ToThaiNumber() }
: !string.IsNullOrEmpty(x.PosExecutiveName)
? new[] { (x.PosExecutiveName.ToThaiNumber()), (x!.OrganizationName!.ToThaiNumber()) }
: new[] { (x!.OrganizationName!.ToThaiNumber()) },
? new[] { (x.PosExecutiveName.ToThaiNumber()), (isCommission == false ? x!.OrganizationName : x!.OrganizationName.Replace("สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร", "สำนักงาน ก.ก.")).ToThaiNumber() }
: new[] { (isCommission == false ? x!.OrganizationName : x!.OrganizationName.Replace("สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร", "สำนักงาน ก.ก.")).ToThaiNumber() },
positionSign = !string.IsNullOrEmpty(x.PositionSign)
? x.PositionSign.Replace("\r", "").Replace("\n", " ")
: "............................................",