diff --git a/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs b/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs index 1f985c73..38567a88 100644 --- a/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs +++ b/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs @@ -9,7 +9,9 @@ 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.Metadata; using Microsoft.EntityFrameworkCore; +using System.Net; namespace BMA.EHR.Application.Repositories.Reports { @@ -427,6 +429,38 @@ namespace BMA.EHR.Application.Repositories.Reports var insigniaList = data.Select(x => new { InsigniaId = x.InsigniaId, InsigniaInitial = x.InsigniaInitial, InsigniaName = x.InsigniaName }) .Distinct().ToList(); + 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 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 ins in insigniaList) { var count = data.Where(x => x.InsigniaId == ins.InsigniaId).Count(); @@ -443,12 +477,14 @@ namespace BMA.EHR.Application.Repositories.Reports 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, }; - data.Add(p); + ret.Add(p); } } - return data; + return ret; } //42-แบบ ขร4 บัญชีแสดงคุณสมบัติของข้าราชการซึ่งเสนอขอเครื่องราชฯ diff --git a/BMA.EHR.Report.Service/BMA.EHR.Report.Service.csproj b/BMA.EHR.Report.Service/BMA.EHR.Report.Service.csproj index ca5e6738..44241a8e 100644 --- a/BMA.EHR.Report.Service/BMA.EHR.Report.Service.csproj +++ b/BMA.EHR.Report.Service/BMA.EHR.Report.Service.csproj @@ -303,6 +303,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs b/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs index 5daba098..e1146242 100644 --- a/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs +++ b/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs @@ -273,6 +273,8 @@ namespace BMA.EHR.Report.Service.Controllers //var tbl2 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table2"]; //tbl2.DataSource = _Khr3RightList; + report.DataSource = data; + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); InstanceReportSource instanceReportSource = new InstanceReportSource() { diff --git a/BMA.EHR.Report.Service/Reports/41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ.trdp b/BMA.EHR.Report.Service/Reports/41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ.trdp index 6e39becf..c7c854a8 100644 Binary files a/BMA.EHR.Report.Service/Reports/41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ.trdp and b/BMA.EHR.Report.Service/Reports/41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ_Back.trdp b/BMA.EHR.Report.Service/Reports/41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ_Back.trdp new file mode 100644 index 00000000..578d95e2 Binary files /dev/null and b/BMA.EHR.Report.Service/Reports/41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ_Back.trdp differ