diff --git a/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs b/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs index e33bbf2a..5daba098 100644 --- a/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs +++ b/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs @@ -1,5 +1,6 @@ using BMA.EHR.Application.Repositories.Reports; using BMA.EHR.Domain.Common; +using BMA.EHR.Domain.Models.Insignias; using DocumentFormat.OpenXml.Drawing; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -13,7 +14,7 @@ namespace BMA.EHR.Report.Service.Controllers [ApiVersion("2.0")] [ApiController] [Produces("application/json")] - [Authorize] + //[Authorize] [SwaggerTag("API รายงานระบบเครื่องราชอิสริยาภรณ์")] public class InsigniaReportController : BaseController { @@ -88,7 +89,8 @@ namespace BMA.EHR.Report.Service.Controllers { _Khr1List.Add(new { - RowNo = _data.GetType().GetProperty("RowNo").GetValue(_data), + //RowNo = _data.GetType().GetProperty("RowNo").GetValue(_data), + RowNo = _Khr1List.Count + 1, DepartmentName = _data.GetType().GetProperty("DepartmentName").GetValue(_data), G1Male = _data.GetType().GetProperty("G1Male").GetValue(_data), G1Female = _data.GetType().GetProperty("G1Female").GetValue(_data), @@ -100,7 +102,7 @@ namespace BMA.EHR.Report.Service.Controllers G4Female = _data.GetType().GetProperty("G4Female").GetValue(_data), G5Male = _data.GetType().GetProperty("G5Male").GetValue(_data), G5Female = _data.GetType().GetProperty("G5Female").GetValue(_data), - reason = string.Empty, + Remark = _data.GetType().GetProperty("Remark").GetValue(_data), }); } var tbl = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; @@ -169,7 +171,6 @@ namespace BMA.EHR.Report.Service.Controllers { _Khr2List.Add(new { - //RowNo = _data.GetType().GetProperty("RowNo").GetValue(_data), RowNo = _Khr2List.Count+1, DepartmentName = _data.GetType().GetProperty("DepartmentName").GetValue(_data), G1Male = _data.GetType().GetProperty("G1Male").GetValue(_data), @@ -190,6 +191,7 @@ namespace BMA.EHR.Report.Service.Controllers G8Female = _data.GetType().GetProperty("G1Female").GetValue(_data), G9Male = _data.GetType().GetProperty("G1Male").GetValue(_data), G9Female = _data.GetType().GetProperty("G1Female").GetValue(_data), + Remark = _data.GetType().GetProperty("Remark").GetValue(_data), }); } var tbl1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; @@ -229,6 +231,9 @@ namespace BMA.EHR.Report.Service.Controllers try { var data = await _repository.GetKhr3Report(id); + var YearInsignalPeriod = await _repository.GetYearInsigniaPeriod(id); + var TwoYearInsignalPeriod = await _repository.Get2YearInsigniaPeriod(id); + var Date = await _repository.GetDateInsigniaPeriod(id); var mimeType = ""; switch (exportType.Trim().ToLower()) { @@ -236,12 +241,47 @@ namespace BMA.EHR.Report.Service.Controllers case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + ReportPackager reportPacker = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); + } - return File(contentData, mimeType, $"แบบ ขร3.{exportType.Trim().ToLower()}"); + report.ReportParameters["YearInsigniaPeriod"].Value = YearInsignalPeriod; + report.ReportParameters["TwoYearInsignalPeriod"].Value = TwoYearInsignalPeriod; + report.ReportParameters["EndDate"].Value = Date.GetType().GetProperty("EndDate").GetValue(Date); + //int count = ((IEnumerable)data).Count(); + //int counter = 0; + //var _Khr3LeftList = new List(); + //var _Khr3RightList = new List(); + //foreach(var _data in data) + //{ + // _Khr3LeftList.Add(new + // { + // RowNo = _Khr3LeftList.Count +1, + // FullName = _data.GetType().GetProperty("FullName").GetValue(_data), + // OCName = _data.GetType().GetProperty("OCName").GetValue(_data), + // InsigniaName = _data.GetType().GetProperty("InsigniaName").GetValue(_data), + // }); + //} + //var tbl1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; + //tbl1.DataSource = _Khr3LeftList; + + //var tbl2 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table2"]; + //tbl2.DataSource = _Khr3RightList; + + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = report, + }; + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); + + return File(result.DocumentBytes, mimeType, $"แบบ ขร3.{exportType.Trim().ToLower()}"); } catch { @@ -266,6 +306,8 @@ namespace BMA.EHR.Report.Service.Controllers try { var data = await _repository.GetKhr4Report(id); + var YearInsignalPeriod = await _repository.GetYearInsigniaPeriod(id); + var TwoYearInsignalPeriod = await _repository.Get2YearInsigniaPeriod(id); var mimeType = ""; switch (exportType.Trim().ToLower()) { @@ -281,9 +323,30 @@ namespace BMA.EHR.Report.Service.Controllers { report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); } + report.ReportParameters["YearInsigniaPeriod"].Value = YearInsignalPeriod; + report.ReportParameters["TwoYearInsignalPeriod"].Value = TwoYearInsignalPeriod; var tbl1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; - tbl1.DataSource = data; + var _Khr4List = new List(); + foreach (var _data in data) + { + _Khr4List.Add(new + { + RowNo = _Khr4List.Count + 1, + FullName = _data.GetType().GetProperty("FullName").GetValue(_data), + CitizenId = _data.GetType().GetProperty("CitizenId").GetValue(_data), + Type = _data.GetType().GetProperty("Type").GetValue(_data), + Level = _data.GetType().GetProperty("Level").GetValue(_data), + DateStart = _data.GetType().GetProperty("DateStart").GetValue(_data), + SalaryAmount = _data.GetType().GetProperty("SalaryAmount").GetValue(_data), + Position = _data.GetType().GetProperty("Position").GetValue(_data), + InsigniaRecv = _data.GetType().GetProperty("InsigniaRecv").GetValue(_data), + InsigniaRecvDate = _data.GetType().GetProperty("InsigniaRecvDate").GetValue(_data), + InsigniaRequest = _data.GetType().GetProperty("InsigniaRequest").GetValue(_data), + Remark = _data.GetType().GetProperty("Remark").GetValue(_data), + }); + } + tbl1.DataSource = _Khr4List; System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); InstanceReportSource instanceReportSource = new InstanceReportSource() @@ -354,7 +417,9 @@ namespace BMA.EHR.Report.Service.Controllers { try { - + var data = await _repository.GetSummaryCoinReport(id); + var SummaryTotal = await _repository.GetSummaryTotalCoinReport(id); + var YearInsignalPeriod = await _repository.GetYearInsigniaPeriod(id); var mimeType = ""; switch (exportType.Trim().ToLower()) { @@ -364,9 +429,41 @@ namespace BMA.EHR.Report.Service.Controllers } var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"44-บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + ReportPackager reportPacker = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); + } + report.ReportParameters["YearInsigniaPeriod"].Value = YearInsignalPeriod; - return File(contentData, mimeType, $"insignia.{exportType.Trim().ToLower()}"); + var tbl1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; + var _Khr6List = new List(); + foreach (var _data in data) + { + _Khr6List.Add(new + { + RowNo = _Khr6List.Count + 1, + DepartmentName = _data.GetType().GetProperty("DepartmentName").GetValue(_data), + G1Male = _data.GetType().GetProperty("G1Male").GetValue(_data), + G1Female = _data.GetType().GetProperty("G1Female").GetValue(_data), + G2Male = _data.GetType().GetProperty("G2Male").GetValue(_data), + G2Female = _data.GetType().GetProperty("G2Female").GetValue(_data), + Remark = _data.GetType().GetProperty("Remark").GetValue(_data), + }); + } + tbl1.DataSource = _Khr6List; + + var tbl2 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table2"]; + tbl2.DataSource = SummaryTotal; + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = report, + }; + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); + return File(result.DocumentBytes, mimeType, $"บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ{exportType.Trim().ToLower()}"); } catch @@ -391,7 +488,8 @@ namespace BMA.EHR.Report.Service.Controllers { try { - + var data = await _repository.GetCoinReport(id); + var YearInsignalPeriod = await _repository.GetYearInsigniaPeriod(id); var mimeType = ""; switch (exportType.Trim().ToLower()) { @@ -401,9 +499,37 @@ namespace BMA.EHR.Report.Service.Controllers } var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + ReportPackager reportPacker = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); + } - return File(contentData, mimeType, $"insignia.{exportType.Trim().ToLower()}"); + report.ReportParameters["YearInsignalPeriod"].Value = YearInsignalPeriod; + + //var _Khr3List = new List(); + //int maxRows = 25; + //for (int i = 0; i < maxRows; i++) + //{ + // _Khr3List.Add(new + // { + // RowNo = i + 1, + // FullName = string.Empty + // }); + //} + + //var tbl1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; + //tbl1.DataSource = _Khr3List; + + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = report, + }; + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); + return File(result.DocumentBytes, mimeType, $"บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา.{exportType.Trim().ToLower()}"); } catch @@ -428,7 +554,8 @@ namespace BMA.EHR.Report.Service.Controllers { try { - + var profile = await _repository.GetProfileInsignia(id); + var data = await _repository.GetHistorySalaryReport(id); var mimeType = ""; switch (exportType.Trim().ToLower()) { @@ -438,9 +565,42 @@ namespace BMA.EHR.Report.Service.Controllers } var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"46-ประวัติสำหรับการเสนอขอพระราชทานเหรียญจักรพรรดิมาลา.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + ReportPackager reportPacker = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); + } - return File(contentData, mimeType, $"insignia.{exportType.Trim().ToLower()}"); + report.ReportParameters["FullName"].Value = profile.GetType().GetProperty("FullName").GetValue(profile); + report.ReportParameters["Position"].Value = profile.GetType().GetProperty("Position").GetValue(profile); + report.ReportParameters["OCName"].Value = profile.GetType().GetProperty("OCName").GetValue(profile); + report.ReportParameters["BirthDate"].Value = profile.GetType().GetProperty("BirthDate").GetValue(profile); + + var historysalary = new List(); + foreach (var _data in data) + { + historysalary.Add(new + { + DateTh = _data.GetType().GetProperty("DateTh").GetValue(_data), + Position = _data.GetType().GetProperty("Position").GetValue(_data), + OCName = _data.GetType().GetProperty("OCName").GetValue(_data), + Age = _data.GetType().GetProperty("Age").GetValue(_data), + Amount = _data.GetType().GetProperty("Amount").GetValue(_data), + Remark = _data.GetType().GetProperty("Remark").GetValue(_data), + }); + } + var tbl1 = (Telerik.Reporting.Table)report.Items["detailsection1"].Items["table1"]; + tbl1.DataSource = historysalary; + + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = report, + }; + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); + return File(result.DocumentBytes, mimeType, $"ประวัติสำหรับการเสนอขอพระราชทานเหรียญจักรพรรดิมาลา.{exportType.Trim().ToLower()}"); } catch diff --git a/BMA.EHR.Report.Service/Reports/39-แบบ ขร1 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นสายสะพาย.trdp b/BMA.EHR.Report.Service/Reports/39-แบบ ขร1 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นสายสะพาย.trdp index c09ace86..81dc0b7e 100644 Binary files a/BMA.EHR.Report.Service/Reports/39-แบบ ขร1 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นสายสะพาย.trdp and b/BMA.EHR.Report.Service/Reports/39-แบบ ขร1 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นสายสะพาย.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/40-แบบ ขร2 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นต่ำกว่าสายสะพาย.trdp b/BMA.EHR.Report.Service/Reports/40-แบบ ขร2 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นต่ำกว่าสายสะพาย.trdp index 3817906d..6f4a0d98 100644 Binary files a/BMA.EHR.Report.Service/Reports/40-แบบ ขร2 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นต่ำกว่าสายสะพาย.trdp and b/BMA.EHR.Report.Service/Reports/40-แบบ ขร2 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นต่ำกว่าสายสะพาย.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ.trdp b/BMA.EHR.Report.Service/Reports/41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ.trdp index 9335984d..6e39becf 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/42-แบบ ขร4 บัญชีแสดงคุณสมบัติของข้าราชการซึ่งเสนอขอเครื่องราชฯ.trdp b/BMA.EHR.Report.Service/Reports/42-แบบ ขร4 บัญชีแสดงคุณสมบัติของข้าราชการซึ่งเสนอขอเครื่องราชฯ.trdp index 1b78a9ce..609a356c 100644 Binary files a/BMA.EHR.Report.Service/Reports/42-แบบ ขร4 บัญชีแสดงคุณสมบัติของข้าราชการซึ่งเสนอขอเครื่องราชฯ.trdp and b/BMA.EHR.Report.Service/Reports/42-แบบ ขร4 บัญชีแสดงคุณสมบัติของข้าราชการซึ่งเสนอขอเครื่องราชฯ.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/44-บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ.trdp b/BMA.EHR.Report.Service/Reports/44-บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ.trdp index 3a4b8c94..d9425d06 100644 Binary files a/BMA.EHR.Report.Service/Reports/44-บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ.trdp and b/BMA.EHR.Report.Service/Reports/44-บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา.trdp b/BMA.EHR.Report.Service/Reports/45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา.trdp index ff32cac6..cbe26409 100644 Binary files a/BMA.EHR.Report.Service/Reports/45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา.trdp and b/BMA.EHR.Report.Service/Reports/45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/46-ประวัติสำหรับการเสนอขอพระราชทานเหรียญจักรพรรดิมาลา.trdp b/BMA.EHR.Report.Service/Reports/46-ประวัติสำหรับการเสนอขอพระราชทานเหรียญจักรพรรดิมาลา.trdp index 433a0304..9946080d 100644 Binary files a/BMA.EHR.Report.Service/Reports/46-ประวัติสำหรับการเสนอขอพระราชทานเหรียญจักรพรรดิมาลา.trdp and b/BMA.EHR.Report.Service/Reports/46-ประวัติสำหรับการเสนอขอพระราชทานเหรียญจักรพรรดิมาลา.trdp differ