diff --git a/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs b/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs index 689dd96c..dbb3e3c5 100644 --- a/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs +++ b/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs @@ -10,6 +10,7 @@ using BMA.EHR.Domain.Models.Organizations; using BMA.EHR.Domain.Models.Retirement; using BMA.EHR.Domain.Shared; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Metadata; using Microsoft.EntityFrameworkCore; using System.Net; @@ -27,6 +28,9 @@ namespace BMA.EHR.Application.Repositories.Reports private readonly InsigniaPeriodsRepository _repositoryInsignia; private readonly string CRLF = "\r\n"; + private readonly UserProfileRepository _userProfileRepository; + private readonly IHttpContextAccessor _httpContextAccessor; + #endregion #region " Constructor and Destructor " @@ -35,18 +39,25 @@ namespace BMA.EHR.Application.Repositories.Reports OrganizationCommonRepository organizationCommonRepository, InsigniaPeriodsRepository repositoryInsignia, NotificationRepository repositoryNoti, - IWebHostEnvironment hostEnvironment) + IWebHostEnvironment hostEnvironment, + UserProfileRepository userProfileRepository, + IHttpContextAccessor httpContextAccessor) { _dbContext = dbContext; _hostingEnvironment = hostEnvironment; _repositoryNoti = repositoryNoti; _organizationCommonRepository = organizationCommonRepository; _repositoryInsignia = repositoryInsignia; + _userProfileRepository = userProfileRepository; + _httpContextAccessor = httpContextAccessor; } #endregion + private string? AccessToken => _httpContextAccessor?.HttpContext?.Request.Headers["Authorization"]; + #region " Methods " + // private string GetPositionByYear(string profileID, int year) // { // using (var ctx = new ApplicationDbContext()) @@ -149,7 +160,7 @@ namespace BMA.EHR.Application.Repositories.Reports public async Task GetProfileInsignia(Guid id) { - + var profile = (from r in await _dbContext.Set() .Include(x => x.Prefix) .Include(x => x.Position) @@ -173,342 +184,338 @@ namespace BMA.EHR.Application.Repositories.Reports //39-แบบ ขร1 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นสายสะพาย public async Task GetKhr1Report(Guid id) { - //var period = await _dbContext.Set() - // .FirstOrDefaultAsync(x => x.Id == id); - //if (period == null) - // throw new Exception(GlobalMessages.InsigniaPeriodNotFound); + var period = await _dbContext.Set() + .FirstOrDefaultAsync(x => x.Id == id); + if (period == null) + throw new Exception(GlobalMessages.InsigniaPeriodNotFound); - //var data_insignia = await _dbContext.Set() - // //.Include(x => x.Profile) - // .Where(x => x.Request.Period == period) - // .Where(x => x.IsApprove == true) - // .Where(x => x.Status == "PENDING") - // .Where(x => x.RequestInsignia.InsigniaType != null) - // .Where(x => x.RequestInsignia.InsigniaType.Name == "ชั้นสายสะพาย") - // .Select(x => new - // { - // Gendor = x.Profile.Gender == null ? null : x.Profile.Gender.Name, - // RequestInsigniaName = x.RequestInsignia.Name, - // OcId = x.Request.Organization.Id - // }) - // .ToListAsync(); + var data_insignia = await _dbContext.Set() + //.Include(x => x.Profile) + .Where(x => x.Request.Period.Id == period.Id) + .Where(x => x.IsApprove == true) + .Where(x => x.Status == "PENDING") + .Where(x => x.RequestInsignia.InsigniaType != null) + .Where(x => x.RequestInsignia.InsigniaType.Name == "ชั้นสายสะพาย") + .Select(x => new + { + //Gendor = x.Profile.Gender == null ? null : x.Profile.Gender.Name, + Gendor = _userProfileRepository.GetOfficerProfileById(x.ProfileId, AccessToken).Gender ?? "", + RequestInsigniaName = x.RequestInsignia.Name, + OcId = x.Request.OrganizationId + }) + .ToListAsync(); - //var insignia = (from r in data_insignia - // group r by new { OcId = r.OcId } into g - // select new - // { - // RowNo = 1, - // DepartmentName = _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), - // G1Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "มหาปรมาภรณ์ช้างเผือก" ? 1 : 0), - // G1Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "มหาปรมาภรณ์ช้างเผือก" ? 1 : 0), - // G2Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "มหาวชิรมงกุฎ" ? 1 : 0), - // G2Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "มหาวชิรมงกุฎ" ? 1 : 0), - // G3Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ประถมาภรณ์ช้างเผือก" ? 1 : 0), - // G3Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ประถมาภรณ์ช้างเผือก" ? 1 : 0), - // G4Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ประถมาภรณ์มงกุฎไทย" ? 1 : 0), - // G4Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ประถมาภรณ์มงกุฎไทย" ? 1 : 0), - // G5Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0), - // G5Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0), - // Remark = "", - // }).ToList(); + var insignia = (from r in data_insignia + group r by new { OcId = r.OcId } into g + select new + { + RowNo = 1, + DepartmentName = _userProfileRepository.GetOc(g.Key.OcId, 0, AccessToken).Root,// _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), + G1Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "มหาปรมาภรณ์ช้างเผือก" ? 1 : 0), + G1Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "มหาปรมาภรณ์ช้างเผือก" ? 1 : 0), + G2Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "มหาวชิรมงกุฎ" ? 1 : 0), + G2Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "มหาวชิรมงกุฎ" ? 1 : 0), + G3Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ประถมาภรณ์ช้างเผือก" ? 1 : 0), + G3Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ประถมาภรณ์ช้างเผือก" ? 1 : 0), + G4Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ประถมาภรณ์มงกุฎไทย" ? 1 : 0), + G4Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ประถมาภรณ์มงกุฎไทย" ? 1 : 0), + G5Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0), + G5Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0), + Remark = "", + }).ToList(); - //return insignia; - - return new { }; + return insignia; } public async Task GetKhr1TotalReport(Guid id) { - //var period = await _dbContext.Set() - // .FirstOrDefaultAsync(x => x.Id == id); - //if (period == null) - // throw new Exception(GlobalMessages.InsigniaPeriodNotFound); + var period = await _dbContext.Set() + .FirstOrDefaultAsync(x => x.Id == id); + if (period == null) + throw new Exception(GlobalMessages.InsigniaPeriodNotFound); - //var data_insignia = await _dbContext.Set() - // .Include(x => x.Profile) - // .Where(x => x.Request.Period == period) - // .Where(x => x.IsApprove == true) - // .Where(x => x.Status == "PENDING") - // .Where(x => x.RequestInsignia.InsigniaType != null) - // .Where(x => x.RequestInsignia.InsigniaType.Name == "ชั้นสายสะพาย") - // .Select(x => new - // { - // Gendor = x.Profile.Gender == null ? null : x.Profile.Gender.Name, - // RequestInsigniaName = x.RequestInsignia.Name, - // OcId = x.Request.Organization.Id - // }) - // .ToListAsync(); + var data_insignia = await _dbContext.Set() + //.Include(x => x.Profile) + .Where(x => x.Request.Period.Id == period.Id) + .Where(x => x.IsApprove == true) + .Where(x => x.Status == "PENDING") + .Where(x => x.RequestInsignia.InsigniaType != null) + .Where(x => x.RequestInsignia.InsigniaType.Name == "ชั้นสายสะพาย") + .Select(x => new + { + //Gendor = x.Profile.Gender == null ? null : x.Profile.Gender.Name, + Gendor = _userProfileRepository.GetOfficerProfileById(x.ProfileId, AccessToken).Gender ?? "", + RequestInsigniaName = x.RequestInsignia.Name, + OcId = x.Request.OrganizationId + }) + .ToListAsync(); - //var insignia = (from r in data_insignia - // group r by new { OcId = r.OcId } into g - // select new - // { - // RowNo = 1, - // DepartmentName = _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), - // G1Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "มหาปรมาภรณ์ช้างเผือก" ? 1 : 0), - // G1Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "มหาปรมาภรณ์ช้างเผือก" ? 1 : 0), - // G2Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "มหาวชิรมงกุฎ" ? 1 : 0), - // G2Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "มหาวชิรมงกุฎ" ? 1 : 0), - // G3Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ประถมาภรณ์ช้างเผือก" ? 1 : 0), - // G3Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ประถมาภรณ์ช้างเผือก" ? 1 : 0), - // G4Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ประถมาภรณ์มงกุฎไทย" ? 1 : 0), - // G4Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ประถมาภรณ์มงกุฎไทย" ? 1 : 0), - // G5Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0), - // G5Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0), - // Remark = "", - // }).ToList(); + var insignia = (from r in data_insignia + group r by new { OcId = r.OcId } into g + select new + { + RowNo = 1, + DepartmentName = _userProfileRepository.GetOc(g.Key.OcId, 0, AccessToken).Root,// _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), + G1Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "มหาปรมาภรณ์ช้างเผือก" ? 1 : 0), + G1Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "มหาปรมาภรณ์ช้างเผือก" ? 1 : 0), + G2Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "มหาวชิรมงกุฎ" ? 1 : 0), + G2Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "มหาวชิรมงกุฎ" ? 1 : 0), + G3Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ประถมาภรณ์ช้างเผือก" ? 1 : 0), + G3Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ประถมาภรณ์ช้างเผือก" ? 1 : 0), + G4Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ประถมาภรณ์มงกุฎไทย" ? 1 : 0), + G4Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ประถมาภรณ์มงกุฎไทย" ? 1 : 0), + G5Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0), + G5Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0), + Remark = "", + }).ToList(); - //return new - //{ - // G1Male = insignia.Sum(x => x.G1Male), - // G1Female = insignia.Sum(x => x.G1Female), - // G2Male = insignia.Sum(x => x.G2Male), - // G2Female = insignia.Sum(x => x.G2Female), - // G3Male = insignia.Sum(x => x.G3Male), - // G3Female = insignia.Sum(x => x.G3Female), - // G4Male = insignia.Sum(x => x.G4Male), - // G4Female = insignia.Sum(x => x.G4Female), - // G5Male = insignia.Sum(x => x.G5Male), - // G5Female = insignia.Sum(x => x.G5Female), - // Remark = "", - //}; - - return new { }; + return new + { + G1Male = insignia.Sum(x => x.G1Male), + G1Female = insignia.Sum(x => x.G1Female), + G2Male = insignia.Sum(x => x.G2Male), + G2Female = insignia.Sum(x => x.G2Female), + G3Male = insignia.Sum(x => x.G3Male), + G3Female = insignia.Sum(x => x.G3Female), + G4Male = insignia.Sum(x => x.G4Male), + G4Female = insignia.Sum(x => x.G4Female), + G5Male = insignia.Sum(x => x.G5Male), + G5Female = insignia.Sum(x => x.G5Female), + Remark = "", + }; } //40-แบบ ขร2 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นต่ำกว่าสายสะพาย public async Task GetKhr2Report(Guid id) { - //var period = await _dbContext.Set() - // .FirstOrDefaultAsync(x => x.Id == id); - //if (period == null) - // throw new Exception(GlobalMessages.InsigniaPeriodNotFound); + var period = await _dbContext.Set() + .FirstOrDefaultAsync(x => x.Id == id); + if (period == null) + throw new Exception(GlobalMessages.InsigniaPeriodNotFound); - //var data_insignia = await _dbContext.Set() - // .Include(x => x.Profile) - // .Where(x => x.Request.Period == period) - // .Where(x => x.IsApprove == true) - // .Where(x => x.Status == "PENDING") - // .Where(x => x.RequestInsignia.InsigniaType != null) - // .Where(x => x.RequestInsignia.InsigniaType.Name == "ชั้นต่ำกว่าสายสะพาย") - // .Select(x => new - // { - // Gendor = x.Profile.Gender == null ? null : x.Profile.Gender.Name, - // RequestInsigniaName = x.RequestInsignia.Name, - // OcId = x.Request.Organization.Id - // }) - // .ToListAsync(); + var data_insignia = await _dbContext.Set() + //.Include(x => x.Profile) + .Where(x => x.Request.Period.Id == period.Id) + .Where(x => x.IsApprove == true) + .Where(x => x.Status == "PENDING") + .Where(x => x.RequestInsignia.InsigniaType != null) + .Where(x => x.RequestInsignia.InsigniaType.Name == "ชั้นต่ำกว่าสายสะพาย") + .Select(x => new + { + //Gendor = x.Profile.Gender == null ? null : x.Profile.Gender.Name, + Gendor = _userProfileRepository.GetOfficerProfileById(x.ProfileId, AccessToken).Gender ?? "", + RequestInsigniaName = x.RequestInsignia.Name, + OcId = x.Request.OrganizationId + }) + .ToListAsync(); - //var insignia = (from r in data_insignia - // group r by new { OcId = r.OcId } into g - // select new - // { - // RowNo = 1, - // DepartmentName = _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), - // G1Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ทวีติยาภรณ์ช้างเผือก" ? 1 : 0), - // G1Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ทวีติยาภรณ์ช้างเผือก" ? 1 : 0), - // G2Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ทวีติยาภรณ์มงกุฎไทย" ? 1 : 0), - // G2Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ทวีติยาภรณ์มงกุฎไทย" ? 1 : 0), - // G3Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ตริตาภรณ์ช้างเผือก" ? 1 : 0), - // G3Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ตริตาภรณ์ช้างเผือก" ? 1 : 0), - // G4Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ตริตาภรณ์มงกุฎไทย" ? 1 : 0), - // G4Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ตริตาภรณ์มงกุฎไทย" ? 1 : 0), - // G5Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "จัตุรถาภรณ์ช้างเผือก" ? 1 : 0), - // G5Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "จัตุรถาภรณ์ช้างเผือก" ? 1 : 0), - // G6Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "จัตุรถาภรณ์มงกุฎไทย" ? 1 : 0), - // G6Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "จัตุรถาภรณ์มงกุฎไทย" ? 1 : 0), - // G7Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เบญจมาภรณ์ช้างเผือก" ? 1 : 0), - // G7Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เบญจมาภรณ์ช้างเผือก" ? 1 : 0), - // G8Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เบญจมาภรณ์มงกุฎไทย" ? 1 : 0), - // G8Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เบญจมาภรณ์มงกุฎไทย" ? 1 : 0), - // G9Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0), - // G9Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0), - // Remark = "", - // }).ToList(); + var insignia = (from r in data_insignia + group r by new { OcId = r.OcId } into g + select new + { + RowNo = 1, + DepartmentName = _userProfileRepository.GetOc(g.Key.OcId, 0, AccessToken).Root,// _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), + G1Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ทวีติยาภรณ์ช้างเผือก" ? 1 : 0), + G1Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ทวีติยาภรณ์ช้างเผือก" ? 1 : 0), + G2Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ทวีติยาภรณ์มงกุฎไทย" ? 1 : 0), + G2Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ทวีติยาภรณ์มงกุฎไทย" ? 1 : 0), + G3Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ตริตาภรณ์ช้างเผือก" ? 1 : 0), + G3Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ตริตาภรณ์ช้างเผือก" ? 1 : 0), + G4Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ตริตาภรณ์มงกุฎไทย" ? 1 : 0), + G4Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ตริตาภรณ์มงกุฎไทย" ? 1 : 0), + G5Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "จัตุรถาภรณ์ช้างเผือก" ? 1 : 0), + G5Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "จัตุรถาภรณ์ช้างเผือก" ? 1 : 0), + G6Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "จัตุรถาภรณ์มงกุฎไทย" ? 1 : 0), + G6Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "จัตุรถาภรณ์มงกุฎไทย" ? 1 : 0), + G7Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เบญจมาภรณ์ช้างเผือก" ? 1 : 0), + G7Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เบญจมาภรณ์ช้างเผือก" ? 1 : 0), + G8Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เบญจมาภรณ์มงกุฎไทย" ? 1 : 0), + G8Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เบญจมาภรณ์มงกุฎไทย" ? 1 : 0), + G9Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0), + G9Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0), + Remark = "", + }).ToList(); - //return insignia; - - return new { }; + return insignia; } public async Task GetKhr2TotalReport(Guid id) { - //var period = await _dbContext.Set() - // .FirstOrDefaultAsync(x => x.Id == id); - //if (period == null) - // throw new Exception(GlobalMessages.InsigniaPeriodNotFound); + var period = await _dbContext.Set() + .FirstOrDefaultAsync(x => x.Id == id); + if (period == null) + throw new Exception(GlobalMessages.InsigniaPeriodNotFound); - //var data_insignia = await _dbContext.Set() - // .Include(x => x.Profile) - // .Where(x => x.Request.Period == period) - // .Where(x => x.IsApprove == true) - // .Where(x => x.Status == "PENDING") - // .Where(x => x.RequestInsignia.InsigniaType != null) - // .Where(x => x.RequestInsignia.InsigniaType.Name == "ชั้นต่ำกว่าสายสะพาย") - // .Select(x => new - // { - // Gendor = x.Profile.Gender == null ? null : x.Profile.Gender.Name, - // RequestInsigniaName = x.RequestInsignia.Name, - // OcId = x.Request.Organization.Id - // }) - // .ToListAsync(); + var data_insignia = await _dbContext.Set() + //.Include(x => x.Profile) + .Where(x => x.Request.Period.Id == period.Id) + .Where(x => x.IsApprove == true) + .Where(x => x.Status == "PENDING") + .Where(x => x.RequestInsignia.InsigniaType != null) + .Where(x => x.RequestInsignia.InsigniaType.Name == "ชั้นต่ำกว่าสายสะพาย") + .Select(x => new + { + //Gendor = x.Profile.Gender == null ? null : x.Profile.Gender.Name, + Gendor = _userProfileRepository.GetOfficerProfileById(x.ProfileId, AccessToken).Gender ?? "", + RequestInsigniaName = x.RequestInsignia.Name, + OcId = x.Request.OrganizationId + }) + .ToListAsync(); - //var insignia = (from r in data_insignia - // group r by new { OcId = r.OcId } into g - // select new - // { - // RowNo = 1, - // DepartmentName = _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), - // G1Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ทวีติยาภรณ์ช้างเผือก" ? 1 : 0), - // G1Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ทวีติยาภรณ์ช้างเผือก" ? 1 : 0), - // G2Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ทวีติยาภรณ์มงกุฎไทย" ? 1 : 0), - // G2Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ทวีติยาภรณ์มงกุฎไทย" ? 1 : 0), - // G3Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ตริตาภรณ์ช้างเผือก" ? 1 : 0), - // G3Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ตริตาภรณ์ช้างเผือก" ? 1 : 0), - // G4Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ตริตาภรณ์มงกุฎไทย" ? 1 : 0), - // G4Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ตริตาภรณ์มงกุฎไทย" ? 1 : 0), - // G5Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "จัตุรถาภรณ์ช้างเผือก" ? 1 : 0), - // G5Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "จัตุรถาภรณ์ช้างเผือก" ? 1 : 0), - // G6Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "จัตุรถาภรณ์มงกุฎไทย" ? 1 : 0), - // G6Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "จัตุรถาภรณ์มงกุฎไทย" ? 1 : 0), - // G7Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เบญจมาภรณ์ช้างเผือก" ? 1 : 0), - // G7Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เบญจมาภรณ์ช้างเผือก" ? 1 : 0), - // G8Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เบญจมาภรณ์มงกุฎไทย" ? 1 : 0), - // G8Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เบญจมาภรณ์มงกุฎไทย" ? 1 : 0), - // G9Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0), - // G9Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0), - // Remark = "", - // }).ToList(); + var insignia = (from r in data_insignia + group r by new { OcId = r.OcId } into g + select new + { + RowNo = 1, + DepartmentName = _userProfileRepository.GetOc(g.Key.OcId, 0, AccessToken).Root,// _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), + G1Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ทวีติยาภรณ์ช้างเผือก" ? 1 : 0), + G1Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ทวีติยาภรณ์ช้างเผือก" ? 1 : 0), + G2Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ทวีติยาภรณ์มงกุฎไทย" ? 1 : 0), + G2Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ทวีติยาภรณ์มงกุฎไทย" ? 1 : 0), + G3Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ตริตาภรณ์ช้างเผือก" ? 1 : 0), + G3Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ตริตาภรณ์ช้างเผือก" ? 1 : 0), + G4Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ตริตาภรณ์มงกุฎไทย" ? 1 : 0), + G4Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ตริตาภรณ์มงกุฎไทย" ? 1 : 0), + G5Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "จัตุรถาภรณ์ช้างเผือก" ? 1 : 0), + G5Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "จัตุรถาภรณ์ช้างเผือก" ? 1 : 0), + G6Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "จัตุรถาภรณ์มงกุฎไทย" ? 1 : 0), + G6Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "จัตุรถาภรณ์มงกุฎไทย" ? 1 : 0), + G7Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เบญจมาภรณ์ช้างเผือก" ? 1 : 0), + G7Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เบญจมาภรณ์ช้างเผือก" ? 1 : 0), + G8Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เบญจมาภรณ์มงกุฎไทย" ? 1 : 0), + G8Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เบญจมาภรณ์มงกุฎไทย" ? 1 : 0), + G9Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0), + G9Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0), + Remark = "", + }).ToList(); - //return new - //{ - // G1Male = insignia.Sum(x => x.G1Male), - // G1Female = insignia.Sum(x => x.G1Female), - // G2Male = insignia.Sum(x => x.G2Male), - // G2Female = insignia.Sum(x => x.G2Female), - // G3Male = insignia.Sum(x => x.G3Male), - // G3Female = insignia.Sum(x => x.G3Female), - // G4Male = insignia.Sum(x => x.G4Male), - // G4Female = insignia.Sum(x => x.G4Female), - // G5Male = insignia.Sum(x => x.G5Male), - // G5Female = insignia.Sum(x => x.G5Female), - // G6Male = insignia.Sum(x => x.G6Male), - // G6Female = insignia.Sum(x => x.G6Female), - // G7Male = insignia.Sum(x => x.G7Male), - // G7Female = insignia.Sum(x => x.G7Female), - // G8Male = insignia.Sum(x => x.G8Male), - // G8Female = insignia.Sum(x => x.G8Female), - // G9Male = insignia.Sum(x => x.G9Male), - // G9Female = insignia.Sum(x => x.G9Female), - // Remark = "", - //}; - - return new { }; + return new + { + G1Male = insignia.Sum(x => x.G1Male), + G1Female = insignia.Sum(x => x.G1Female), + G2Male = insignia.Sum(x => x.G2Male), + G2Female = insignia.Sum(x => x.G2Female), + G3Male = insignia.Sum(x => x.G3Male), + G3Female = insignia.Sum(x => x.G3Female), + G4Male = insignia.Sum(x => x.G4Male), + G4Female = insignia.Sum(x => x.G4Female), + G5Male = insignia.Sum(x => x.G5Male), + G5Female = insignia.Sum(x => x.G5Female), + G6Male = insignia.Sum(x => x.G6Male), + G6Female = insignia.Sum(x => x.G6Female), + G7Male = insignia.Sum(x => x.G7Male), + G7Female = insignia.Sum(x => x.G7Female), + G8Male = insignia.Sum(x => x.G8Male), + G8Female = insignia.Sum(x => x.G8Female), + G9Male = insignia.Sum(x => x.G9Male), + G9Female = insignia.Sum(x => x.G9Female), + Remark = "", + }; } //41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ public async Task GetKhr3Report(Guid id) { - //var period = await _dbContext.Set() - // .FirstOrDefaultAsync(x => x.Id == id); - //if (period == null) - // throw new Exception(GlobalMessages.InsigniaPeriodNotFound); + var period = await _dbContext.Set() + .FirstOrDefaultAsync(x => x.Id == id); + if (period == null) + throw new Exception(GlobalMessages.InsigniaPeriodNotFound); - //var data = (from r in await _dbContext.Set() - // .Include(x => x.Profile) - // .ThenInclude(x => x.Gender) - // .Include(x => x.Profile) - // .ThenInclude(x => x.Prefix) - // .Include(x => x.Request) - // .ThenInclude(x => x.Period) - // .Include(x => x.Request) - // .ThenInclude(x => x.Organization) - // .Include(x => x.RequestInsignia) - // .ThenInclude(x => x.InsigniaType) - // .ToListAsync() - // where r.Request.Period == period - // && r.IsApprove == true - // && r.Status == "PENDING" - // && r.RequestInsignia.InsigniaType != null - // && r.RequestInsignia.InsigniaType.Name != "เหรียญบำเหน็จในราชการ" - // select new - // { - // InsigniaInitial = r.RequestInsignia.ShortName, - // InsigniaName = r.RequestInsignia.Name, - // ProfileId = r.Profile.Id, - // FullName = $"{r.Profile.Prefix?.Name}{r.Profile.FirstName} {r.Profile.LastName}", - // Gender = r.Profile.Gender == null ? null : r.Profile.Gender.Name, - // Male = r.Profile.Gender == null ? 0 : (r.Profile.Gender.Name == "ชาย" ? 1 : 0), - // Female = r.Profile.Gender == null ? 0 : (r.Profile.Gender.Name == "หญิง" ? 1 : 0), - // InsigniaId = r.RequestInsignia.Id, - // OCName = _organizationCommonRepository.GetOrganizationNameFullPath(r.Request.Organization.Id, false, false) - // }) - // .Distinct() - // .ToList(); + var data = (from r in await _dbContext.Set() + //.Include(x => x.Profile) + //.ThenInclude(x => x.Gender) + //.Include(x => x.Profile) + //.ThenInclude(x => x.Prefix) + .Include(x => x.Request) + .ThenInclude(x => x.Period) + .Include(x => x.Request) + //.ThenInclude(x => x.Organization) + .Include(x => x.RequestInsignia) + .ThenInclude(x => x.InsigniaType) + .ToListAsync() + where r.Request.Period == period + && r.IsApprove == true + && r.Status == "PENDING" + && r.RequestInsignia.InsigniaType != null + && r.RequestInsignia.InsigniaType.Name != "เหรียญบำเหน็จในราชการ" + select new + { + InsigniaInitial = r.RequestInsignia.ShortName, + InsigniaName = r.RequestInsignia.Name, + ProfileId = r.ProfileId, + FullName = $"{_userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).FirstName} {_userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).LastName}", // $"{r.Profile.Prefix?.Name}{r.Profile.FirstName} {r.Profile.LastName}", + Gender = _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).Gender == null ? null : _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).Gender, + Male = _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).Gender == null ? 0 : (_userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).Gender == "ชาย" ? 1 : 0), + Female = _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).Gender == null ? 0 : (_userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).Gender == "หญิง" ? 1 : 0), + InsigniaId = r.RequestInsignia.Id, + OCName = _userProfileRepository.GetOc(r.Request.OrganizationId, 0, AccessToken).Root, + // _organizationCommonRepository.GetOrganizationNameFullPath(r.Request.Organization.Id, false, false) + }) + .Distinct() + .ToList(); - //// loop to add temp row with 50 rows per page - //var insigniaList = data.Select(x => new { InsigniaId = x.InsigniaId, InsigniaInitial = x.InsigniaInitial, InsigniaName = x.InsigniaName }) - // .Distinct().ToList(); + // loop to add temp row with 50 rows per page + var insigniaList = data.Select(x => new { InsigniaId = x.InsigniaId, InsigniaInitial = x.InsigniaInitial, InsigniaName = x.InsigniaName }) + .Distinct().ToList(); - //var tmpOC = data.First().OCName; + var tmpOC = data.First().OCName; - //var sumData = (from x in data - // group x by x.InsigniaName into grp - // select new - // { - // InsigniaName = grp.Key, - // SumMale = grp.Sum(x => x.Male), - // SumFemale = grp.Sum(x => x.Female) - // }).ToList(); + var sumData = (from x in data + group x by x.InsigniaName into grp + select new + { + InsigniaName = grp.Key, + SumMale = grp.Sum(x => x.Male), + SumFemale = grp.Sum(x => x.Female) + }).ToList(); - //var ret = new List(); + var ret = new List(); - //foreach (var item in data) - //{ - // var p = new - // { - // InsigniaInitial = item.InsigniaInitial, - // InsigniaName = item.InsigniaName, - // ProfileId = item.ProfileId, - // FullName = item.FullName, - // Gender = item.Gender, - // Male = item.Male, - // Female = item.Female, - // InsigniaId = item.InsigniaId, - // OCName = item.OCName, - // SumMale = sumData.FirstOrDefault(x => x.InsigniaName == item.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == item.InsigniaName)!.SumMale, - // SumFemale = sumData.FirstOrDefault(x => x.InsigniaName == item.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == item.InsigniaName)!.SumFemale, - // }; - // ret.Add(p); - //} + foreach (var item in data) + { + var p = new + { + InsigniaInitial = item.InsigniaInitial, + InsigniaName = item.InsigniaName, + ProfileId = item.ProfileId, + FullName = item.FullName, + Gender = item.Gender, + Male = item.Male, + Female = item.Female, + InsigniaId = item.InsigniaId, + OCName = item.OCName, + SumMale = sumData.FirstOrDefault(x => x.InsigniaName == item.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == item.InsigniaName)!.SumMale, + SumFemale = sumData.FirstOrDefault(x => x.InsigniaName == item.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == item.InsigniaName)!.SumFemale, + }; + ret.Add(p); + } - //foreach (var ins in insigniaList) - //{ - // var count = data.Where(x => x.InsigniaId == ins.InsigniaId).Count(); - // var mod_val = count <= 50 ? 50 - count : count % 50.0; - // for (int i = 0; i < mod_val; i++) - // { - // var p = new - // { - // InsigniaInitial = ins.InsigniaInitial, - // InsigniaName = ins.InsigniaName, - // ProfileId = Guid.Parse("00000000-0000-0000-0000-000000000000"), - // FullName = "", - // Gender = "", - // Male = 0, - // Female = 0, - // InsigniaId = ins.InsigniaId, - // // OCName = "" - // OCName = tmpOC, - // SumMale = sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName)!.SumMale, - // SumFemale = sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName)!.SumFemale, - // }; - // ret.Add(p); - // } - //} + foreach (var ins in insigniaList) + { + var count = data.Where(x => x.InsigniaId == ins.InsigniaId).Count(); + var mod_val = count <= 50 ? 50 - count : count % 50.0; + for (int i = 0; i < mod_val; i++) + { + var p = new + { + InsigniaInitial = ins.InsigniaInitial, + InsigniaName = ins.InsigniaName, + ProfileId = Guid.Parse("00000000-0000-0000-0000-000000000000"), + FullName = "", + Gender = "", + Male = 0, + Female = 0, + InsigniaId = ins.InsigniaId, + // OCName = "" + OCName = tmpOC, + SumMale = sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName)!.SumMale, + SumFemale = sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName)!.SumFemale, + }; + ret.Add(p); + } + } - //return ret; + return ret; - return new { }; } public async Task GetKhr3ReportV2(Guid id) { @@ -628,295 +635,294 @@ namespace BMA.EHR.Application.Repositories.Reports //42-แบบ ขร4 บัญชีแสดงคุณสมบัติของข้าราชการซึ่งเสนอขอเครื่องราชฯ public async Task GetKhr4Report(Guid id) { - //var period = await _dbContext.Set() - // .FirstOrDefaultAsync(x => x.Id == id); - //if (period == null) - // throw new Exception(GlobalMessages.InsigniaPeriodNotFound); + var period = await _dbContext.Set() + .FirstOrDefaultAsync(x => x.Id == id); + if (period == null) + throw new Exception(GlobalMessages.InsigniaPeriodNotFound); - //var teacher_data = (from r in await _dbContext.Set() - // .Include(x => x.Profile) - // .ThenInclude(x => x.Salaries) - // .Include(x => x.Profile) - // .ThenInclude(x => x.Gender) - // .Include(x => x.Profile) - // .ThenInclude(x => x.Prefix) - // .Include(x => x.Profile) - // .ThenInclude(x => x.PositionType) - // .Include(x => x.Profile) - // .ThenInclude(x => x.PositionLevel) - // .Include(x => x.Request) - // .ThenInclude(x => x.Period) - // .Include(x => x.RequestInsignia) - // .ThenInclude(x => x.InsigniaType) - // .Include(x => x.Request) - // .ThenInclude(x => x.Organization) - // .ToListAsync() - // where r.Request.Period == period - // && r.IsApprove == true - // && r.Status == "PENDING" - // && r.RequestInsignia.InsigniaType != null - // && r.RequestInsignia.InsigniaType.Name != "เหรียญบำเหน็จในราชการ" - // select new - // { - // InsigniaInitial = r.RequestInsignia.ShortName, - // InsigniaName = r.RequestInsignia.Name, - // ProfileId = r.Profile.Id, - // CitizenId = r.Profile.CitizenId == null ? null : r.Profile.CitizenId.ToThaiNumber(), - // FullName = $"{r.Profile.Prefix?.Name}{r.Profile.FirstName} {r.Profile.LastName}", - // ShowProfileId = r.Profile.Id, - // Type = r.Profile.PositionType == null ? "-" : r.Profile.PositionType.Name, - // AcademicStanding = "", - // Level = r.Profile.PositionLevel == null ? "-" : r.Profile.PositionLevel.Name, - // DateStart = r.Profile.DateStart == null ? null : r.Profile.DateStart.Value.ToThaiShortDate().ToThaiNumber(), - // SalaryAmount = r.Profile.Salaries.Count() == 0 ? "-" : - // Convert.ToInt32(r.Profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount).ToNumericText().ToThaiNumber(), - // InsigniaRecv = "", - // InsigniaRecvDate = "", - // InsigniaRequest = r.RequestInsignia.ShortName, - // Remark = "", - // Position = r.Profile.Position?.Name + - // (r.Profile.PositionType == null ? null : " ประเภท" + r.Profile.PositionType?.Name) + - // (r.Profile.PositionLevel == null ? null : " สังกัด" + r.Profile.PositionLevel?.Name) + - // (r.Request.Organization == null ? null : " ระดับ" + CRLF + _organizationCommonRepository.GetOrganizationNameFullPath(r.Request.Organization.Id, false, false)) - // , - // OCName = _organizationCommonRepository.GetOrganizationNameFullPath(r.Request.Organization.Id, false, false) - // }) - // .Distinct() - // .ToList(); + var teacher_data = (from r in await _dbContext.Set() + //.Include(x => x.Profile) + //.ThenInclude(x => x.Salaries) + //.Include(x => x.Profile) + //.ThenInclude(x => x.Gender) + //.Include(x => x.Profile) + //.ThenInclude(x => x.Prefix) + //.Include(x => x.Profile) + //.ThenInclude(x => x.PositionType) + //.Include(x => x.Profile) + //.ThenInclude(x => x.PositionLevel) + .Include(x => x.Request) + .ThenInclude(x => x.Period) + .Include(x => x.RequestInsignia) + .ThenInclude(x => x.InsigniaType) + .Include(x => x.Request) + //.ThenInclude(x => x.Organization) + .ToListAsync() + where r.Request.Period == period + && r.IsApprove == true + && r.Status == "PENDING" + && r.RequestInsignia.InsigniaType != null + && r.RequestInsignia.InsigniaType.Name != "เหรียญบำเหน็จในราชการ" + select new + { + InsigniaInitial = r.RequestInsignia.ShortName, + InsigniaName = r.RequestInsignia.Name, + ProfileId = r.ProfileId, + CitizenId = _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).CitizenId.ToThaiNumber(), // r.Profile.CitizenId == null ? null : r.Profile.CitizenId.ToThaiNumber(), + FullName = $"{_userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).Prefix}{_userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).FirstName} {_userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).LastName}", + // $"{r.Profile.Prefix?.Name}{r.Profile.FirstName} {r.Profile.LastName}", + ShowProfileId = r.ProfileId, + Type = _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).PosType.PosTypeName, + AcademicStanding = "", + Level = _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).PosLevel.PosLevelName, + DateStart = _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).DateStart.Value.ToThaiShortDate().ToThaiNumber(), + SalaryAmount = _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).ProfileSalary.Count() == 0 || + _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).ProfileSalary == null ? "-" : + Convert.ToInt32(_userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount).ToNumericText().ToThaiNumber(), + InsigniaRecv = "", + InsigniaRecvDate = "", + InsigniaRequest = r.RequestInsignia.ShortName, + Remark = "", + Position = (_userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).Position ?? "") + + (" ประเภท" + _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).PosType?.PosTypeName) + + (" ระดับ" + _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).PosLevel?.PosLevelName) + + (" สังกัด" + CRLF + _userProfileRepository.GetOc(r.Request.OrganizationId, 0, AccessToken).Root) + , + OCName = _userProfileRepository.GetOc(r.Request.OrganizationId, 0, AccessToken).Root, + }) + .Distinct() + .ToList(); - //// var insignia_data = (from r in await _dbContext.Set() - //// .Include(x => x.Profile) - //// .ThenInclude(x => x.Gender) - //// .Include(x => x.Profile) - //// .ThenInclude(x => x.Insignias) - //// .ThenInclude(x => x.Insignia) - //// .Include(x => x.Request) - //// .ThenInclude(x => x.Period) - //// .Include(x => x.Request) - //// .ThenInclude(x => x.Organization) - //// .Include(x => x.RequestInsignia) - //// .ThenInclude(x => x.InsigniaType) - //// .ToListAsync() - //// where r.Request.Period == period - //// && r.IsApprove == true - //// && r.Status == "PENDING" - //// && r.RequestInsignia.InsigniaType != null - //// && r.RequestInsignia.InsigniaType.Name != "เหรียญบำเหน็จในราชการ" - //// select new - //// { - //// InsigniaInitial = r.RequestInsignia.ShortName, - //// InsigniaName = r.RequestInsignia.Name, - //// ProfileId = r.Profile.Id, - //// CitizenId = r.Profile.CitizenId, - //// FullName = $"", - //// ShowProfileId = Guid.Parse("00000000-0000-0000-0000-000000000000"), - //// Type = "", - //// AcademicStanding = "", - //// Level = "", - //// DateStart = "", - //// SalaryAmount = new double?(0), - //// InsigniaRecv = r.Profile.Insignias.Count() == 0 ? null : - //// (r.Profile.Insignias.OrderByDescending(x => x.Year).FirstOrDefault().Insignia == null ? null : r.Profile.Insignias.OrderByDescending(x => x.Year).FirstOrDefault().Insignia.ShortName), - //// InsigniaRecvDate = r.Profile.Insignias.Count() == 0 ? null : - //// (r.Profile.Insignias.OrderByDescending(x => x.Year).FirstOrDefault().DateAnnounce == null ? null : r.Profile.Insignias.OrderByDescending(x => x.Year).FirstOrDefault().DateAnnounce.Value.ToThaiShortDate()), - //// InsigniaRequest = "", - //// Remark = "", - //// Position = "", - //// // Position = GetPositionByYear(r.Profile.Id, r.Request.Period.Year) + " ประเภท" + - //// // GetPositionTypeByYear(r.Profile.Id, r.Request.Period.Year) + " ระดับ" + - //// // GetPositionLevelByYear(r.Profile.Id, r.Request.Period.Year), - //// OCName = _organizationCommonRepository.GetOrganizationNameFullPath(r.Request.Organization.Id, false, false) - //// }) - //// .Distinct() - //// .ToList(); + // var insignia_data = (from r in await _dbContext.Set() + // .Include(x => x.Profile) + // .ThenInclude(x => x.Gender) + // .Include(x => x.Profile) + // .ThenInclude(x => x.Insignias) + // .ThenInclude(x => x.Insignia) + // .Include(x => x.Request) + // .ThenInclude(x => x.Period) + // .Include(x => x.Request) + // .ThenInclude(x => x.Organization) + // .Include(x => x.RequestInsignia) + // .ThenInclude(x => x.InsigniaType) + // .ToListAsync() + // where r.Request.Period == period + // && r.IsApprove == true + // && r.Status == "PENDING" + // && r.RequestInsignia.InsigniaType != null + // && r.RequestInsignia.InsigniaType.Name != "เหรียญบำเหน็จในราชการ" + // select new + // { + // InsigniaInitial = r.RequestInsignia.ShortName, + // InsigniaName = r.RequestInsignia.Name, + // ProfileId = r.Profile.Id, + // CitizenId = r.Profile.CitizenId, + // FullName = $"", + // ShowProfileId = Guid.Parse("00000000-0000-0000-0000-000000000000"), + // Type = "", + // AcademicStanding = "", + // Level = "", + // DateStart = "", + // SalaryAmount = new double?(0), + // InsigniaRecv = r.Profile.Insignias.Count() == 0 ? null : + // (r.Profile.Insignias.OrderByDescending(x => x.Year).FirstOrDefault().Insignia == null ? null : r.Profile.Insignias.OrderByDescending(x => x.Year).FirstOrDefault().Insignia.ShortName), + // InsigniaRecvDate = r.Profile.Insignias.Count() == 0 ? null : + // (r.Profile.Insignias.OrderByDescending(x => x.Year).FirstOrDefault().DateAnnounce == null ? null : r.Profile.Insignias.OrderByDescending(x => x.Year).FirstOrDefault().DateAnnounce.Value.ToThaiShortDate()), + // InsigniaRequest = "", + // Remark = "", + // Position = "", + // // Position = GetPositionByYear(r.Profile.Id, r.Request.Period.Year) + " ประเภท" + + // // GetPositionTypeByYear(r.Profile.Id, r.Request.Period.Year) + " ระดับ" + + // // GetPositionLevelByYear(r.Profile.Id, r.Request.Period.Year), + // OCName = _organizationCommonRepository.GetOrganizationNameFullPath(r.Request.Organization.Id, false, false) + // }) + // .Distinct() + // .ToList(); - //// var data2 = teacher_data.Union(insignia_data).ToList(); - //return teacher_data; - - return new { }; + // var data2 = teacher_data.Union(insignia_data).ToList(); + return teacher_data; } //44-บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ public async Task GetSummaryCoinReport(Guid id) { - //var period = await _dbContext.Set() - // .FirstOrDefaultAsync(x => x.Id == id); - //if (period == null) - // throw new Exception(GlobalMessages.InsigniaPeriodNotFound); + var period = await _dbContext.Set() + .FirstOrDefaultAsync(x => x.Id == id); + if (period == null) + throw new Exception(GlobalMessages.InsigniaPeriodNotFound); - //var data_insignia = await _dbContext.Set() - // .Include(x => x.Profile) - // .Where(x => x.Request.Period == period) - // .Where(x => x.IsApprove == true) - // .Where(x => x.Status == "PENDING") - // .Where(x => x.RequestInsignia.InsigniaType != null) - // .Where(x => x.RequestInsignia.InsigniaType.Name == "เหรียญบำเหน็จในราชการ") - // .Select(x => new - // { - // Gendor = x.Profile.Gender == null ? null : x.Profile.Gender.Name, - // RequestInsigniaName = x.RequestInsignia.Name, - // InsigniaInitial = $"{x.RequestInsignia.Name}({x.RequestInsignia.ShortName})", - // OcId = x.Request.Organization.Id - // }) - // .ToListAsync(); + var data_insignia = await _dbContext.Set() + //.Include(x => x.Profile) + .Where(x => x.Request.Period.Id == period.Id) + .Where(x => x.IsApprove == true) + .Where(x => x.Status == "PENDING") + .Where(x => x.RequestInsignia.InsigniaType != null) + .Where(x => x.RequestInsignia.InsigniaType.Name == "เหรียญบำเหน็จในราชการ") + .Select(x => new + { + //Gendor = x.Profile.Gender == null ? null : x.Profile.Gender.Name, + Gendor = _userProfileRepository.GetOfficerProfileById(x.ProfileId, AccessToken).Gender ?? "", + RequestInsigniaName = x.RequestInsignia.Name, + InsigniaInitial = $"{x.RequestInsignia.Name}({x.RequestInsignia.ShortName})", + OcId = x.Request.OrganizationId + }) + .ToListAsync(); - //var insignia = (from r in data_insignia - // group r by new { OcId = r.OcId, InsigniaInitial = r.InsigniaInitial } into g - // select new - // { - // RowNo = 1, - // DepartmentName = _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), - // InsigniaInitial = g.Key.InsigniaInitial, - // G1Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เหรียญจักรพรรดิมาลา" ? 1 : 0).ToString().ToThaiNumber(), - // G1Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เหรียญจักรพรรดิมาลา" ? 1 : 0).ToString().ToThaiNumber(), - // G2Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0).ToString().ToThaiNumber(), - // G2Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0).ToString().ToThaiNumber(), - // Remark = "", - // }).ToList(); + var insignia = (from r in data_insignia + group r by new { OcId = r.OcId, InsigniaInitial = r.InsigniaInitial } into g + select new + { + RowNo = 1, + DepartmentName = _userProfileRepository.GetOc(g.Key.OcId, 0, AccessToken).Root, //_organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), + InsigniaInitial = g.Key.InsigniaInitial, + G1Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เหรียญจักรพรรดิมาลา" ? 1 : 0).ToString().ToThaiNumber(), + G1Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เหรียญจักรพรรดิมาลา" ? 1 : 0).ToString().ToThaiNumber(), + G2Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0).ToString().ToThaiNumber(), + G2Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0).ToString().ToThaiNumber(), + Remark = "", + }).ToList(); - //return insignia; - - return new { }; + return insignia; } public async Task GetSummaryTotalCoinReport(Guid id) { - //var period = await _dbContext.Set() - // .FirstOrDefaultAsync(x => x.Id == id); - //if (period == null) - // throw new Exception(GlobalMessages.InsigniaPeriodNotFound); + var period = await _dbContext.Set() + .FirstOrDefaultAsync(x => x.Id == id); + if (period == null) + throw new Exception(GlobalMessages.InsigniaPeriodNotFound); - //var data_insignia = await _dbContext.Set() - // .Include(x => x.Profile) - // .Where(x => x.Request.Period == period) - // .Where(x => x.IsApprove == true) - // .Where(x => x.Status == "PENDING") - // .Where(x => x.RequestInsignia.InsigniaType != null) - // .Where(x => x.RequestInsignia.InsigniaType.Name == "เหรียญบำเหน็จในราชการ") - // .Select(x => new - // { - // Gendor = x.Profile.Gender == null ? null : x.Profile.Gender.Name, - // RequestInsigniaName = x.RequestInsignia.Name, - // OcId = x.Request.Organization.Id - // }) - // .ToListAsync(); + var data_insignia = await _dbContext.Set() + //.Include(x => x.Profile) + .Where(x => x.Request.Period.Id == period.Id) + .Where(x => x.IsApprove == true) + .Where(x => x.Status == "PENDING") + .Where(x => x.RequestInsignia.InsigniaType != null) + .Where(x => x.RequestInsignia.InsigniaType.Name == "เหรียญบำเหน็จในราชการ") + .Select(x => new + { + //Gendor = x.Profile.Gender == null ? null : x.Profile.Gender.Name, + Gendor = _userProfileRepository.GetOfficerProfileById(x.ProfileId, AccessToken).Gender ?? "", + RequestInsigniaName = x.RequestInsignia.Name, + OcId = x.Request.OrganizationId + }) + .ToListAsync(); - //var insignia = (from r in data_insignia - // group r by new { OcId = r.OcId } into g - // select new - // { - // RowNo = 1, - // DepartmentName = _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), - // G1Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เหรียญจักรพรรดิมาลา" ? 1 : 0), - // G1Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เหรียญจักรพรรดิมาลา" ? 1 : 0), - // G2Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0), - // G2Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0), - // Remark = "", - // }).ToList(); + var insignia = (from r in data_insignia + group r by new { OcId = r.OcId } into g + select new + { + RowNo = 1, + DepartmentName = _userProfileRepository.GetOc(g.Key.OcId, 0, AccessToken).Root, //_organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), + G1Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เหรียญจักรพรรดิมาลา" ? 1 : 0), + G1Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เหรียญจักรพรรดิมาลา" ? 1 : 0), + G2Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0), + G2Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0), + Remark = "", + }).ToList(); - //return new - //{ - // G1Male = insignia.Sum(x => x.G1Male).ToString().ToThaiNumber(), - // G1Female = insignia.Sum(x => x.G1Female).ToString().ToThaiNumber(), - // G2Male = insignia.Sum(x => x.G2Male).ToString().ToThaiNumber(), - // G2Female = insignia.Sum(x => x.G2Female).ToString().ToThaiNumber(), - // Remark = "", - //}; + return new + { + G1Male = insignia.Sum(x => x.G1Male).ToString().ToThaiNumber(), + G1Female = insignia.Sum(x => x.G1Female).ToString().ToThaiNumber(), + G2Male = insignia.Sum(x => x.G2Male).ToString().ToThaiNumber(), + G2Female = insignia.Sum(x => x.G2Female).ToString().ToThaiNumber(), + Remark = "", + }; - return new { }; + //return new { }; } //45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา public async Task GetCoinReport(Guid id) { - //var period = await _dbContext.Set() - // .FirstOrDefaultAsync(x => x.Id == id); - //if (period == null) - // throw new Exception(GlobalMessages.InsigniaPeriodNotFound); + var period = await _dbContext.Set() + .FirstOrDefaultAsync(x => x.Id == id); + if (period == null) + throw new Exception(GlobalMessages.InsigniaPeriodNotFound); - //var gender = (from r in await _dbContext.Set() - // .Include(x => x.Profile) - // .ThenInclude(x => x.Gender) - // .Include(x => x.Profile) - // .ThenInclude(x => x.Prefix) - // .Include(x => x.Request) - // .ThenInclude(x => x.Period) - // .Include(x => x.Request) - // .ThenInclude(x => x.Organization) - // .Include(x => x.RequestInsignia) - // .ThenInclude(x => x.InsigniaType) - // .ToListAsync() - // where r.Request.Period == period - // && r.IsApprove == true - // && r.Status == "PENDING" - // && r.RequestInsignia.InsigniaType != null - // && r.RequestInsignia.InsigniaType.Name != "เหรียญบำเหน็จในราชการ" - // select new - // { - // Male = r.Profile.Gender == null ? 0 : (r.Profile.Gender.Name == "ชาย" ? 1 : 0), - // Female = r.Profile.Gender == null ? 0 : (r.Profile.Gender.Name == "หญิง" ? 1 : 0), - // }) - // .Distinct() - // .ToList(); - //var data = (from r in await _dbContext.Set() - // .Include(x => x.Profile) - // .ThenInclude(x => x.Gender) - // .Include(x => x.Profile) - // .ThenInclude(x => x.Prefix) - // .Include(x => x.Request) - // .ThenInclude(x => x.Period) - // .Include(x => x.Request) - // .ThenInclude(x => x.Organization) - // .Include(x => x.RequestInsignia) - // .ThenInclude(x => x.InsigniaType) - // .ToListAsync() - // where r.Request.Period == period - // && r.IsApprove == true - // && r.Status == "PENDING" - // && r.RequestInsignia.InsigniaType != null - // && r.RequestInsignia.InsigniaType.Name != "เหรียญบำเหน็จในราชการ" - // select new - // { - // InsigniaInitial = r.RequestInsignia.ShortName, - // InsigniaName = r.RequestInsignia.Name, - // ProfileId = r.Profile.Id, - // FullName = $"{r.Profile.Prefix?.Name}{r.Profile.FirstName} {r.Profile.LastName}", - // Gender = r.Profile.Gender == null ? null : r.Profile.Gender.Name, - // Male = gender.Sum(x => x.Male), - // Female = gender.Sum(x => x.Female), - // InsigniaId = r.RequestInsignia.Id, - // OCName = _organizationCommonRepository.GetOrganizationNameFullPath(r.Request.Organization.Id, false, false) - // }) - // .Distinct() - // .ToList(); + var gender = (from r in await _dbContext.Set() + //.Include(x => x.Profile) + //.ThenInclude(x => x.Gender) + //.Include(x => x.Profile) + //.ThenInclude(x => x.Prefix) + .Include(x => x.Request) + .ThenInclude(x => x.Period) + .Include(x => x.Request) + //.ThenInclude(x => x.Organization) + .Include(x => x.RequestInsignia) + .ThenInclude(x => x.InsigniaType) + .ToListAsync() + where r.Request.Period == period + && r.IsApprove == true + && r.Status == "PENDING" + && r.RequestInsignia.InsigniaType != null + && r.RequestInsignia.InsigniaType.Name != "เหรียญบำเหน็จในราชการ" + select new + { + Male = _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).Gender == "ชาย" ? 1 : 0, + Female = _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).Gender == "หญิง" ? 1 : 0, + }) + .Distinct() + .ToList(); + var data = (from r in await _dbContext.Set() + //.Include(x => x.Profile) + //.ThenInclude(x => x.Gender) + //.Include(x => x.Profile) + //.ThenInclude(x => x.Prefix) + .Include(x => x.Request) + .ThenInclude(x => x.Period) + .Include(x => x.Request) + //.ThenInclude(x => x.Organization) + .Include(x => x.RequestInsignia) + .ThenInclude(x => x.InsigniaType) + .ToListAsync() + where r.Request.Period == period + && r.IsApprove == true + && r.Status == "PENDING" + && r.RequestInsignia.InsigniaType != null + && r.RequestInsignia.InsigniaType.Name != "เหรียญบำเหน็จในราชการ" + select new + { + InsigniaInitial = r.RequestInsignia.ShortName, + InsigniaName = r.RequestInsignia.Name, + ProfileId = r.ProfileId, + FullName = $"{_userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).Prefix}{_userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).FirstName} {_userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).LastName}", + // $"{r.Profile.Prefix?.Name}{r.Profile.FirstName} {r.Profile.LastName}", + Gender = _userProfileRepository.GetOfficerProfileById(r.ProfileId, AccessToken).Gender, + Male = gender.Sum(x => x.Male), + Female = gender.Sum(x => x.Female), + InsigniaId = r.RequestInsignia.Id, + OCName = _userProfileRepository.GetOc(r.Request.OrganizationId, 0, AccessToken).Root, //_organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), + }) + .Distinct() + .ToList(); - //// loop to add temp row with 50 rows per page - //var insigniaList = data.Select(x => new { InsigniaId = x.InsigniaId, InsigniaInitial = x.InsigniaInitial, InsigniaName = x.InsigniaName }) - // .Distinct().ToList(); + // loop to add temp row with 50 rows per page + var insigniaList = data.Select(x => new { InsigniaId = x.InsigniaId, InsigniaInitial = x.InsigniaInitial, InsigniaName = x.InsigniaName }) + .Distinct().ToList(); - //foreach (var ins in insigniaList) - //{ - // var count = data.Where(x => x.InsigniaId == ins.InsigniaId).Count(); - // var mod_val = count <= 50 ? 50 - count : 50 - (count % 50.0); - // for (int i = 0; i < mod_val; i++) - // { - // var p = new - // { - // InsigniaInitial = ins.InsigniaInitial, - // InsigniaName = ins.InsigniaName, - // ProfileId = Guid.Parse("00000000-0000-0000-0000-000000000000"), - // FullName = "", - // Gender = "", - // Male = 0, - // Female = 0, - // InsigniaId = ins.InsigniaId, - // OCName = "" - // }; - // data.Add(p); - // } - //} - //return data.OrderBy(x => x.InsigniaName); - - return new { }; + foreach (var ins in insigniaList) + { + var count = data.Where(x => x.InsigniaId == ins.InsigniaId).Count(); + var mod_val = count <= 50 ? 50 - count : 50 - (count % 50.0); + for (int i = 0; i < mod_val; i++) + { + var p = new + { + InsigniaInitial = ins.InsigniaInitial, + InsigniaName = ins.InsigniaName, + ProfileId = Guid.Parse("00000000-0000-0000-0000-000000000000"), + FullName = "", + Gender = "", + Male = 0, + Female = 0, + InsigniaId = ins.InsigniaId, + OCName = "" + }; + data.Add(p); + } + } + return data.OrderBy(x => x.InsigniaName); } //46-ประวัติสำหรับการเสนอขอพระราชทานเหรียญจักรพรรดิมาลา @@ -924,8 +930,12 @@ namespace BMA.EHR.Application.Repositories.Reports { //var profile = await _dbContext.Set() // .FirstOrDefaultAsync(x => x.Id == id); - //if (profile == null) - // throw new Exception(GlobalMessages.DataNotFound); + + var profile = _userProfileRepository.GetOfficerProfileById(id, AccessToken); + + if (profile == null) + throw new Exception(GlobalMessages.DataNotFound); + //var positions = await _dbContext.Set() // .ToListAsync(); //var organizations = await _dbContext.Set() @@ -933,31 +943,21 @@ namespace BMA.EHR.Application.Repositories.Reports // .ThenInclude(x => x.OrganizationOrganization) // .ToListAsync(); - //var data = (from r in await _dbContext.Set() - // .Include(x => x.Profile) - // .ToListAsync() - // join p in positions on r?.PositionId equals p.Id into pGroup - // from p in pGroup.DefaultIfEmpty() - // join o in organizations on r?.OcId equals o.Id into oGroup - // from o in oGroup.DefaultIfEmpty() - // where r.Profile == profile - // select new - // { - // DateTh = r.Date == null ? "-" : r.Date.Value.ToThaiShortDate().ToString().ToThaiNumber(), - // Position = p == null ? "-" : p.Name, - // OCName = o == null || o.Parent == null ? "-" : (o.Parent.OrganizationOrganization == null ? "-" : o.Parent.OrganizationOrganization.Name), - // Age = r.Date == null ? "-" : (r.Date.Value.Year - r.Profile.BirthDate.Year).ToNumericText().ToThaiNumber(), - // Amount = r.Amount == null ? null : r.Amount.Value.ToNumericText().ToThaiNumber(), - // Date = r.Date, - // Remark = "", - // }) - // .Distinct() - // .OrderBy(x => x.Date) - // .ToList(); - - //return data; - - return new { }; + var s_data = profile.ProfileSalary.ToList() + .Select(r => new + { + Date = r.Date, + DateTh = r.Date == null ? "-" : r.Date.Value.ToThaiShortDate().ToString().ToThaiNumber(), + Position = r.Position, + OCName = "", + Age = r.Date == null ? "-" : (r.Date.Value.Year - profile.BirthDate.Year).ToNumericText().ToThaiNumber(), + Amount = r.Amount == null ? null : r.Amount.Value.ToNumericText().ToThaiNumber(), + Remark = "" + }) + .Distinct() + .OrderBy(x => x.Date) + .ToList(); + return s_data; } //noti ยื่นเสนอคน @@ -1126,7 +1126,7 @@ namespace BMA.EHR.Application.Repositories.Reports await _repositoryInsignia.InsertCandidate(period, organization.Id, candidate); } - + } } } diff --git a/BMA.EHR.Application/Repositories/UserProfileRepository.cs b/BMA.EHR.Application/Repositories/UserProfileRepository.cs index ea8bae3a..7a208f54 100644 --- a/BMA.EHR.Application/Repositories/UserProfileRepository.cs +++ b/BMA.EHR.Application/Repositories/UserProfileRepository.cs @@ -450,7 +450,7 @@ namespace BMA.EHR.Application.Repositories { try { - var apiPath = $"{_configuration["API"]}/org/profile/{id}"; + var apiPath = $"{_configuration["API"]}/org/dotnet/profile/{id}"; var apiResult = GetExternalAPIAsync(apiPath, accessToken ?? ""); if (apiResult.Result != null) diff --git a/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs b/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs index 143ac660..71a53a03 100644 --- a/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs +++ b/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs @@ -90,6 +90,8 @@ namespace BMA.EHR.Application.Responses.Profiles public string PositionLevel { get; set; } = string.Empty; public string PositionType { get; set; } = string.Empty; + + public string Position { get; set; } = string.Empty; } public class ProfileInsignia