From 1404ba3be5d9d1ee3a53e4ebffe959fe592d7f64 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Sun, 3 Sep 2023 13:35:58 +0700 Subject: [PATCH] Report Command 04-07 --- .../Commands/CommandReportRepository.cs | 238 +++++- .../Reports/CommandType03Response.cs | 35 + .../Controllers/CommandReportController.cs | 700 ++++++++++++++++-- .../02-คำสั่งบรรจุและแต่งตั้งผู้ได้รับคัดเลือก-4.trdp | Bin 2621 -> 2621 bytes .../Reports/03-คำสั่งแต่งตั้งผู้สอบแข่งขัน-Head.trdp | Bin 29031 -> 29012 bytes .../Reports/03-คำสั่งแต่งตั้งผู้สอบแข่งขัน.trdp | Bin 2757 -> 2960 bytes .../Reports/04-คำสั่งย้ายผู้สอบแข่งขัน-Head.trdp | Bin 2417 -> 29058 bytes .../Reports/04-คำสั่งย้ายผู้สอบแข่งขัน.trdp | Bin 2764 -> 3003 bytes .../Reports/05-06-คำสั่งแต่งตั้ง-คำสั่งเลื่อน.trdp | Bin 28818 -> 29012 bytes .../05-06-แนบท้ายคำสั่งแต่งตั้ง-คำสั่งเลื่อน.trdp | Bin 3410 -> 2960 bytes .../Reports/07-คำสั่งย้าย.trdp | Bin 28601 -> 29058 bytes .../Reports/07-แนบท้ายคำสั่งย้าย.trdp | Bin 3187 -> 3005 bytes 12 files changed, 922 insertions(+), 51 deletions(-) create mode 100644 BMA.EHR.Application/Responses/Reports/CommandType03Response.cs diff --git a/BMA.EHR.Application/Repositories/Commands/CommandReportRepository.cs b/BMA.EHR.Application/Repositories/Commands/CommandReportRepository.cs index 21c5a321..a9894177 100644 --- a/BMA.EHR.Application/Repositories/Commands/CommandReportRepository.cs +++ b/BMA.EHR.Application/Repositories/Commands/CommandReportRepository.cs @@ -1,14 +1,12 @@ using BMA.EHR.Application.Common.Interfaces; +using BMA.EHR.Application.Responses.Reports; +using BMA.EHR.Domain.Extensions; using BMA.EHR.Domain.Models.Commands.Core; +using BMA.EHR.Domain.Models.HR; +using BMA.EHR.Domain.Models.Placement; using BMA.EHR.Domain.Shared; using Microsoft.AspNetCore.Http; using Microsoft.EntityFrameworkCore; -using System; -using System.Collections.Generic; -using System.ComponentModel.Design; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace BMA.EHR.Application.Repositories.Commands { @@ -119,6 +117,234 @@ namespace BMA.EHR.Application.Repositories.Commands } } + public async Task> GetCommandType03AttachmentAsync(Guid id) + { + try + { + var raw_data = await _dbContext.Set() + .Include(c => c.Command) + .Where(c => c.Command.Id == id) + .ToListAsync(); + if (raw_data == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + var report_data = (from r in raw_data + join p in _dbContext.Set() + .Include(x => x.OrganizationPosition) + .ThenInclude(x => x.Organization) + .Include(x => x.PositionPath) + .Include(x => x.PositionLevel) + .Include(x => x.PositionNumber) + .Include(x => x.PositionType) + on r.RefPlacementProfileId equals p.Id + join pf in _dbContext.Set() + .Include(x => x.Position) + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + on r.CitizenId equals pf.CitizenId + select new CommandType03Response + { + CitizenId = r.CitizenId, + FullName = $"{r.Prefix}{r.FirstName} {r.LastName}", + OldOc = pf.Oc == null ? "" : pf.Oc.Replace("/", " "), + OldPositionName = pf.Position == null ? "" : pf.Position.Name, + OldPositionLevel = pf.PositionLevel == null ? "" : pf.PositionLevel.Name, + OldPositionType = pf.PositionType == null ? "" : pf.PositionType.Name, + OldPositionNumber = pf.PosNo == null ? "" : pf.PosNo.Name, + OldSalary = pf.Salaries == null || pf.Salaries.Count == 0 ? 0 : pf.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount.Value, + NewOc = _organizationCommonRepository.GetOrganizationNameFullPath(p.OrganizationPosition!.Organization!.Id, false, false, "/"), + NewPositionName = p.PositionPath == null ? "" : p.PositionPath!.Name, + NewPositionLevel = p.PositionLevel == null ? "" : p.PositionLevel.Name, + NewPositionType = p.PositionType == null ? "" : p.PositionType.Name, + NewPositionNumber = p.PositionNumber == null ? "" : p.PositionNumber.Name, + NewSalary = p.Amount == null ? 0 : p.Amount.Value, + AppointDate = p.RecruitDate == null ? "" : p.RecruitDate.Value.ToThaiFullDate3() + }) + .ToList(); + + return report_data; + } + catch + { + throw; + } + } + + public async Task> GetCommandType04AttachmentAsync(Guid id) + { + try + { + var raw_data = await _dbContext.Set() + .Include(c => c.Command) + .Where(c => c.Command.Id == id) + .ToListAsync(); + if (raw_data == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + var report_data = (from r in raw_data + join p in _dbContext.Set() + .Include(x => x.OrganizationPosition) + .ThenInclude(x => x.Organization) + .Include(x => x.PositionPath) + .Include(x => x.PositionLevel) + .Include(x => x.PositionNumber) + .Include(x => x.PositionType) + on r.RefPlacementProfileId equals p.Id + join pf in _dbContext.Set() + .Include(x => x.Position) + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + on r.CitizenId equals pf.CitizenId + select new CommandType03Response + { + CitizenId = r.CitizenId, + FullName = $"{r.Prefix}{r.FirstName} {r.LastName}", + OldOc = pf.Oc == null ? "" : pf.Oc.Replace("/", " "), + OldPositionName = pf.Position == null ? "" : pf.Position.Name, + OldPositionLevel = pf.PositionLevel == null ? "" : pf.PositionLevel.Name, + OldPositionType = pf.PositionType == null ? "" : pf.PositionType.Name, + OldPositionNumber = pf.PosNo == null ? "" : pf.PosNo.Name, + OldSalary = pf.Salaries == null || pf.Salaries.Count == 0 ? 0 : pf.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount.Value, + NewOc = _organizationCommonRepository.GetOrganizationNameFullPath(p.OrganizationPosition!.Organization!.Id, false, false, "/"), + NewPositionName = p.PositionPath == null ? "" : p.PositionPath!.Name, + NewPositionLevel = p.PositionLevel == null ? "" : p.PositionLevel.Name, + NewPositionType = p.PositionType == null ? "" : p.PositionType.Name, + NewPositionNumber = p.PositionNumber == null ? "" : p.PositionNumber.Name, + NewSalary = p.Amount == null ? 0 : p.Amount.Value, + AppointDate = p.RecruitDate == null ? "" : p.RecruitDate.Value.ToThaiFullDate3() + }) + .ToList(); + + return report_data; + } + catch + { + throw; + } + } + + public async Task> GetCommandType05_06AttachmentAsync(Guid id) + { + try + { + var raw_data = await _dbContext.Set() + .Include(c => c.Command) + .Where(c => c.Command.Id == id) + .ToListAsync(); + if (raw_data == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + var report_data = (from r in raw_data + join p in _dbContext.Set() + .Include(x => x.OrganizationPosition) + .ThenInclude(x => x.Organization) + .Include(x => x.PositionPath) + .Include(x => x.PositionLevel) + .Include(x => x.PositionNumber) + .Include(x => x.PositionType) + on r.RefPlacementProfileId equals p.Id + join pf in _dbContext.Set() + .Include(x => x.Position) + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + on r.CitizenId equals pf.CitizenId + select new CommandType03Response + { + CitizenId = r.CitizenId, + FullName = $"{r.Prefix}{r.FirstName} {r.LastName}", + OldOc = pf.Oc == null ? "" : pf.Oc.Replace("/", " "), + OldPositionName = pf.Position == null ? "" : pf.Position.Name, + OldPositionLevel = pf.PositionLevel == null ? "" : pf.PositionLevel.Name, + OldPositionType = pf.PositionType == null ? "" : pf.PositionType.Name, + OldPositionNumber = pf.PosNo == null ? "" : pf.PosNo.Name, + OldSalary = pf.Salaries == null || pf.Salaries.Count == 0 ? 0 : pf.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount.Value, + NewOc = _organizationCommonRepository.GetOrganizationNameFullPath(p.OrganizationPosition!.Organization!.Id, false, false, "/"), + NewPositionName = p.PositionPath == null ? "" : p.PositionPath!.Name, + NewPositionLevel = p.PositionLevel == null ? "" : p.PositionLevel.Name, + NewPositionType = p.PositionType == null ? "" : p.PositionType.Name, + NewPositionNumber = p.PositionNumber == null ? "" : p.PositionNumber.Name, + NewSalary = p.Amount == null ? 0 : p.Amount.Value, + AppointDate = p.RecruitDate == null ? "" : p.RecruitDate.Value.ToThaiFullDate3() + }) + .ToList(); + + return report_data; + } + catch + { + throw; + } + } + + public async Task> GetCommandType07AttachmentAsync(Guid id) + { + try + { + var raw_data = await _dbContext.Set() + .Include(c => c.Command) + .Where(c => c.Command.Id == id) + .ToListAsync(); + if (raw_data == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + var report_data = (from r in raw_data + join p in _dbContext.Set() + .Include(x => x.OrganizationPosition) + .ThenInclude(x => x.Organization) + .Include(x => x.PositionPath) + .Include(x => x.PositionLevel) + .Include(x => x.PositionNumber) + .Include(x => x.PositionType) + on r.RefPlacementProfileId equals p.Id + join pf in _dbContext.Set() + .Include(x => x.Position) + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + on r.CitizenId equals pf.CitizenId + select new CommandType03Response + { + CitizenId = r.CitizenId, + FullName = $"{r.Prefix}{r.FirstName} {r.LastName}", + OldOc = pf.Oc == null ? "" : pf.Oc.Replace("/", " "), + OldPositionName = pf.Position == null ? "" : pf.Position.Name, + OldPositionLevel = pf.PositionLevel == null ? "" : pf.PositionLevel.Name, + OldPositionType = pf.PositionType == null ? "" : pf.PositionType.Name, + OldPositionNumber = pf.PosNo == null ? "" : pf.PosNo.Name, + OldSalary = pf.Salaries == null || pf.Salaries.Count == 0 ? 0 : pf.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount.Value, + NewOc = _organizationCommonRepository.GetOrganizationNameFullPath(p.OrganizationPosition!.Organization!.Id, false, false, "/"), + NewPositionName = p.PositionPath == null ? "" : p.PositionPath!.Name, + NewPositionLevel = p.PositionLevel == null ? "" : p.PositionLevel.Name, + NewPositionType = p.PositionType == null ? "" : p.PositionType.Name, + NewPositionNumber = p.PositionNumber == null ? "" : p.PositionNumber.Name, + NewSalary = p.Amount == null ? 0 : p.Amount.Value, + AppointDate = p.RecruitDate == null ? "" : p.RecruitDate.Value.ToThaiFullDate3() + }) + .ToList(); + + return report_data; + } + catch + { + throw; + } + } + #endregion } } diff --git a/BMA.EHR.Application/Responses/Reports/CommandType03Response.cs b/BMA.EHR.Application/Responses/Reports/CommandType03Response.cs new file mode 100644 index 00000000..cf743393 --- /dev/null +++ b/BMA.EHR.Application/Responses/Reports/CommandType03Response.cs @@ -0,0 +1,35 @@ +namespace BMA.EHR.Application.Responses.Reports +{ + public class CommandType03Response + { + public string CitizenId { get; set; } = string.Empty; + + public string FullName { get; set; } = string.Empty; + + public string OldOc { get; set; } = string.Empty; + + public string OldPositionName { get; set; } = string.Empty; + + public string OldPositionLevel { get; set; } = string.Empty; + + public string OldPositionType { get; set; } = string.Empty; + + public string OldPositionNumber { get; set; } = string.Empty; + + public double OldSalary { get; set; } = 0; + + public string NewOc { get; set; } = string.Empty; + + public string NewPositionName { get; set; } = string.Empty; + + public string NewPositionLevel { get; set; } = string.Empty; + + public string NewPositionType { get; set; } = string.Empty; + + public string NewPositionNumber { get; set; } = string.Empty; + + public double NewSalary { get; set; } = 0; + + public string AppointDate { get; set; } = string.Empty; + } +} diff --git a/BMA.EHR.Report.Service/Controllers/CommandReportController.cs b/BMA.EHR.Report.Service/Controllers/CommandReportController.cs index 61acf3c3..fb1f061e 100644 --- a/BMA.EHR.Report.Service/Controllers/CommandReportController.cs +++ b/BMA.EHR.Report.Service/Controllers/CommandReportController.cs @@ -285,6 +285,596 @@ namespace BMA.EHR.Report.Service.Controllers #endregion + #region " C-PM-03 " + + private async Task GenerateCommandReportType03_Cover(Guid commandId, string exportType) + { + try + { + var raw_data = await _repository.GetByIdAsync(commandId); + if (raw_data == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + //var recvId = raw_data.Receivers.Select(x => x.RefPlacementProfileId).ToList(); + //var positionList = string.Empty; + + var command = new + { + CommandNo = raw_data.CommandNo, + CommandYear = raw_data.CommandYear.ToInteger().ToThaiYear().ToString(), + IssuerOrganizationName = raw_data.IssuerOrganizationName, + ConclusionRegisterNo = raw_data.ConclusionRegisterNo, + ConclusionRegisterDate = raw_data.ConclusionRegisterDate == null ? "" : raw_data.ConclusionRegisterDate.Value.ToThaiFullDate3(), + ConclusionResultNo = raw_data.ConclusionResultNo, + ConclusionResultDate = raw_data.ConclusionResultDate == null ? "" : raw_data.ConclusionResultDate.Value.ToThaiFullDate3(), + PositionList = "", + Count = raw_data.Receivers.Count, + CommandAffectDate = raw_data.CommandAffectDate == null ? "" : raw_data.CommandAffectDate.Value.ToThaiFullDate3(), + AuthorizedUserFullName = raw_data.AuthorizedUserFullName, + AuthorizedPosition = raw_data.AuthorizedPosition, + }; + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"03-คำสั่งแต่งตั้งผู้สอบแข่งขัน-Head.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + report.DataSource = command; + + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + if (exportType == "docx") + deviceInfo["OutputFormat"] = "DOCX"; + + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = report + }; + + + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport(exportType.ToUpper(), instanceReportSource, deviceInfo); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + private async Task GenerateCommandReportType03_Attachment(Guid commandId, string exportType) + { + try + { + var command = await _repository.GetByIdAsync(commandId); + if (command == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + var data = await _commandReportRepository.GetCommandType03AttachmentAsync(commandId); + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"03-คำสั่งแต่งตั้งผู้สอบแข่งขัน.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + var tblData = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["tblData"]; + + tblData.DataSource = data; + + report.ReportParameters["IssuerOrganizationName"].Value = command.IssuerOrganizationName; + report.ReportParameters["CommandNo"].Value = command.CommandNo; + report.ReportParameters["CommandYear"].Value = command.CommandYear.ToInteger().ToThaiYear().ToString(); + report.ReportParameters["CommandExecuteDate"].Value = command.CommandExcecuteDate == null ? "" : command.CommandExcecuteDate.Value.ToThaiFullDate3(); + + 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); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + #endregion + + #region " C-PM-04 " + + private async Task GenerateCommandReportType04_Cover(Guid commandId, string exportType) + { + try + { + var raw_data = await _repository.GetByIdAsync(commandId); + if (raw_data == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + //var recvId = raw_data.Receivers.Select(x => x.RefPlacementProfileId).ToList(); + //var positionList = string.Empty; + + var command = new + { + CommandNo = raw_data.CommandNo, + CommandYear = raw_data.CommandYear.ToInteger().ToThaiYear().ToString(), + IssuerOrganizationName = raw_data.IssuerOrganizationName, + ConclusionRegisterNo = raw_data.ConclusionRegisterNo, + ConclusionRegisterDate = raw_data.ConclusionRegisterDate == null ? "" : raw_data.ConclusionRegisterDate.Value.ToThaiFullDate3(), + ConclusionResultNo = raw_data.ConclusionResultNo, + ConclusionResultDate = raw_data.ConclusionResultDate == null ? "" : raw_data.ConclusionResultDate.Value.ToThaiFullDate3(), + PositionList = "", + Count = raw_data.Receivers.Count, + CommandAffectDate = raw_data.CommandAffectDate == null ? "" : raw_data.CommandAffectDate.Value.ToThaiFullDate3(), + AuthorizedUserFullName = raw_data.AuthorizedUserFullName, + AuthorizedPosition = raw_data.AuthorizedPosition, + }; + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"04-คำสั่งย้ายผู้สอบแข่งขัน-Head.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + report.DataSource = command; + + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + if (exportType == "docx") + deviceInfo["OutputFormat"] = "DOCX"; + + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = report + }; + + + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport(exportType.ToUpper(), instanceReportSource, deviceInfo); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + private async Task GenerateCommandReportType04_Attachment(Guid commandId, string exportType) + { + try + { + var command = await _repository.GetByIdAsync(commandId); + if (command == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + var data = await _commandReportRepository.GetCommandType03AttachmentAsync(commandId); + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"04-คำสั่งย้ายผู้สอบแข่งขัน.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + var tblData = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["tblData"]; + + tblData.DataSource = data; + + report.ReportParameters["IssuerOrganizationName"].Value = command.IssuerOrganizationName; + report.ReportParameters["CommandNo"].Value = command.CommandNo; + report.ReportParameters["CommandYear"].Value = command.CommandYear.ToInteger().ToThaiYear().ToString(); + report.ReportParameters["CommandExecuteDate"].Value = command.CommandExcecuteDate == null ? "" : command.CommandExcecuteDate.Value.ToThaiFullDate3(); + + 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); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + #endregion + + #region " C-PM-05 " + + private async Task GenerateCommandReportType05_Cover(Guid commandId, string exportType) + { + try + { + var raw_data = await _repository.GetByIdAsync(commandId); + if (raw_data == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + //var recvId = raw_data.Receivers.Select(x => x.RefPlacementProfileId).ToList(); + //var positionList = string.Empty; + + var command = new + { + CommandNo = raw_data.CommandNo, + CommandYear = raw_data.CommandYear.ToInteger().ToThaiYear().ToString(), + IssuerOrganizationName = raw_data.IssuerOrganizationName, + ConclusionRegisterNo = raw_data.ConclusionRegisterNo, + ConclusionRegisterDate = raw_data.ConclusionRegisterDate == null ? "" : raw_data.ConclusionRegisterDate.Value.ToThaiFullDate3(), + ConclusionResultNo = raw_data.ConclusionResultNo, + ConclusionResultDate = raw_data.ConclusionResultDate == null ? "" : raw_data.ConclusionResultDate.Value.ToThaiFullDate3(), + PositionList = "", + Count = raw_data.Receivers.Count, + CommandAffectDate = raw_data.CommandAffectDate == null ? "" : raw_data.CommandAffectDate.Value.ToThaiFullDate3(), + AuthorizedUserFullName = raw_data.AuthorizedUserFullName, + AuthorizedPosition = raw_data.AuthorizedPosition, + }; + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"05-06-คำสั่งแต่งตั้ง-คำสั่งเลื่อน.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + report.DataSource = command; + + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + if (exportType == "docx") + deviceInfo["OutputFormat"] = "DOCX"; + + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = report + }; + + + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport(exportType.ToUpper(), instanceReportSource, deviceInfo); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + private async Task GenerateCommandReportType05_Attachment(Guid commandId, string exportType) + { + try + { + var command = await _repository.GetByIdAsync(commandId); + if (command == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + var data = await _commandReportRepository.GetCommandType05_06AttachmentAsync(commandId); + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"05-06-แนบท้ายคำสั่งแต่งตั้ง-คำสั่งเลื่อน.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + var tblData = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["tblData"]; + + tblData.DataSource = data; + + report.ReportParameters["IssuerOrganizationName"].Value = command.IssuerOrganizationName; + report.ReportParameters["CommandNo"].Value = command.CommandNo; + report.ReportParameters["CommandYear"].Value = command.CommandYear.ToInteger().ToThaiYear().ToString(); + report.ReportParameters["CommandExecuteDate"].Value = command.CommandExcecuteDate == null ? "" : command.CommandExcecuteDate.Value.ToThaiFullDate3(); + + 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); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + #endregion + + #region " C-PM-06 " + + private async Task GenerateCommandReportType06_Cover(Guid commandId, string exportType) + { + try + { + var raw_data = await _repository.GetByIdAsync(commandId); + if (raw_data == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + //var recvId = raw_data.Receivers.Select(x => x.RefPlacementProfileId).ToList(); + //var positionList = string.Empty; + + var command = new + { + CommandNo = raw_data.CommandNo, + CommandYear = raw_data.CommandYear.ToInteger().ToThaiYear().ToString(), + IssuerOrganizationName = raw_data.IssuerOrganizationName, + ConclusionRegisterNo = raw_data.ConclusionRegisterNo, + ConclusionRegisterDate = raw_data.ConclusionRegisterDate == null ? "" : raw_data.ConclusionRegisterDate.Value.ToThaiFullDate3(), + ConclusionResultNo = raw_data.ConclusionResultNo, + ConclusionResultDate = raw_data.ConclusionResultDate == null ? "" : raw_data.ConclusionResultDate.Value.ToThaiFullDate3(), + PositionList = "", + Count = raw_data.Receivers.Count, + CommandAffectDate = raw_data.CommandAffectDate == null ? "" : raw_data.CommandAffectDate.Value.ToThaiFullDate3(), + AuthorizedUserFullName = raw_data.AuthorizedUserFullName, + AuthorizedPosition = raw_data.AuthorizedPosition, + }; + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"05-06-คำสั่งแต่งตั้ง-คำสั่งเลื่อน.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + report.DataSource = command; + + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + if (exportType == "docx") + deviceInfo["OutputFormat"] = "DOCX"; + + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = report + }; + + + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport(exportType.ToUpper(), instanceReportSource, deviceInfo); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + private async Task GenerateCommandReportType06_Attachment(Guid commandId, string exportType) + { + try + { + var command = await _repository.GetByIdAsync(commandId); + if (command == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + var data = await _commandReportRepository.GetCommandType05_06AttachmentAsync(commandId); + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"05-06-แนบท้ายคำสั่งแต่งตั้ง-คำสั่งเลื่อน.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + var tblData = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["tblData"]; + + tblData.DataSource = data; + + report.ReportParameters["IssuerOrganizationName"].Value = command.IssuerOrganizationName; + report.ReportParameters["CommandNo"].Value = command.CommandNo; + report.ReportParameters["CommandYear"].Value = command.CommandYear.ToInteger().ToThaiYear().ToString(); + report.ReportParameters["CommandExecuteDate"].Value = command.CommandExcecuteDate == null ? "" : command.CommandExcecuteDate.Value.ToThaiFullDate3(); + + 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); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + #endregion + + #region " C-PM-07 " + + private async Task GenerateCommandReportType07_Cover(Guid commandId, string exportType) + { + try + { + var raw_data = await _repository.GetByIdAsync(commandId); + if (raw_data == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + //var recvId = raw_data.Receivers.Select(x => x.RefPlacementProfileId).ToList(); + //var positionList = string.Empty; + + var command = new + { + CommandNo = raw_data.CommandNo, + CommandYear = raw_data.CommandYear.ToInteger().ToThaiYear().ToString(), + IssuerOrganizationName = raw_data.IssuerOrganizationName, + ConclusionRegisterNo = raw_data.ConclusionRegisterNo, + ConclusionRegisterDate = raw_data.ConclusionRegisterDate == null ? "" : raw_data.ConclusionRegisterDate.Value.ToThaiFullDate3(), + ConclusionResultNo = raw_data.ConclusionResultNo, + ConclusionResultDate = raw_data.ConclusionResultDate == null ? "" : raw_data.ConclusionResultDate.Value.ToThaiFullDate3(), + PositionList = "", + Count = raw_data.Receivers.Count, + CommandAffectDate = raw_data.CommandAffectDate == null ? "" : raw_data.CommandAffectDate.Value.ToThaiFullDate3(), + AuthorizedUserFullName = raw_data.AuthorizedUserFullName, + AuthorizedPosition = raw_data.AuthorizedPosition, + }; + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"07-คำสั่งย้าย.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + report.DataSource = command; + + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + if (exportType == "docx") + deviceInfo["OutputFormat"] = "DOCX"; + + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = report + }; + + + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport(exportType.ToUpper(), instanceReportSource, deviceInfo); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + private async Task GenerateCommandReportType07_Attachment(Guid commandId, string exportType) + { + try + { + var command = await _repository.GetByIdAsync(commandId); + if (command == null) + { + throw new Exception(GlobalMessages.CommandNotFound); + } + + var data = await _commandReportRepository.GetCommandType05_06AttachmentAsync(commandId); + + var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"07-แนบท้ายคำสั่งย้าย.trdp"); + + ReportPackager reportPackager = new ReportPackager(); + Telerik.Reporting.Report? report = null; + using (var sourceStream = System.IO.File.OpenRead(rptFile)) + { + report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream); + } + + var tblData = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["tblData"]; + + tblData.DataSource = data; + + report.ReportParameters["IssuerOrganizationName"].Value = command.IssuerOrganizationName; + report.ReportParameters["CommandNo"].Value = command.CommandNo; + report.ReportParameters["CommandYear"].Value = command.CommandYear.ToInteger().ToThaiYear().ToString(); + report.ReportParameters["CommandExecuteDate"].Value = command.CommandExcecuteDate == null ? "" : command.CommandExcecuteDate.Value.ToThaiFullDate3(); + + 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); + + var content = result.DocumentBytes; + + return content; + } + catch + { + throw; + } + } + + #endregion + #endregion #region " C-PM-01 คำสั่งบรรจุและแต่งตั้ง: สำหรับผู้สอบแข่งขันได้ " @@ -477,7 +1067,7 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType03CoverReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType03CoverReportAsync(Guid id, string exportType = "pdf") { try { @@ -489,10 +1079,12 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"03-คำสั่งแต่งตั้งผู้สอบแข่งขัน-Head.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); - return File(contentData, mimeType, $"command.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType03_Cover(id, exportType); + return File(contentData, mimeType, $"command-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { @@ -514,10 +1106,14 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType03AttachmentReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType03AttachmentReportAsync(Guid id, string exportType = "pdf") { try { + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); + var mimeType = ""; switch (exportType.Trim().ToLower()) { @@ -526,10 +1122,8 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"03-คำสั่งแต่งตั้งผู้สอบแข่งขัน.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); - - return File(contentData, mimeType, $"command-attachment.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType03_Attachment(id, exportType); + return File(contentData, mimeType, $"command-attachment-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { @@ -555,7 +1149,7 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType04CoverReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType04CoverReportAsync(Guid id, string exportType = "pdf") { try { @@ -567,10 +1161,12 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"04-คำสั่งย้ายผู้สอบแข่งขัน-Head.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); - return File(contentData, mimeType, $"command.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType04_Cover(id, exportType); + return File(contentData, mimeType, $"command-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { @@ -592,10 +1188,14 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType04AttachmentReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType04AttachmentReportAsync(Guid id, string exportType = "pdf") { try { + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); + var mimeType = ""; switch (exportType.Trim().ToLower()) { @@ -604,10 +1204,8 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"04-คำสั่งย้ายผู้สอบแข่งขัน.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); - - return File(contentData, mimeType, $"command-attachment.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType04_Attachment(id, exportType); + return File(contentData, mimeType, $"command-attachment-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { @@ -633,7 +1231,7 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType05CoverReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType05CoverReport(Guid id, string exportType = "pdf") { try { @@ -645,10 +1243,12 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"05-06-คำสั่งแต่งตั้ง-คำสั่งเลื่อน.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); - return File(contentData, mimeType, $"command.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType05_Cover(id, exportType); + return File(contentData, mimeType, $"command-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { @@ -670,10 +1270,14 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType05AttachmentReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType05AttachmentReport(Guid id, string exportType = "pdf") { try { + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); + var mimeType = ""; switch (exportType.Trim().ToLower()) { @@ -682,10 +1286,8 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"05-06-แนบท้ายคำสั่งแต่งตั้ง-คำสั่งเลื่อน.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); - - return File(contentData, mimeType, $"command-attachment.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType05_Attachment(id, exportType); + return File(contentData, mimeType, $"command-attachment-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { @@ -711,7 +1313,7 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType06CoverReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType06CoverReport(Guid id, string exportType = "pdf") { try { @@ -723,10 +1325,12 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"05-06-คำสั่งแต่งตั้ง-คำสั่งเลื่อน.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); - return File(contentData, mimeType, $"command.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType06_Cover(id, exportType); + return File(contentData, mimeType, $"command-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { @@ -748,10 +1352,14 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType06AttachmentReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType06AttachmentReport(Guid id, string exportType = "pdf") { try { + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); + var mimeType = ""; switch (exportType.Trim().ToLower()) { @@ -760,10 +1368,8 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"05-06-แนบท้ายคำสั่งแต่งตั้ง-คำสั่งเลื่อน.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); - - return File(contentData, mimeType, $"command-attachment.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType06_Attachment(id, exportType); + return File(contentData, mimeType, $"command-attachment-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { @@ -789,7 +1395,7 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType07CoverReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType07CoverReport(Guid id, string exportType = "pdf") { try { @@ -801,10 +1407,12 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"07-คำสั่งย้าย.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); - return File(contentData, mimeType, $"command.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType07_Cover(id, exportType); + return File(contentData, mimeType, $"command-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { @@ -826,10 +1434,14 @@ namespace BMA.EHR.Report.Service.Controllers [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] - public IActionResult GetCommandType07AttachmentReport(Guid id, string exportType = "pdf") + public async Task> GetCommandType07AttachmentReport(Guid id, string exportType = "pdf") { try { + var cmd = await _repository.GetByIdAsync(id); + if (cmd == null) + throw new Exception(GlobalMessages.CommandNotFound); + var mimeType = ""; switch (exportType.Trim().ToLower()) { @@ -838,10 +1450,8 @@ namespace BMA.EHR.Report.Service.Controllers case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } - var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"07-แนบท้ายคำสั่งย้าย.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); - - return File(contentData, mimeType, $"command-attachment.{exportType.Trim().ToLower()}"); + var contentData = await GenerateCommandReportType07_Attachment(id, exportType); + return File(contentData, mimeType, $"command-attachment-{cmd.CommandNo}-{cmd.CommandYear.ToInteger().ToThaiYear()}.{exportType.Trim().ToLower()}"); } catch { diff --git a/BMA.EHR.Report.Service/Reports/02-คำสั่งบรรจุและแต่งตั้งผู้ได้รับคัดเลือก-4.trdp b/BMA.EHR.Report.Service/Reports/02-คำสั่งบรรจุและแต่งตั้งผู้ได้รับคัดเลือก-4.trdp index 769a485baac6c9155c64cf2bb20fbd8e2128102a..fd8e19525f1bbe50dfa6a00259b1ace451844014 100644 GIT binary patch delta 46 ucmdlhvR8yRz?+#xgn@y9gW*TA@Pz9V0tH~C7Axo=>Y&kjt{Z` delta 46 ucmdlhvR8yRz?+#xgn@y9gF$zz(nj8+9Lzv^@>Pz9V0tH~C7Axo=>Y&977fY( diff --git a/BMA.EHR.Report.Service/Reports/03-คำสั่งแต่งตั้งผู้สอบแข่งขัน-Head.trdp b/BMA.EHR.Report.Service/Reports/03-คำสั่งแต่งตั้งผู้สอบแข่งขัน-Head.trdp index 3e4ebb334fc86cf7cbf24dacc0a3c898058b930e..3a34e0f5be9b1ce1a89557732387f7693d0c9803 100644 GIT binary patch delta 1776 zcmV848+GOIUeQ3?EC1OIj4F9rTDf!_)I z{lIUJE94v7Zh)v!#$UH@mo2^drDIf!%DmHJ%uFGREmilt=I5H`R_e5&yQ)V`>KM1w zirvs0)P-rNKOe-EUja;Tit?m_nl^ip%kOSSh zl2w^1TnE|9-d&SMT{dvZw!DyO{xT`+j{a@SBD3^1Gs9S<07}zSh!!uQCD%x(hXW;} z;`mJ(D}PfCer|sTGOftOeEooq;3i*gMlfPugF-W;Q=Et z0`l-Yz2gBWQMAeSX1I~u;!I@kh?>b4poefl^s%`6Bk&Ib|0w9L1pe~(mkerFU3JEF zTh#f=sp*!nr~@9L{5@g4$A#z9Oedh(lxfu1Ub#Rmk2=awXw1xi2i?vvc!ZYAW97Qu zqymb(nonYple`~cF{+Fa9X$SsZ;J@mh-w3*^V54sPKE8=a7ZX3US5CL49C};=dh88XX zL9Fi<5-(x*wO}7=5eDS8%3xHPVXJ8924dkq6PC3R>Md-49ATpuohN|KJJ4hEYo~+T zHmCsfto;}2-AOg@G3nRxaTEjZ(2~vm7Wlsh{?DjTTfoi5uOQ=VP!yC{MjJZVUY8V- z=K$xo1nlDB3v(}#iBYUb6JcCGl7LREa|i-Jd`ATN9s=1$b=L&_x&U%tI5Y*JHTKOB z0ynT$TZLbL62={*?*}M)6ISc4fRD9g{D7<-q0%9WJ3_4@7B~mq;3_Z0rDUf!2#=$| zYNWxFAvFM(KP8BRkF@-Dv@Hmq2Hl@Xa?xXH#Fl@2Vx_h*(q3RDdn00Om&eZljSf{w zt9@iU5IGR{7D#V%LCF}{5`n%Y+KG)t5-|=8>##I`tg?^V_wB?u87zrCu@UAGnA+rF zHxRjw98FJ#f^9YOC7;>t2aK!s+cXfw9nC+ z;j)X!Mct$K2#NDisQfa)>-U}n>VbsKeUW|choXRgTjJ*q;;!(eY|sXbL*5Mu*646p z64_CI&Y(xB9!Iign1nhX;G{~%;b6}X26NWFcPg%PTc*by_wV|ReEg0BD7o7<#NpN! zhZ`6hF_moBfV<{Z=4l{jlYgRKgMb-m7Ba^H0m(^Ht!3fzoN1R}7CRD1^UKFWJRYBm z+z}nKhvL{=N3A-@vMJQq#Wcso#;+SBW9U48=y}JCzV96a7hi0FWzIUvqs*T+A*A_78clZ7V~-!WQCzNP>UEboms+NYRjIQ*Xk;@V0UQN2S4h_CHlS9=l2rU4h5eQSjyS#hfk~}Z zo-#0#TA~E4C2G*TMlDfHLe;!XJt$>CyQHKysdL4!szqfg&wyiz#I5Mf_(Wy59Y)!* zTP~7{aUtxQ?$it`t}ly$>!A;@PCOS@!DC;jIn0RDw&!749+N(A7E-Qz_u*F3tMCto zP_Z18&4ps`DWR9C$-uOoL>V1QgJOd4nl?BFfS%TS?;>f`m%WA=y0S-lkGN2u$h@#G z0GQPHze&#h4Nyx11QY-O00;nWlcsO*0d13)a7hhqwjx(`&hpf%1^@t8lkIRX0d12V SaUB7OlRI%H26u1(0002o3}e3l delta 1813 zcmV+w2kQ9L;sNL40Siz|0|XQR000O8D6tEbXbmW~B3IA;CfU6P004@Ut!PPq3PeC^ z#R1g5UG0s1;(TY_oeQKw!ZcC>DwW6|fSdPmbdUlK{J;4bw)R)W-ASaly4f%X;ZgIO zANcKYg?ww<4G=ZT`0MtqvZXgKI!3jq%sVZ{%oMWNQgzR3eyM40rA`~Vt9sO=j&W11 z*bU7=U6_ViE|VM4vT9agDiSg|4+NwBj+-$R%pj>RwTQ$uScPInbRe zS(T~6b&$R6-7#s@Wdj#%%L|$2FOjnD=-;(0GD~kUGmJ$Fpfo*&Xz>zSa*c#~I8ZVw zUdy4=_H8oLULj=9oGToq4-iR5Iuv zV-X!$uIMH$IX2>ETe_)#kgG<6&fjS=nFff|npRC_QeT&FA`Sa5_kT{WszlMZLoP#zZgL!|Ytdd09P zH}1UQ@C{g0zPgdJXvzxV=+IG9V36d~;$~Exn8-_UL()Ehe~78<1q7473*GJ`9O>XU z3$G1q>|ogKhwbivk4UhCT}JSnHAv81XFu#uJMi}c|5g9|M$la)rx?*`PW6(SgpGPKGu@)1G096N{1-!2(^k>;2d~^tGpDKlAYcl{16RR zBMqJmsR6kBDM1{3q~*7xZ9(`n=>9~Ki++$sZ28B>R%#m~?FDACHzLM%dHf8}=unlk z+DEnnkpppWf%G;Pl#GEb5$Ic@o!D3;5#zwH4oky-D*LE?-%gB^!IIb$8(|)SsZAbs z1Ci^<(ez{}*j6K7@|oR!!1!8;%*IcU18I-(EwjwKvYYpCv`@0Q!<@6NirIoo`y8zq zF1v`F*FAcdkT@TO$}bbVe(y=39!S{S7un~2C<^$uC4TN8?h0SZ25rDNxNBZvo(6I@`6uc%2$+FpA#)rMkenpdS{5$PnRW?gu_J*rzkEEz$Ke z?>r4K0;d)h*b5ksf*!~UL+#%a2P~`Ra`}Ov<<&wiE=Od?)Ivc&u4_l5(9=Pq5&~TuUyM_u*F3tMEUGP_Z0T+J$28sk)avsmZ{! zokZmws)=HP@G>|!27sQ{d#^8P)R(-58M?AZdXKnJpUAwhF94X-_D7GS3&;BOay#@dPij&%KF99f%3UM6)o0BMUCI*Ud00000 D!Yyf8 diff --git a/BMA.EHR.Report.Service/Reports/03-คำสั่งแต่งตั้งผู้สอบแข่งขัน.trdp b/BMA.EHR.Report.Service/Reports/03-คำสั่งแต่งตั้งผู้สอบแข่งขัน.trdp index 4843d146484148bf5e238e52181ce57ad5046d43..64bb8ecd980d399072dc0143f22945f483275f7f 100644 GIT binary patch delta 2637 zcmV-T3bOUZ6_6JgP)h>@6aWAK2ml~yBUkAeI7ib7006abkr*<6?Tgz+8vkCn|3Ouu z^gdL!pxXwL2JSu_3B@fOmn>nSOQ790 zoc!PDPq~>#BU>JgZ27hBdSF>JZ_hk4^Lw6|dFB~U^@HPXzRA z$T6BV`M~KSS;F+KPE9^?-S&H#Os8>#T6#xuk%=7ROQm7AG7c2S6=t-omdmJ$D&ra@ zse02ztqy$Rz;)#6hFM1q7jr7zK*r&bTayb)St|}XX+|@DQ8G|EN(v$l(6PI19}gOo zSBkkZArw+pm4cQh5x3A6IG81$2X>o&{arV^xIW+e(f5A!y?^@N6W@F7duP6P>3c7H z@1^hk;`hJty;l&AW1jlnDWsnHef;sv??3jvN8|%j=zkC2-@?abNasnU$TvW(2Q~f> zX2WD3`rdDUzV|Z_Aq4O5>kjS<7Z0g&v(xD!=eBdGTgKNq=@ZgT4ceBy=(^~-?xF|b5V=9eM+OJRqwb!VNFt-M zWg3SViaW@{q;O9ojE#nF(&&$kX46EYg>ms++j41t1qU~zI_BhV*SdM&_j?$X#@9Gn zEw)`*+O|!M%w65=U}$DoD%-ZxL=I(zjP;&vAyUY7?N%5H@DP0839u3b63Fe?rtJje zwoSe9<&Yi?1_Wt2BMvzphrk6pPE2wPvUS@unnOr`&|ttK4NzFn5R0)G@kIhSMtpuKM@Ys% z9ZieFdzdx`3b~Euc5SDn;{x}y z@9k;qLZT!9dQ}0MT{=Ju`RVbASqe1eJAY-MSix&e(v3l+z~xoNrMhHXYD%_{n^|#x z?siR+AduZ~sRErFflh6$wB{%Va{_}Kfx+C;HDqA*n@U06=WKb1IqdDXj<3Iu|82b= z$#J_8vse`bcsByP`L$A@$@}$#lXh&9FA0op1V+nC$7rQknOVc`p?ecFEY1%84EbB=>v#cw@qv>h zbu#4BB$+wxl&oNgnyiZxC%R=App`ORVu9Sb?Ei!V<$7vU() zlX}vej~u((jdk)uFPJPdR!=Pq?oW?dJ zfV`#sZ72r(-FX!&hbl@%H-NlG0DXSEVDef)? zo9)w)oi+)=-Nj+#IovaR1n3^@+wmU$IeW~M#=|rb<^s>_iD$ADJ~GTEcO?wT32TdN z0stmhp?Hf7*4eL;9^I^eDJetm$`U-E!pBoqTca(EIQ&-D0mGF}xv*`cWEvcoNrnEE%3BahB9X4Wim}i?@UhOtn zTi~i|m8K~zoyWI-kU1f9(JTo_(Ju=9p{)xv> zsju>VVqv&{nudkKCwV4a=i@&G!sx4vL=_=`E=J#-Rt1{XD8bwSn=|ABfh!n4GO z^o1Qvx&J8K3!KAV`w}>L4s7&79$o-V%A4f(pGm-f)a&3XQ~X*wyNntB9vmR!1&*`KlxB>uu!x z&9Lx)tht3(wYPMu*=gXoP-b^;_TLEA=CU+^`75-04O&e5~vC^(J{;j54N0=16UHj%2&N zT1O`COWPS$E~^o9ZOz+?i+5)q@&5y&QwSF88nZEhaEsye8YFJ z!h%dZ#U%fAuE?YX$}-A*-F0x!U8}zN+0ON?gRRe`&p*FLxPaIp@6aWAK2ml~yBUgz0^m&y4006cC000w{ vYYEd1AZa64=@~dj(+L0owQrM53N8a6X(N+;3L63&3X_@&B?kQp00000M1T17 delta 2441 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

p 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 delta 2300 zcmZvec{~#g1IK65mM24-Vy?y{Bp#j?N<=iX*={r>v>B4<9RGW z^tQM|p8-Bs+bVOK!ywRa0zLH1fwh~$MY|WFSF|edJQOp9-%G80+p@J9(wl93tLAIM z7tNS$)oR}t-iPNn^b|FGTB+egrcPII*ltZ`*v9LEoVi;R+u`aevUN_I_W-HcF*X04 z;!7if&wLhvs5C6TS&F+@O?D{BjZCzYU?_Pn`}GeMyTARWKvD-@8fZ)m_!Q(+#(Go8 z9)=|z#4m?1=}vaU6bq@sq6?a3$5@QVjmdiD)*t-g6{?`GA9Bp5zmxZ362qN>SbTq9W zUYrn_ncIG?#3f}AqXLo;NEi3IY=P5LaVZr(mPuDdDzBvA7Wlz5+`^M(g~ndU-paX{ z49Iskauy0!hbvez+I4H()hCa}TpsX9hau~mFcDo83Bg!UR{Gv5vA*dELFiU%JlO9aYQWJ~;Op|98!1MQ3KP^qhj+_Rh!;~5(Vs+mr3#W4=c2;er$wNlq zx6cD#%Ag3bN|O?cKz8gFou)8@TDG{V-at)XiH-)%p*O z2VQM@+!L~;d?@xmAs^n@?G({vK+k2u9?`+U6PkdC>Fj#U$s0^Cizh&!sgV5K?csY-% zYgY<^%xx6nI zgj=e$gsdmH6G4jo86%c#B4tdV<~z2ep4cO^erIK$q10ztp`P|FwS&7@2k)d#3j}Q0*&PVav5nokX`te^RssHt$K|hg0hu08}zZNO{ncc zV!qqoK2D5`_*V6msYMLi+PJh4m1uw5GkE=Q7vt60ZLj--u$lWzY~_b|IEs3& z95iL39D~`ERB*>8c)5e%GcdN%1T*H(e8!&GbuK|Q4I?|QKM_8!SxE9U4nYF$bA#VR zj;R^I?ly*OwAGnYlw!(&Ovu4&3)Lahqxfpb4qQ$huY8u7ua$=DM-L#)Z9=<8if52; zy^4Tq=uY;)bj62LrBiO;y9w5Sf&_t;XZcU6kEV0G=Sf+X}e5KuGs7Ns=0p&K#_DVMTIZs5?x52Ys| zPd>woa7RmHUs^SnBxW?u zN-bTri%a-3nU(On8gyh=$dIl}#J}^(_quL%6PQ-TOD-Ok?(5Q(;ni4JxbX1mp1h+M z4&aZ=QSP>M@Z#bFLZ~&zKVuID(Br&{BBn#Hpx*F0|){nXDNlgj_=4}c#rr&yG>zTJ7*t*X???nLmC z><4>HhTX!R-6NY#kv*AC<0jixhQIk~Y1bj9AEm~`0yd}PXMu(P9_4(d^+k16-SFli&G6h+O(8WO21^%A2WDogfABy=D+p@N+y6mmMje0&8>0GI$B{fHEFr3nO+^9{n^}Qc%iBWM4x9973 zLOrXEla8?v^gfLI^M3yrhuHqnrX}zfr(je0vy6pE0ffJaEqekwoUS$~yhDpJ^Fd7+ z<+pMT415i`cLJsN-Tw3Ek#8VdYZ0I};QxIR008nU`#;5y4^TMz_i_1ev0oJWPY2*T Uh~XTd2mu0sfbd^n68ty)4-Gs%lK=n! diff --git a/BMA.EHR.Report.Service/Reports/04-คำสั่งย้ายผู้สอบแข่งขัน.trdp b/BMA.EHR.Report.Service/Reports/04-คำสั่งย้ายผู้สอบแข่งขัน.trdp index 019442411a30e6d0af8540249b15e7eb46d48746..4c4109c0795a6fda44c17f4deb90b79c048136eb 100644 GIT binary patch delta 2689 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 OlaLD~2001<0001{QKB&b diff --git a/BMA.EHR.Report.Service/Reports/05-06-คำสั่งแต่งตั้ง-คำสั่งเลื่อน.trdp b/BMA.EHR.Report.Service/Reports/05-06-คำสั่งแต่งตั้ง-คำสั่งเลื่อน.trdp index a8e037a1c1fcd49752fd153136be75d7e442a45c..3a34e0f5be9b1ce1a89557732387f7693d0c9803 100644 GIT binary patch delta 1829 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 diff --git a/BMA.EHR.Report.Service/Reports/05-06-แนบท้ายคำสั่งแต่งตั้ง-คำสั่งเลื่อน.trdp b/BMA.EHR.Report.Service/Reports/05-06-แนบท้ายคำสั่งแต่งตั้ง-คำสั่งเลื่อน.trdp index b79be7acaa80ca4d72a2e4606071aa5ef366b42b..64bb8ecd980d399072dc0143f22945f483275f7f 100644 GIT binary patch delta 2637 zcmV-T3bOUm8ju$lP)h>@6aWAK2ml~yBUkAeI7ib7006abkr*<6?Tgz+8vkCn|3Ouu z^gdL!pxXwL2JSu_3B@fOmn>nSOQ790 zoc!PDPq~>#BU>JgZ27hBdSF>JZ_hk4^Lw6|dFB~U^@HPXzRA z$T6BV`M~KSS;F+KPE9^?-S&H#Os8>#T6#xuk%=7ROQm7AG7c2S6=t-omdmJ$D&ra@ zse02ztqy$Rz;)#6hFM1q7jr7zK*r&bTayb)St|}XX+|@DQ8G|EN(v$l(6PI19}gOo zSBkkZArw+pm4cQh5x3A6IG81$2X>o&{arV^xIW+e(f5A!y?^@N6W@F7duP6P>3c7H z@1^hk;`hJty;l&AW1jlnDWsnHef;sv??3jvN8|%j=zkC2-@?abNasnU$TvW(2Q~f> zX2WD3`rdDUzV|Z_Aq4O5>kjS<7Z0g&v(xD!=eBdGTgKNq=@ZgT4ceBy=(^~-?xF|b5V=9eM+OJRqwb!VNFt-M zWg3SViaW@{q;O9ojE#nF(&&$kX46EYg>ms++j41t1qU~zI_BhV*SdM&_j?$X#@9Gn zEw)`*+O|!M%w65=U}$DoD%-ZxL=I(zjP;&vAyUY7?N%5H@DP0839u3b63Fe?rtJje zwoSe9<&Yi?1_Wt2BMvzphrk6pPE2wPvUS@unnOr`&|ttK4NzFn5R0)G@kIhSMtpuKM@Ys% z9ZieFdzdx`3b~Euc5SDn;{x}y z@9k;qLZT!9dQ}0MT{=Ju`RVbASqe1eJAY-MSix&e(v3l+z~xoNrMhHXYD%_{n^|#x z?siR+AduZ~sRErFflh6$wB{%Va{_}Kfx+C;HDqA*n@U06=WKb1IqdDXj<3Iu|82b= z$#J_8vse`bcsByP`L$A@$@}$#lXh&9FA0op1V+nC$7rQknOVc`p?ecFEY1%84EbB=>v#cw@qv>h zbu#4BB$+wxl&oNgnyiZxC%R=App`ORVu9Sb?Ei!V<$7vU() zlX}vej~u((jdk)uFPJPdR!=Pq?oW?dJ zfV`#sZ72r(-FX!&hbl@%H-NlG0DXSEVDef)? zo9)w)oi+)=-Nj+#IovaR1n3^@+wmU$IeW~M#=|rb<^s>_iD$ADJ~GTEcO?wT32TdN z0stmhp?Hf7*4eL;9^I^eDJetm$`U-E!pBoqTca(EIQ&-D0mGF}xv*`cWEvcoNrnEE%3BahB9X4Wim}i?@UhOtn zTi~i|m8K~zoyWI-kU1f9(JTo_(Ju=9p{)xv> zsju>VVqv&{nudkKCwV4a=i@&G!sx4vL=_=`E=J#-Rt1{XD8bwSn=|ABfh!n4GO z^o1Qvx&J8K3!KAV`w}>L4s7&79$o-V%A4f(pGm-f)a&3XQ~X*wyNntB9vmR!1&*`KlxB>uu!x z&9Lx)tht3(wYPMu*=gXoP-b^;_TLEA=CU+^`75-04O&e5~vC^(J{;j54N0=16UHj%2&N zT1O`COWPS$E~^o9ZOz+?i+5)q@&5y&QwSF88nZEhaEsye8YFJ z!h%dZ#U%fAuE?YX$}-A*-F0x!U8}zN+0ON?gRRe`&p*FLxPaIp@6aWAK2ml~yBUgz0^m&y4006cC000w{ v_zTkxAZa64=@~dj(+L0owQrNz3@!s8X(N*g4I2U*3X>-dB?kQp000007^L|` delta 3099 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 p{PcO10002C0000J0000000000000000No3dWeX(+zYG8X006t1;Vu9G diff --git a/BMA.EHR.Report.Service/Reports/07-คำสั่งย้าย.trdp b/BMA.EHR.Report.Service/Reports/07-คำสั่งย้าย.trdp index 123c2301a999a5c60f7c70f034e6a471e7d0752f..2543e0985d611ae8dd0e9bba9b1b89014f306ccb 100644 GIT binary patch delta 1888 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 VlR9x50_|;+S8*i<+-?8>006AnvE%>% diff --git a/BMA.EHR.Report.Service/Reports/07-แนบท้ายคำสั่งย้าย.trdp b/BMA.EHR.Report.Service/Reports/07-แนบท้ายคำสั่งย้าย.trdp index aede6a4efb03670097ca961ad6cce08c96c450ba..4df0b1b0417c5fd91f492fdaafa50a1d0a9aaae6 100644 GIT binary patch delta 2667 zcmV-x3Y7Kp7`+!4P)h>@6aWAK2mp6#BUe+&i-`aV008Kb7czfcTW{M&7Jgr#|AET| zirt4&B6V-16t=T&f=wMGa$78lJ}}bMCQ6Z7ifZfz0oL6BP6Kow7B&KZZO4^9H=6E2P1Z_EsnL?99leEWa*(FVQvJZbU$^x3 z$Bxmg$$L&0$r7e-b!zf~>$X44WIBxl)Y3bOi%jGgUn>o}m2sdrt}vrzwOmG3R2kPO zN!42}YIWcf2W}u&H_SR}xR_JvCNlO9+?rfa%35*ANi%<(iIRcRVNwvWhYsCM`*6^p zyi&}S2_Z&VRSH_3MBGMS;b4}0?%8en^_gyVaecn`%=dosy&rts7t>w7PJ z@1^hk*YE$`_ufD}jyd(cV@N$G!T$Fw=XdNoDEnlX4HqXAdQi*LP?1Nz_p|T4B31Vv z``*ceUEP1d?RW7oDz`eFE^_WT`?_U(tCM~pUGq>P6fh_K$5J@=mfdRUR&&RGC}rXj z{)%*ml*P?C@x2RZY;P>7KOdq-*F`sU7d>Rd;s%`^8W0$Rx_e|IiHyXCY3yV8Z6OPj z!o7Ka7%cT|U-IVH>lY4(%>(-v%?_new-{NSs*mh-U(>5_0 zw{^3F;h5p6Y}!r}Ig}MLzB{&sNFmp?TPze{Ao#u;;3EhmklV6N+X={RntJ2wAw3!l z2+{zhNJ9xE0jL2Gv%^I)K1iB$*S>$tYNA72n=Ik3?Y1l$F32RY z-qwlkVreWGA&H3ws)}fXnAE6RP?dbSG^!PfrHNXhwrwD@*-`G8&0V`=5E;CUzCk7@ z4!JlEfeU_|xa0_A>$Yh$hmfGbfJGXhu%Le-9%B*Wiv)0l`20`~k&J*koEC-mFl`JJ za6tyX*>G9>t>AK}+qy?I?g%go0+?47n5D}O%(`ys&XFu_+fGZz1s-HS+|l@jL`eYj zssc2-bbuD})8iAf6llsn{)vNP1+O(pHwKXcmsb^+>XLD(DcM49X2rSPHBEv*e#3vI z3UsaoI<-rsHAgX+6Bt|z4Ca=uAp=X_R0{Gz%$A3k!`}bH;f-tfXX9EZ$DKyRVpR~} zT?_E$FO>pK-mmW+wIh>!Nnms>Fj`(ZMk~e2%o=tF-JhUgagL~l)v^M;Yk^*M`D@g9 zOivh`sZ38=Uf^{-@Ve|B|J-;TYr}un#HwITaJqbp>4IRE|ARce zaG5jkg?tVlKM~Kw{v)Ugf`kQ3;xW`oTqeUMpF-3LWc}Ii9}}KQRm72!HUZP^Kjvjj zob>+2WvrTs^E9jmG8E&07$ooujA&!HjDwThi8-er8615qj^bcZ|10IBmd2~oAUd(9 zp_z|u5k_Y$5UW_<$AA;ZMsRr-N+7=_w^fCjon*e|b2CcY72JbgmNssQ} z2JR5x8D`r$fu#oiIOVl1^s9_5gInMSB3o1vCsh#GH-8gGo6fPTm@UIHLX zyc86YrF4Q+B~K$`s#9Za$g>Dt^f+z~p##J2IlEB*AK!b*%UplD^A90&LgvC*;)Ni; zVwsECd_eXYWG>>UkxJ-5vJxyn3CuzDLYCG-mS%)?!oM4=4Ax|-cnSMy`e!8^vhxDj z0@*VmI{`T>MRxoFIS28gfVhD87>JKs&`fWKib30ScBqn4DXq#3#U_RDUvY8LGuPRd zFh^Z2b5z1Vj?90e^COq6mTHdD(i|QDqhdx_iy2{_t#Ns^TVrj3E3H+UqqKAm<3i?y z%!RWg2*HYNz}fdrYEnfm-!8kLRmcSseAOuPX)F4X& zz$+^jsDugN@>$mHIHN!mm*nuv4RVhtS&mYmA`lEdBAOer~VzcF}8f*LlkEP1?~r1}34At&oCCpmRt za>A~^MM}{UgP3Y&(6-@#)01@zoIwhpKFfM7NL2==)b?AG@g zEDzo=i|s#Q(f*9xHUA~fF|Wl^805JF!e6DzQiueCof|{H`odFQ=ofJOAa3vdIrDeo>F9Q z5e=!IjIN&sJ^Pv+hCYYLLAU;xe31GYstdM2uULj&Oy`me!D#g)+FPWu-Y93#eei@j$<;rh1+6SUAxF?NF}=#}~bLM|%;F?YLR4Ih8$x?R0V9weiTX`wk%8=WKhZm-sniTl!a zMiu!{8?gk51aObxu_67usq;b8~R72og~Emn|=r@6aWAK2mm*`3Rlt7P|mgr006I%7czgH|8LvI6~KQlu>XPJ zfMNp{e%04iZV|gnQ>5t(%S(X$GO*UwA}o84_AH4socN%M`XIeIQUvJs%C0;2Dm9o6i<+!JOT6p+=sIVv^T>7n>pJ_cbL2WZiuxCY=l*P(-6dWUD)6t0<+RNQO+)K_ zWa%wm3htVLMYe6b_j^(7Z?sWY>kBsOAWPp8Hq5SQL9c&sUqwYyR8baW9(R`G8Xw!J z+lNhD_z>Be-f5x@8=oY18|j;E8=q@MfHUy=+6uOzQsCgG{jh_EMO<;qG;Dg%`faYM zS=wgNgcz0)>Ks(8YoB${P`4$aO!_tKr|gwKL7(H2L^jvW z9d6xNsj_*fNn0Et%so+T(^Qcojz0PpAp$ddib%?Lfg3OJm+McekWx$SFG7F4wsRAql%D9QCWT}mSmY)?ixt^=_^FuRvc z3+osfd9s^kM{n`mvT56dd0O;(KnrVL_h?C+BpfTsv^?SX(%aY?38zI*I4w}&v@}sT z=#CObIQB(D!4nLdRID6koe?P}E2|;W(TW>ram+~L1AVwMawq4`U8z*h$X&JIZc(|b z=Z=3}rCQF2om|1Q7txtlTR^y|5Y}>suv$^GLRc>#ycQ6a^S6XGIU|IMQb2euAS~q$ zVNJ<89V_Jm!fOGcnlproAeFLC$4ae$@LE8q31%&wrWvWxeWbSF5 z0l|%du~fi#Env()GA(7dh}9_|nIfvUJD2-`7@X~e51}egY!9}a{hj3E%UvJ^1Mgn=5tJ|`Cp|{ zDdUiqip%t!@SeD2o`yGOF*!coj)+SWJ)1~N&l6A4u$)rlFwB`kCXLFcXi0A(rD=be zUZ#g@8YNZIo)Nw6pQ0trhf2|sX0W8u=M?=+-B5{Zi2;pev4KrY44=3*Y8Ik0BL_Fc zNTM6=p=BV8IhwlI_w>GwuPB;8$I6dQ7hG-LVY?D{v6EBy$TA1L$Qi>m47)=4i=*nO zHETel<2!R^QcItxklYp_m+}n*4l{ znR_J3(_-?ZIA%&rgg6<=nB>rDkqif;Qxf^ub$-DJy3Q-^1_v3{XRh19BgONtVD^85O)QIW znrztu;Wmc~~q-1`M|?`MB#4w=Vb^Y!lKMYE4rb8R?x^LuHA(|a|ub05R=1pi)6mu*$> z%!*%do@a+M^Jbt-?tK{9%W&okWFtc74cXW<$85|pZxxz}i!Cpjk6mCJJva-tGh8~< zGAxBtM+VZpGv?~>yBLvy`o(il!jAx@OhMTrb2D-4cl~AOo*#b$n=?`plyJ1P zG8wn0VEVp=An4D2K=gpdN(q3kp#A{n*kP1(6dWasN4m`hQ#lTzuKP4UdUV7iNS%hD zl^2{P+pnSJDI9;j3oZAd<-ftJ+5z#0aBU2Gk@(Agdxu(jV%L9wV^0E-4@X)Tm2#zm z`%6xHH##4T8u}eL^j}^499R7yxXw#~BQn_aGm}4&_Obg5JQom$V@wKXJ&_dbNeo#j z36gi?F792xLx%SKfqm%@ASA|}{{sg04XE)yUJcRU6Ci&o7~?sHZQSsm@BVuG!}su? zoA2@5Ez|01HhIm)ibk%72l4mGE3qnG#^!+-a-#+2Wr@Gv)@^)fK=tHwr%-(IUGZ## zAcbG#TnfI&Sy6^VpnCOG*>ag6h){(kr*!dnj_ts+-$n-` zkl^8U=mA)d%sX52Rl3)^whT{CsT>ofthX>{+{}9oI(9-K!<uVfe&k>mQ^E{gu4<>&{c!>Tb9B~8Ec(9^mc@i zYDxiH;x&$#lJRtvujrge7A6d9wNk)o^1pTv!A-6Gu3DB@H7Hl;BEx4Yv2$MF#MQ*> z?4p0h^8^k%@^8U;E9#L&&CAXn(eNGl@q=M{#*IMR(8};R-KPE9h12zR9l+|6x(8F4 z=rAquYxQ}hrBW{?(^5@XJ|w7Dy$~1(mX8* zYK2{bl>^pOkrFf!YdzKal{)oO#HIB@#58~WAt-evc?Ej@-2_)kQLotQq?~v~R1#+r z&m=$g*S#@@f&J#sd}~1xs>ybtJdGL>SFLJhE-vLF8540(6Yb=?UkpqePsd-Axt`3w z$MmHKWP*MM^R}Nd>Fk4&yd#2BaoDR$zI_)wX3u|seUGkCU@;N8i-Q*daqE=t{WX6= zY$oW}G{{cw^NhXd*=MEG#ZPEt`fUz%LkxY