diff --git a/BMA.EHR.Application/Repositories/Reports/RetireReportRepository.cs b/BMA.EHR.Application/Repositories/Reports/RetireReportRepository.cs index 900427cf..712449a2 100644 --- a/BMA.EHR.Application/Repositories/Reports/RetireReportRepository.cs +++ b/BMA.EHR.Application/Repositories/Reports/RetireReportRepository.cs @@ -157,113 +157,39 @@ namespace BMA.EHR.Application.Repositories.Reports profiles = profiles.OrderBy(x => x.order).ToList(); } var mapProfiles = new List(); - string previousRoot = null; - string previousChild1 = null; - string previousPosTypeName = null; - string previousPosLevelName = null; + // string previousRoot = null; + // string previousPosTypeName = null; + // string previousPosLevelName = null; if (profiles.Count > 0) { - if (retireHistorys.TypeReport == null) + mapProfiles = profiles + // .OrderBy(x => rootOrder.ToObject>().IndexOf(x.root)) + // .ThenBy(x => posTypeNameOrder.ToObject>().IndexOf(x.posTypeName ?? "")) + // .ThenBy(x => posLevelNameOrder.ToObject>().IndexOf(x.posLevelName ?? "")) + .Select((profile, index) => { - profiles = profiles.OrderBy(x => rootOrder.ToObject>().IndexOf(x.root)) - .ThenBy(x => child1Order.ToObject>().IndexOf(x.child1 ?? "")) - .ThenBy(x => child2Order.ToObject>().IndexOf(x.child2 ?? "")) - .ThenBy(x => child3Order.ToObject>().IndexOf(x.child3 ?? "")) - .ThenBy(x => child4Order.ToObject>().IndexOf(x.child4 ?? "")) - .ThenBy(x => posTypeNameOrder.ToObject>().IndexOf(x.posTypeName ?? "")) - .ThenBy(x => posLevelNameOrder.ToObject>().IndexOf(x.posLevelName ?? "")).ToList(); - mapProfiles = profiles.Select((profile, index) => + // bool isDuplicateRoot = profile.root == previousRoot; + // previousRoot = profile.root; + // bool isDuplicatePosType = profile.posTypeName == previousPosTypeName; + // previousPosTypeName = profile.posTypeName; + // bool isDuplicatePosLevel = profile.posLevelName == previousPosLevelName; + // previousPosLevelName = profile.posLevelName; + return new ProfileRetireJsonRequest { - bool isDuplicateRoot = profile.root == previousRoot; - previousRoot = profile.root; - if (isDuplicateRoot == false) - { - previousChild1 = null; - previousPosTypeName = null; - previousPosLevelName = null; - } - - bool isDuplicateHospital = profile.child1 == previousChild1; - previousChild1 = profile.child1; - if (isDuplicateHospital == false) - { - previousPosTypeName = null; - previousPosLevelName = null; - } - - bool isDuplicatePosType = profile.posTypeName == previousPosTypeName; - previousPosTypeName = profile.posTypeName; - bool isDuplicatePosLevel = profile.posLevelName == previousPosLevelName; - previousPosLevelName = profile.posLevelName; - return new ProfileRetireJsonRequest - { - order = retireHistorys.TypeReport == null - ? (index + 1).ToString().ToThaiNumber() - : $"{(index + 1).ToString().ToThaiNumber()}. ลำดับที่ {(profile.order).ToString().ToThaiNumber()}", - fullName = $"{profile.prefix}{profile.firstName} {profile.lastName}", - root = (isDuplicateRoot ? "" : profile.root + "\n") + - (isDuplicateHospital || !hospital.ToObject>() - .Contains(profile.child1) - ? "" - : profile.child1 + "\n") + - (isDuplicatePosType ? "" : $"ตำแหน่งประเภท{profile.posTypeName}" + "\n") + - (isDuplicatePosLevel ? "" : $"ระดับ{profile.posLevelName}"), - child = (profile.posExecutiveName == null ? "" : profile.posExecutiveName + "\n") + - (profile.child4 == null ? "" : profile.child4 + "\n") + - (profile.child3 == null ? "" : profile.child3 + "\n") + - (profile.child2 == null ? "" : profile.child2 + "\n") + - (profile.child1 == null || hospital.ToObject>() - .Contains(profile.child1) - ? "" - : profile.child1 + "\n") + - (profile.reason == null ? "" : profile.reason), - position = profile.position != "" && profile.position != null - ? profile.position - : "-", - posNo = profile.posNo != "" && profile.posNo != null - ? profile.posNo?.ToThaiNumber() - : "-", - reason = profile.reason != "" && profile.reason != null ? profile.reason : "-", - }; - }).ToList(); - }else - { - mapProfiles = profiles - // .OrderBy(x => rootOrder.ToObject>().IndexOf(x.root)) - // .ThenBy(x => posTypeNameOrder.ToObject>().IndexOf(x.posTypeName ?? "")) - // .ThenBy(x => posLevelNameOrder.ToObject>().IndexOf(x.posLevelName ?? "")) - .Select((profile, index) => - { - // bool isDuplicateRoot = profile.root == previousRoot; - // previousRoot = profile.root; - // bool isDuplicatePosType = profile.posTypeName == previousPosTypeName; - // previousPosTypeName = profile.posTypeName; - // bool isDuplicatePosLevel = profile.posLevelName == previousPosLevelName; - // previousPosLevelName = profile.posLevelName; - return new ProfileRetireJsonRequest - { - order = retireHistorys.TypeReport == null - ? (index + 1).ToString().ToThaiNumber() - : $"{(index + 1).ToString().ToThaiNumber()}. ลำดับที่ {(profile.order).ToString().ToThaiNumber()}", - fullName = $"{profile.prefix}{profile.firstName} {profile.lastName}", - root = "", - child = - (profile.posExecutiveName == null ? "" : profile.posExecutiveName + "\n") + - (profile.child4 == null ? "" : profile.child4 + "\n") + - (profile.child3 == null ? "" : profile.child3 + "\n") + - (profile.child2 == null ? "" : profile.child2 + "\n") + - (profile.child1 == null ? "" : profile.child1 + "\n") + - (profile.reason == null ? "" : profile.reason), - position = profile.position != "" && profile.position != null - ? profile.position - : "-", - posNo = profile.posNo != "" && profile.posNo != null - ? profile.posNo?.ToThaiNumber() - : "-", - reason = profile.reason != "" && profile.reason != null ? profile.reason : "-", - }; - }).ToList(); - } + order = retireHistorys.TypeReport == null ? (index + 1).ToString().ToThaiNumber() : $"{(index + 1).ToString().ToThaiNumber()}. ลำดับที่ {(profile.order).ToString().ToThaiNumber()}", + fullName = $"{profile.prefix}{profile.firstName} {profile.lastName}", + root = "", + child = (profile.posExecutiveName == null ? "" : profile.posExecutiveName + "\n") + + (profile.child4 == null ? "" : profile.child4 + "\n") + + (profile.child3 == null ? "" : profile.child3 + "\n") + + (profile.child2 == null ? "" : profile.child2 + "\n") + + (profile.child1 == null ? "" : profile.child1 + "\n") + + (profile.reason == null ? "" : profile.reason), + position = profile.position != "" && profile.position != null ? profile.position : "-", + posNo = profile.posNo != "" && profile.posNo != null ? profile.posNo?.ToThaiNumber() : "-", + reason = profile.reason != "" && profile.reason != null ? profile.reason : "-", + }; + }).ToList(); } string SignDate = retireHistorys.SignDate != null ? DateTime.Parse(retireHistorys.SignDate.ToString()).ToThaiFullDate().ToString().ToThaiNumber() : "-"; return new { SignDate, retireHistorys.Detail, retireHistorys.Id, retireHistorys.CreatedAt, Year = retireHistorys.Year.ToThaiYear().ToString().ToThaiNumber(), retireHistorys.Round, retireHistorys.Type, retireHistorys.TypeReport, Total = retireHistorys.Total.ToString().ToThaiNumber(), profiles = mapProfiles }; @@ -354,7 +280,8 @@ namespace BMA.EHR.Application.Repositories.Reports .ThenBy(x => child3Order.ToObject>().IndexOf(x.child3 ?? "")) .ThenBy(x => child4Order.ToObject>().IndexOf(x.child4 ?? "")) .ThenBy(x => posTypeNameOrder.ToObject>().IndexOf(x.posTypeName ?? "")) - .ThenBy(x => posLevelNameOrder.ToObject>().IndexOf(x.posLevelName ?? "")).ToList(); + .ThenBy(x => posLevelNameOrder.ToObject>().IndexOf(x.posLevelName ?? "")) + .ThenBy(x => x.posNo).ToList(); } mapProfiles = profile_retire.Select((profile, index) => { diff --git a/BMA.EHR.Retirement.Service/Controllers/RetirementController.cs b/BMA.EHR.Retirement.Service/Controllers/RetirementController.cs index 07036a35..46c91da2 100644 --- a/BMA.EHR.Retirement.Service/Controllers/RetirementController.cs +++ b/BMA.EHR.Retirement.Service/Controllers/RetirementController.cs @@ -337,7 +337,8 @@ namespace BMA.EHR.Retirement.Service.Controllers .ThenBy(x => child3Order.ToObject>().IndexOf(x.child3 ?? "")) .ThenBy(x => child4Order.ToObject>().IndexOf(x.child4 ?? "")) .ThenBy(x => posTypeNameOrder.ToObject>().IndexOf(x.posTypeName ?? "")) - .ThenBy(x => posLevelNameOrder.ToObject>().IndexOf(x.posLevelName ?? ""))) + .ThenBy(x => posLevelNameOrder.ToObject>().IndexOf(x.posLevelName ?? "")) + .ThenBy(x => x.posNo)) { var data = new RetirementProfile { @@ -438,10 +439,10 @@ namespace BMA.EHR.Retirement.Service.Controllers return Error(GlobalMessages.RetirementNotCreated); if (req.Option == null) req.Option = "EDIT"; - + var profile_old = await _context.RetirementProfiles .Where(x => x.RetirementPeriod == retire) - .Select((x,index) => new + .Select((x, index) => new { order = x.Order, id = x.Id, @@ -1291,8 +1292,8 @@ namespace BMA.EHR.Retirement.Service.Controllers return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); } var retire = await _context.RetirementPeriods - .Include(x=>x.RetirementProfiles) - .Include(x=>x.RetirementRawProfiles) + .Include(x => x.RetirementProfiles) + .Include(x => x.RetirementRawProfiles) .FirstOrDefaultAsync(x => x.Id == retireId); if (retire == null) return Error(GlobalMessages.RetirementNotFound, 404); @@ -1310,7 +1311,7 @@ namespace BMA.EHR.Retirement.Service.Controllers retire.LastUpdateUserId = UserId ?? ""; retire.LastUpdatedAt = DateTime.Now; } - if(retire.TypeReport == null) + if (retire.TypeReport == null) { var apiUrl = $"{_configuration["API"]}/org/root/search/sort"; dynamic rootOrder = new List(); @@ -1351,7 +1352,8 @@ namespace BMA.EHR.Retirement.Service.Controllers .ThenBy(x => child3Order.ToObject>().IndexOf(x.child3 ?? "")) .ThenBy(x => child4Order.ToObject>().IndexOf(x.child4 ?? "")) .ThenBy(x => posTypeNameOrder.ToObject>().IndexOf(x.posTypeName ?? "")) - .ThenBy(x => posLevelNameOrder.ToObject>().IndexOf(x.posLevelName ?? ""))) + .ThenBy(x => posLevelNameOrder.ToObject>().IndexOf(x.posLevelName ?? "")) + .ThenBy(x => x.posNo)) { profile.Order = order; order++; @@ -1365,7 +1367,8 @@ namespace BMA.EHR.Retirement.Service.Controllers .ThenBy(x => child3Order.ToObject>().IndexOf(x.child3 ?? "")) .ThenBy(x => child4Order.ToObject>().IndexOf(x.child4 ?? "")) .ThenBy(x => posTypeNameOrder.ToObject>().IndexOf(x.posTypeName ?? "")) - .ThenBy(x => posLevelNameOrder.ToObject>().IndexOf(x.posLevelName ?? ""))) + .ThenBy(x => posLevelNameOrder.ToObject>().IndexOf(x.posLevelName ?? "")) + .ThenBy(x => x.posNo)) { profile.Order = order; order++; @@ -2119,7 +2122,8 @@ namespace BMA.EHR.Retirement.Service.Controllers [HttpGet("31/{exportType}/{Id}")] public async Task> GetProfileRetirement([FromRoute] Guid Id, string exportType = "pdf") { - var retire = await _service.GetProfileRetirementdAsync(Id,token); + var retire = await _service.GetProfileRetirementdAsync(Id, token); + return Success("xxx"); if (retire != null) { var reportfile = string.Empty;