diff --git a/BMA.EHR.Application/ApplicationServicesRegistration.cs b/BMA.EHR.Application/ApplicationServicesRegistration.cs index 9080623b..50db27f0 100644 --- a/BMA.EHR.Application/ApplicationServicesRegistration.cs +++ b/BMA.EHR.Application/ApplicationServicesRegistration.cs @@ -32,6 +32,7 @@ namespace BMA.EHR.Application services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); return services; } diff --git a/BMA.EHR.Application/Repositories/MinIOExamService.cs b/BMA.EHR.Application/Repositories/MinIOExamService.cs new file mode 100644 index 00000000..38ff70d8 --- /dev/null +++ b/BMA.EHR.Application/Repositories/MinIOExamService.cs @@ -0,0 +1,366 @@ +using Amazon.S3; +using Amazon.S3.Model; +using BMA.EHR.Domain.Models.Documents; +using BMA.EHR.Domain.Shared; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; +using System.Net.Http.Headers; +using BMA.EHR.Application.Common.Interfaces; +using Amazon; +using BMA.EHR.Domain.Models.Organizations; +using MimeTypes; +using Profile = BMA.EHR.Domain.Models.HR.Profile; + +namespace BMA.EHR.Application.Repositories +{ + public class MinIOExamService + { + #region " Fields " + + private readonly IApplicationDBExamContext _dbContext; + private readonly IConfiguration _configuration; + private readonly AmazonS3Client _s3Client; + private readonly IWebHostEnvironment _hostingEnvironment; + private string _bucketName = string.Empty; + + #endregion + + #region " Constructors " + + public MinIOExamService(IApplicationDBExamContext dbContext, + IConfiguration configuration, + IWebHostEnvironment hostingEnvironment) + { + _dbContext = dbContext; + _configuration = configuration; + _hostingEnvironment = hostingEnvironment; + + var config = new AmazonS3Config + { + ServiceURL = _configuration["MinIO:Endpoint"], + ForcePathStyle = true + }; + + _s3Client = new AmazonS3Client(_configuration["MinIO:AccessKey"], _configuration["MinIO:SecretKey"], config); + this._bucketName = _configuration["MinIO:BucketName"] ?? "bma-recruit"; + } + + #endregion + + #region " Methods " + + public async Task UploadFileAsync(IFormFile file, string newFileName = "") + { + var fileName = ""; + var fileExt = Path.GetExtension(file.FileName); + if (newFileName != "") + fileName = $"{newFileName}"; + else + fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'); + + + var tmpDir = Path.Combine("tmp"); + if (!Directory.Exists(tmpDir)) + Directory.CreateDirectory(tmpDir); + + var tmpFile = Path.Combine(tmpDir, $"tmp_{DateTime.Now.ToString("ddMMyyyyHHmmss")}{fileExt}"); + + try + { + using (var ms = new MemoryStream()) + { + var id = Guid.NewGuid(); + file.CopyTo(ms); + var fileBytes = ms.ToArray(); + System.IO.MemoryStream filestream = new System.IO.MemoryStream(fileBytes); + + var request = new PutObjectRequest + { + BucketName = _bucketName, + Key = id.ToString("D"), + InputStream = filestream, + ContentType = file.ContentType, + CannedACL = S3CannedACL.PublicRead + }; + + await _s3Client.PutObjectAsync(request); + + // create document object + var doc = new Document() + { + FileName = fileName, + FileType = file.ContentType, + FileSize = Convert.ToInt32(file.Length), + ObjectRefId = id, + CreatedDate = DateTime.Now + }; + await _dbContext.Set().AddAsync(doc); + await _dbContext.SaveChangesAsync(); + + return doc; + } + } + catch + { + throw; + } + finally + { + File.Delete(tmpFile); + } + } + + public async Task DownloadFileAsync(Guid fileId) + { + try + { + var doc = await _dbContext.Set().AsQueryable() + .FirstOrDefaultAsync(x => x.Id == fileId); + + if (doc == null) + throw new Exception(GlobalMessages.FileNotFoundOnServer); + + using (var memoryStream = new MemoryStream()) + { + GetObjectRequest request = new GetObjectRequest + { + BucketName = _bucketName, + Key = doc.ObjectRefId.ToString("D") + }; + + using (GetObjectResponse response = await _s3Client.GetObjectAsync(request)) + { + using (Stream responseStream = response.ResponseStream) + { + responseStream.CopyTo(memoryStream); + } + } + + var fileContent = memoryStream.ToArray(); + + return new FileDownloadResponse + { + FileName = doc.FileName, + FileType = doc.FileType, + FileContent = fileContent + }; + }; + } + catch + { + throw; + } + } + + public async Task DeleteFileAsync(Guid fileId) + { + try + { + var doc = await _dbContext.Set().AsQueryable() + .FirstOrDefaultAsync(x => x.Id == fileId); + + if (doc == null) + throw new Exception(GlobalMessages.FileNotFoundOnServer); + else + { + DeleteObjectRequest request = new DeleteObjectRequest + { + BucketName = _bucketName, + Key = doc?.ObjectRefId.ToString("D") + }; + + // delete from minio + await _s3Client.DeleteObjectAsync(request); + + _dbContext.Set().Remove(doc); + await _dbContext.SaveChangesAsync(); + } + } + catch + { + throw; + } + } + + public async Task ImagesPath(Guid? fileId) + { + if (fileId == null) + return ""; + + var doc = await _dbContext.Set().AsQueryable() + .FirstOrDefaultAsync(x => x.Id == fileId); + + if (doc == null) + throw new Exception(GlobalMessages.FileNotFoundOnServer); + var config = new AmazonS3Config + { + ServiceURL = _configuration["MinIO:Endpoint"], + ForcePathStyle = true + }; + + DateTime expires = DateTime.UtcNow.AddHours(6); + var _protocol = _configuration["Protocol"]; + GetPreSignedUrlRequest request = new GetPreSignedUrlRequest + { + BucketName = _bucketName, + Key = doc?.ObjectRefId.ToString("D"), + Expires = expires, + Protocol = _protocol == "HTTPS" ? Protocol.HTTPS : Protocol.HTTP + }; + string path = _s3Client.GetPreSignedURL(request); + + return path; + } + + public async Task ImagesPathByName(string fileName) + { + var config = new AmazonS3Config + { + ServiceURL = _configuration["MinIO:Endpoint"], + ForcePathStyle = true + }; + + DateTime expires = DateTime.UtcNow.AddHours(6); + var _protocol = _configuration["Protocol"]; + GetPreSignedUrlRequest request = new GetPreSignedUrlRequest + { + BucketName = _bucketName, + Key = fileName, + Expires = expires, + Protocol = _protocol == "HTTPS" ? Protocol.HTTPS : Protocol.HTTP + }; + string path = _s3Client.GetPreSignedURL(request); + + return path; + } + + #endregion + + public List GetAllIdByRoot(Guid? id) + { + try + { + var ret = new List(); + if (id == null) + return ret; + + var oc = _dbContext.Set().FirstOrDefault(x => x.Id == id); + if (oc != null) + ret.Add(oc.Id); + + var child = _dbContext.Set().AsQueryable().Where(x => x.Parent != null && x.Parent.Id == id).ToList(); + if (child.Any()) + { + foreach (var item in child) + { + ret.AddRange(GetAllIdByRoot(item.Id)); + } + } + + return ret; + } + catch + { + throw; + } + } + + public async Task CheckBmaOfficer(string CitizenId) + { + var data = await _dbContext.Set().FirstOrDefaultAsync(x => x.CitizenId == CitizenId); + if (data == null) + return null; + if (data.ProfileType.Trim().ToUpper() == "OFFICER") + return "OFFICER"; + if (data.EmployeeClass.Trim().ToUpper() == "PERM") + return "EMPLOYEE_PERM"; + if (data.EmployeeClass.Trim().ToUpper() == "TEMP") + return "EMPLOYEE_TEMP"; + return "EMPLOYEE"; + } + + public async Task UploadFileAsyncTemp(string fileName, string subFolder) + { + try + { + var fileContents = File.ReadAllBytes(fileName); + System.IO.MemoryStream filestream = new System.IO.MemoryStream(fileContents); + //var fileNameWithoutExt = Path.GetFileNameWithoutExtension(fileName); + var fileExt = Path.GetExtension(fileName); + var fileType = MimeTypeMap.GetMimeType(fileExt); + var file_name = Path.GetFileName(fileName); + Console.WriteLine($"{_bucketName}{subFolder}"); + Console.WriteLine(fileName); + Console.WriteLine(file_name); + Console.WriteLine(filestream); + Console.WriteLine(fileType); + + var request = new PutObjectRequest + { + BucketName = $"{_bucketName}", + // BucketName = $"{_bucketName}{subFolder}", + Key = file_name, + InputStream = filestream, + ContentType = fileType, + CannedACL = S3CannedACL.PublicRead + }; + + await _s3Client.PutObjectAsync(request); + } + catch + { + throw; + } + } + + public async Task GenerateJsonFile(string json, string path, string fileName) + { + var tmpDir = Path.Combine("tmp"); + if (!Directory.Exists(tmpDir)) + Directory.CreateDirectory(tmpDir); + + var tmpFile = Path.Combine(tmpDir, $"{fileName}.json"); + + try + { + SaveToJsonFile(tmpFile, json); + await UploadFileAsyncTemp(tmpFile, path); + } + catch + { + throw; + } + finally + { + if (tmpFile != "") + { + if (System.IO.File.Exists(tmpFile)) + System.IO.File.Delete(tmpFile); + } + + } + } + + private void SaveToJsonFile(string fileName, string data) + { + TextWriter writer = null; + try + { + writer = new StreamWriter(fileName); + writer.Write(data); + } + catch + { + throw; + } + finally + { + if (writer != null) + writer.Close(); + } + } + + } +} \ No newline at end of file diff --git a/BMA.EHR.Application/Repositories/Reports/CandidateReportRepository.cs b/BMA.EHR.Application/Repositories/Reports/CandidateReportRepository.cs index 0db4c4ab..027599ce 100644 --- a/BMA.EHR.Application/Repositories/Reports/CandidateReportRepository.cs +++ b/BMA.EHR.Application/Repositories/Reports/CandidateReportRepository.cs @@ -1,4 +1,5 @@ using System.Reflection.Metadata; +using System.Text; using BMA.EHR.Application.Common.Interfaces; using BMA.EHR.Application.Responses; using BMA.EHR.Domain.Extensions; @@ -12,6 +13,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Newtonsoft.Json; +using static BMA.EHR.Domain.Extensions.DateTimeExtension; namespace BMA.EHR.Application.Repositories.Reports { @@ -49,81 +51,125 @@ namespace BMA.EHR.Application.Repositories.Reports #region ใบสมัครสอบ public async Task GetExamCandidateAsync(Guid id) { + var careers = await _dbExamContext.Set() + .AsQueryable() + .Where(x => x.Candidate.Id == id) + .ToListAsync(); + var yearDiff = 0; + var monthDiff = 0; + var dayDiff = 0; + var sb = new StringBuilder(); + var zxc = new List(); + foreach (var career in careers) + { + if (career.DurationEnd < career.DurationStart) + { + var rangeObj = career.DurationEnd.CalculateBetweenDateV2Value(career.DurationStart); + yearDiff = yearDiff + rangeObj.years; + monthDiff = monthDiff + rangeObj.months; + dayDiff = dayDiff + rangeObj.days; + zxc.Add(rangeObj); + } + else + { + var rangeObj = career.DurationStart.CalculateBetweenDateV2Value(career.DurationEnd); + yearDiff = yearDiff + rangeObj.years; + monthDiff = monthDiff + rangeObj.months; + dayDiff = dayDiff + rangeObj.days; + zxc.Add(rangeObj); + } + if (dayDiff >= 30) + { + monthDiff = monthDiff + (int)(dayDiff / 30); + dayDiff = dayDiff % 30; + } + if (monthDiff >= 12) + { + yearDiff = yearDiff + (int)(monthDiff / 12); + monthDiff = monthDiff % 12; + } + sb.Clear(); + sb.Append(yearDiff == 0 ? "" : $"{yearDiff} ปี "); + sb.Append(monthDiff == 0 ? "" : $"{monthDiff} เดือน "); + sb.Append(dayDiff == 0 ? "" : $"{dayDiff} วัน "); + } var data = await _dbExamContext.Set().AsQueryable() .Where(x => x.Id == id) .Select(p => new { p.Id, AvatarId = p.ProfileImg == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileImg.Id, - ExamIdenNumber = p.ExamIdenNumber, - PositionName = p.PositionExam == null ? "" : p.PositionExam.PositionName, - PeriodExamName = p.PeriodExam == null ? "" : p.PeriodExam.Name, - PeriodExamRound = p.PeriodExam == null ? "" : p.PeriodExam.Round.ToString(), - PeriodExamYear = p.PeriodExam == null ? "" : p.PeriodExam.Year.ToString(), + ExamIdenNumber = p.ExamIdenNumber == null ? "-" : p.ExamIdenNumber, + PositionName = p.PositionExam == null ? "-" : p.PositionExam.PositionName, + PositionLevelName = p.PositionExam == null ? "-" : p.PositionExam.PositionLevelName, + PeriodExamName = p.PeriodExam == null ? "-" : p.PeriodExam.Name, + PeriodExamRound = p.PeriodExam == null ? "-" : p.PeriodExam.Round.ToString(), + PeriodExamYear = p.PeriodExam == null ? "-" : (p.PeriodExam.Year + 543).ToString(), FullName = $"{p.PrefixName}{p.FirstName} {p.LastName}", - Religion = p.ReligionName, - Nationality = p.Nationality, - DateOfBirth = p.DateOfBirth == null ? "" : p.DateOfBirth.Value.ToThaiShortDate2(), - Age = p.DateOfBirth == null ? "" : p.DateOfBirth.Value.CalculateAgeStrV2(0, 0), - CitizenId = p.CitizenId, + Religion = p.ReligionName == null ? "-" : p.ReligionName, + Nationality = p.Nationality == null ? "-" : p.Nationality, + DateOfBirth = p.DateOfBirth == null ? "-" : p.DateOfBirth.Value.ToThaiFullDate2(), + Age = p.DateOfBirth == null ? "-" : p.DateOfBirth.Value.CalculateAgeStrV2(0, 0), + CitizenId = p.CitizenId == null ? "-" : p.CitizenId, - EducationLevelExamName = p.Educations.FirstOrDefault() == null ? "" : p.Educations.FirstOrDefault().EducationLevelExamName, - EducationName = p.Educations.FirstOrDefault() == null ? "" : p.Educations.FirstOrDefault().EducationName, - EducationMajor = p.Educations.FirstOrDefault() == null ? "" : p.Educations.FirstOrDefault().EducationMajor, - EducationLocation = p.Educations.FirstOrDefault() == null ? "" : p.Educations.FirstOrDefault().EducationLocation, - EducationEndDate = p.Educations.FirstOrDefault() == null || p.Educations.FirstOrDefault().EducationEndDate == null ? "" : p.Educations.FirstOrDefault().EducationEndDate.Value.ToThaiShortDate2(), - EducationScores = p.Educations.FirstOrDefault() == null ? "" : p.Educations.FirstOrDefault().EducationScores, - EducationType = p.Educations.FirstOrDefault() == null ? "" : p.Educations.FirstOrDefault().EducationType, - EducationLevelHighName = p.Educations.FirstOrDefault() == null ? "" : p.Educations.FirstOrDefault().EducationLevelHighName, + EducationLevelExamName = p.Educations.FirstOrDefault() == null ? "-" : p.Educations.FirstOrDefault().EducationLevelExamName, + EducationName = p.Educations.FirstOrDefault() == null ? null : (p.Educations.FirstOrDefault().EducationLevelExamName == "ปริญญาตรี" || p.Educations.FirstOrDefault().EducationLevelExamName == "ปริญญาโท" || p.Educations.FirstOrDefault().EducationLevelExamName == "ปริญญาเอก" ? null : p.Educations.FirstOrDefault().EducationName), + EducationMajor = p.Educations.FirstOrDefault() == null ? "-" : p.Educations.FirstOrDefault().EducationMajor, + EducationLocation = p.Educations.FirstOrDefault() == null ? "-" : p.Educations.FirstOrDefault().EducationLocation, + EducationEndDate = p.Educations.FirstOrDefault() == null || p.Educations.FirstOrDefault().EducationEndDate == null ? "-" : p.Educations.FirstOrDefault().EducationEndDate.Value.ToThaiFullDate2(), + EducationScores = p.Educations.FirstOrDefault() == null ? "-" : p.Educations.FirstOrDefault().EducationScores, + EducationType = p.Educations.FirstOrDefault() == null ? "-" : p.Educations.FirstOrDefault().EducationType, + EducationLevelHighName = p.Educations.FirstOrDefault() == null ? "-" : p.Educations.FirstOrDefault().EducationLevelHighName, - OccupationPositionType = p.OccupationPositionType == "other" ? "ผู้ปฏิบัติงานอื่นในกรุงเทพมหานคร" : (p.OccupationPositionType == "temp" ? "ลูกจ้างชั่วคราว" : (p.OccupationPositionType == "perm" ? "ลูกจ้างประจำ" : "-")), - OccupationPosition = p.OccupationPosition, - OccupationSalary = p.OccupationSalary, - OccupationGroup = p.OccupationGroup, - OccupationPile = p.OccupationPile, - OccupationOrg = p.OccupationOrg, - OccupationTelephone = p.OccupationTelephone, + OccupationPositionType = p.OccupationPositionType == "other" ? "ผู้ปฏิบัติงานอื่นในกรุงเทพมหานคร" : (p.OccupationPositionType == "temp" ? "ลูกจ้างชั่วคราว" : (p.OccupationPositionType == "prem" ? "ลูกจ้างประจำ" : "-")), + OccupationPosition = p.OccupationPosition == null ? "-" : p.OccupationPosition, + OccupationSalary = p.OccupationSalary == null ? "-" : p.OccupationSalary.ToString(), + OccupationGroup = p.OccupationGroup == null ? "-" : p.OccupationGroup, + OccupationPile = p.OccupationPile == null ? "-" : p.OccupationPile, + OccupationOrg = p.OccupationOrg == null ? "-" : p.OccupationOrg, + OccupationTelephone = p.OccupationTelephone == null ? "-" : p.OccupationTelephone, - Careers = p.Careers.Select(y => new - { - Position = y.Position, - Type = y.Type, - DurationStart = y.DurationStart.ToThaiShortDate2(), - DurationEnd = y.DurationEnd.ToThaiShortDate2(), - RangeDate = y.RangeDate, - }).ToList(), + CareersTotal = sb.ToString(), + // Careers = p.Careers.Select(y => new + // { + // Position = y.Position, + // Type = y.Type, + // DurationStart = y.DurationStart.ToThaiShortDate2(), + // DurationEnd = y.DurationEnd.ToThaiShortDate2(), + // RangeDate = y.RangeDate, + // }).ToList(), - RegistAddress = p.RegistAddress, - RegistProvinceName = p.RegistProvinceName, - RegistDistrictName = p.RegistDistrictName, - RegistSubDistrictName = p.RegistSubDistrictName, - RegistZipCode = p.RegistZipCode, - CurrentAddress = p.CurrentAddress, - CurrentProvinceName = p.CurrentProvinceName, - CurrentSubDistrictName = p.CurrentSubDistrictName, - CurrentDistrictName = p.CurrentDistrictName, - CurrentZipCode = p.CurrentZipCode, - Telephone = p.Telephone, - Email = p.Email, + RegistAddress = p.RegistAddress == null ? "-" : p.RegistAddress, + RegistProvinceName = p.RegistProvinceName == null ? "-" : p.RegistProvinceName, + RegistDistrictName = p.RegistDistrictName == null ? "-" : p.RegistDistrictName, + RegistSubDistrictName = p.RegistSubDistrictName == null ? "-" : p.RegistSubDistrictName, + RegistZipCode = p.RegistZipCode == null ? "-" : p.RegistZipCode, + CurrentAddress = p.CurrentAddress == null ? (p.RegistAddress == null ? "-" : p.RegistAddress) : p.CurrentAddress, + CurrentProvinceName = p.CurrentProvinceName == null ? (p.RegistProvinceName == null ? "-" : p.RegistProvinceName) : p.CurrentProvinceName, + CurrentDistrictName = p.CurrentDistrictName == null ? (p.RegistDistrictName == null ? "-" : p.RegistDistrictName) : p.CurrentDistrictName, + CurrentSubDistrictName = p.CurrentSubDistrictName == null ? (p.RegistSubDistrictName == null ? "-" : p.RegistSubDistrictName) : p.CurrentSubDistrictName, + CurrentZipCode = p.CurrentZipCode == null ? (p.RegistZipCode == null ? "-" : p.RegistZipCode) : p.CurrentZipCode, + Telephone = p.Telephone == null ? "-" : p.Telephone, + Email = p.Email == null ? "-" : p.Email, ContactFullName = $"{p.ContactPrefixName}{p.ContactFirstname} {p.ContactLastname}", - ContactRelations = p.ContactRelations, - ContactTel = p.ContactTel, + ContactRelations = p.ContactRelations == null ? "-" : p.ContactRelations, + ContactTel = p.ContactTel == null ? "-" : p.ContactTel, - RegisterDate = p.RegisterDate == null ? "" : p.RegisterDate.Value.ToThaiFullDate(), + RegisterDate = p.RegisterDate == null ? "-" : p.RegisterDate.Value.ToThaiFullDate(), }) .FirstOrDefaultAsync(); - if (data == null) throw new Exception(GlobalMessages.CandidateNotFound); return data; } public async Task GetExamCareerCandidateAsync(Guid id) { - var data = await _dbExamContext.Set().AsQueryable() + var items = await _dbExamContext.Set().AsQueryable() .Where(x => x.Candidate != null) .Where(x => x.Candidate.Id == id) + .OrderBy(x => x.DurationStart) .Select(p => new { Position = p.Position, @@ -133,6 +179,22 @@ namespace BMA.EHR.Application.Repositories.Reports RangeDate = p.RangeDate, }) .ToListAsync(); + int retVal = 1; + var data = new List(); + foreach (var item in items) + { + var _data = new + { + Position = item.Position, + Type = item.Type, + DurationStart = item.DurationStart, + DurationEnd = item.DurationEnd, + RangeDate = item.RangeDate, + Index = retVal, + }; + data.Add(_data); + retVal++; + } return data; } diff --git a/BMA.EHR.Application/Repositories/Reports/ProbationReportRepository.cs b/BMA.EHR.Application/Repositories/Reports/ProbationReportRepository.cs index c4bfa0c4..930ebad6 100644 --- a/BMA.EHR.Application/Repositories/Reports/ProbationReportRepository.cs +++ b/BMA.EHR.Application/Repositories/Reports/ProbationReportRepository.cs @@ -282,6 +282,11 @@ namespace BMA.EHR.Application.Repositories.Reports ChairmanName = string.IsNullOrEmpty(evaluate_assign.data.chairman.name) ? string.Empty : evaluate_assign.data.chairman.name, ChairmanPosition = string.IsNullOrEmpty(evaluate_assign.data.chairman.Position) ? string.Empty : evaluate_assign.data.chairman.Position, ChairmanDate = string.IsNullOrEmpty(evaluate_assign.data.evaluate.chairman_dated.ToString()) ? "วันที่ เดือน พ.ศ." : evaluate_assign.data.evaluate.chairman_dated.ToThaiFullDate().ToString().ToThaiNumber(), + Name = evaluate_assign.data.experimentee.name, + RoundNo = evaluate_assign.data.assign.round_no.ToString().ToThaiNumber(), + DateStart = string.IsNullOrEmpty(evaluate_assign.data.assign.date_start.ToString()) ? "วันที่ เดือน พ.ศ." : DateTime.Parse(evaluate_assign.data.assign.date_start).ToThaiFullDate().ToString().ToThaiNumber(), + DateFinish = string.IsNullOrEmpty(evaluate_assign.data.assign.date_finish.ToString()) ? "วันที่ เดือน พ.ศ." : DateTime.Parse(evaluate_assign.data.assign.date_finish).ToThaiFullDate().ToString().ToThaiNumber(), + }; } else diff --git a/BMA.EHR.Domain/Extensions/DateTimeExtension.cs b/BMA.EHR.Domain/Extensions/DateTimeExtension.cs index affc8ee8..b9c0a579 100644 --- a/BMA.EHR.Domain/Extensions/DateTimeExtension.cs +++ b/BMA.EHR.Domain/Extensions/DateTimeExtension.cs @@ -4,335 +4,395 @@ using System.Text; namespace BMA.EHR.Domain.Extensions { - public static class DateTimeExtension - { - private static CultureInfo _culture = new CultureInfo("th-TH"); + public static class DateTimeExtension + { + private static CultureInfo _culture = new CultureInfo("th-TH"); - #region " Methods " + #region " Methods " - #region " Public " + #region " Public " - public static double DiffYear(this DateTime currentDate) - { - return (DateTime.Today - currentDate).TotalDays / 365.2425; - } + public static double DiffYear(this DateTime currentDate) + { + return (DateTime.Today - currentDate).TotalDays / 365.2425; + } - public static int ToUnixTimeStamp(this DateTime value) - { - return (int)Math.Truncate((value.ToUniversalTime().Subtract(new DateTime(1970, 1, 1))).TotalSeconds); - } + public static int ToUnixTimeStamp(this DateTime value) + { + return (int)Math.Truncate((value.ToUniversalTime().Subtract(new DateTime(1970, 1, 1))).TotalSeconds); + } - public static string ToThaiFullDate(this DateTime value) - { - var yy = value.Year < 2400 ? value.Year + 543 : value.Year; - return $"วันที่ {value.Day} เดือน {value.ToString("MMMM", _culture.DateTimeFormat)} พ.ศ. {yy}"; - } + public static string ToThaiFullDate(this DateTime value) + { + var yy = value.Year < 2400 ? value.Year + 543 : value.Year; + return $"วันที่ {value.Day} เดือน {value.ToString("MMMM", _culture.DateTimeFormat)} พ.ศ. {yy}"; + } - public static string ToThaiFullDate2(this DateTime value) - { - var yy = value.Year < 2400 ? value.Year + 543 : value.Year; - return $"{value.Day} {value.ToString("MMMM", _culture.DateTimeFormat)} พ.ศ. {yy}"; - } + public static string ToThaiFullDate2(this DateTime value) + { + var yy = value.Year < 2400 ? value.Year + 543 : value.Year; + return $"{value.Day} {value.ToString("MMMM", _culture.DateTimeFormat)} พ.ศ. {yy}"; + } - public static string ToThaiFullDate3(this DateTime value) - { - var yy = value.Year < 2400 ? value.Year + 543 : value.Year; - return $"{value.Day} {value.ToString("MMMM", _culture.DateTimeFormat)} {yy}"; - } + public static string ToThaiFullDate3(this DateTime value) + { + var yy = value.Year < 2400 ? value.Year + 543 : value.Year; + return $"{value.Day} {value.ToString("MMMM", _culture.DateTimeFormat)} {yy}"; + } - public static string ToThaiShortDateTime(this DateTime value) - { - var yy = value.Year < 2400 ? value.Year + 543 : value.Year; - return $"{value.Day} {value.ToString("MMM", _culture.DateTimeFormat)} {yy} {value.ToString("HH:mm:ss")}"; - } + public static string ToThaiShortDateTime(this DateTime value) + { + var yy = value.Year < 2400 ? value.Year + 543 : value.Year; + return $"{value.Day} {value.ToString("MMM", _culture.DateTimeFormat)} {yy} {value.ToString("HH:mm:ss")}"; + } - public static string ToThaiShortDate(this DateTime value) - { - var yy = value.Year < 2400 ? value.Year + 543 : value.Year; - return $"{value.Day} {value.ToString("MMM", _culture.DateTimeFormat)} {yy}"; - } + public static string ToThaiShortDate(this DateTime value) + { + var yy = value.Year < 2400 ? value.Year + 543 : value.Year; + return $"{value.Day} {value.ToString("MMM", _culture.DateTimeFormat)} {yy}"; + } - public static string ToThaiShortDate2(this DateTime value) - { - var yy = value.Year < 2400 ? value.Year + 543 : value.Year; - return $"{value.Day} {value.ToString("MMM", _culture.DateTimeFormat)} {yy.ToString().Right(2)}"; - } + public static string ToThaiShortDate2(this DateTime value) + { + var yy = value.Year < 2400 ? value.Year + 543 : value.Year; + return $"{value.Day} {value.ToString("MMM", _culture.DateTimeFormat)} {yy.ToString().Right(2)}"; + } - public static string ToThaiDate(this DateTime value) - { - var yy = value.Year < 2400 ? value.Year + 543 : value.Year; - return $"{value.Day}/{value.Month}/{yy}"; - } + public static string ToThaiDate(this DateTime value) + { + var yy = value.Year < 2400 ? value.Year + 543 : value.Year; + return $"{value.Day}/{value.Month}/{yy}"; + } - public static string ToCeDate(this DateTime value) - { - var yy = value.Year >= 2400 ? value.Year - 543 : value.Year; - return $"{value.Day}/{value.Month}/{yy}"; - } + public static string ToCeDate(this DateTime value) + { + var yy = value.Year >= 2400 ? value.Year - 543 : value.Year; + return $"{value.Day}/{value.Month}/{yy}"; + } - public static string ToThaiDateFullDigit(this DateTime value) - { - var yy = value.Year < 2400 ? value.Year + 543 : value.Year; - return $"{value.Day.ToString("00")}/{value.Month.ToString("00")}/{yy.ToString("00")}"; - } + public static string ToThaiDateFullDigit(this DateTime value) + { + var yy = value.Year < 2400 ? value.Year + 543 : value.Year; + return $"{value.Day.ToString("00")}/{value.Month.ToString("00")}/{yy.ToString("00")}"; + } - public static string GetDay(this DateTime value) - { - return value.Day.ToString(); - } + public static string GetDay(this DateTime value) + { + return value.Day.ToString(); + } - public static string GetMonth(this DateTime value) - { - return value.ToString("MMMM", _culture.DateTimeFormat); - } + public static string GetMonth(this DateTime value) + { + return value.ToString("MMMM", _culture.DateTimeFormat); + } - public static string GetYear(this DateTime value) - { - return value.Year.ToThaiYear().ToString(); - } + public static string GetYear(this DateTime value) + { + return value.Year.ToThaiYear().ToString(); + } - public static string CalculateAgeStrV2(this DateTime date, int plusYear = 0, int subtractYear = 0) - { - try - { - var currentDate = DateTime.Now; - var age = currentDate - date; + public static string CalculateAgeStrV2(this DateTime date, int plusYear = 0, int subtractYear = 0) + { + try + { + var currentDate = DateTime.Now; + var age = currentDate - date; - if (date > currentDate) - { - throw new ArgumentException("วันเกิดต้องไม่มากกว่าวันที่ปัจจุบัน"); - } + if (date > currentDate) + { + throw new ArgumentException("วันเกิดต้องไม่มากกว่าวันที่ปัจจุบัน"); + } - int years = currentDate.Year - date.Year; - int months = 0; - int days = 0; + int years = currentDate.Year - date.Year; + int months = 0; + int days = 0; - if (currentDate.Month < date.Month || - (currentDate.Month == date.Month && currentDate.Day < date.Day)) - { - years--; - months = 12 - date.Month + currentDate.Month; + if (currentDate.Month < date.Month || + (currentDate.Month == date.Month && currentDate.Day < date.Day)) + { + years--; + months = 12 - date.Month + currentDate.Month; - if (currentDate.Day < date.Day) - { - months--; - int lastMonthDays = DateTime.DaysInMonth(currentDate.Year, currentDate.Month - 1); - days = lastMonthDays - date.Day + currentDate.Day; - } - else - { - days = currentDate.Day - date.Day; - } - } - else - { - months = currentDate.Month - date.Month; + if (currentDate.Day < date.Day) + { + months--; + int lastMonthDays = DateTime.DaysInMonth(currentDate.Year, currentDate.Month - 1); + days = lastMonthDays - date.Day + currentDate.Day; + } + else + { + days = currentDate.Day - date.Day; + } + } + else + { + months = currentDate.Month - date.Month; - if (currentDate.Day < date.Day) - { - months--; - int lastMonthDays = DateTime.DaysInMonth(currentDate.Year, currentDate.Month - 1); - days = lastMonthDays - date.Day + currentDate.Day; - } - else - { - days = currentDate.Day - date.Day; - } - } + if (currentDate.Day < date.Day) + { + months--; + int lastMonthDays = DateTime.DaysInMonth(currentDate.Year, currentDate.Month - 1); + days = lastMonthDays - date.Day + currentDate.Day; + } + else + { + days = currentDate.Day - date.Day; + } + } - //return new Age(years, months, days); + //return new Age(years, months, days); - //// แปลงเป็นอายุในรูปแบบวันที่ - //int years = (int)(age.Days / 365.25) + plusYear - subtractYear; - //int months = (int)((age.Days % 365.25) / 30.436875); - //int days = (int)((age.Days % 365.25) % 30.436875); + //// แปลงเป็นอายุในรูปแบบวันที่ + //int years = (int)(age.Days / 365.25) + plusYear - subtractYear; + //int months = (int)((age.Days % 365.25) / 30.436875); + //int days = (int)((age.Days % 365.25) % 30.436875); - return $"{years} ปี {months} เดือน {days} วัน"; - } - catch - { - throw; - } - } + return $"{years} ปี {months} เดือน {days} วัน"; + } + catch + { + throw; + } + } - public static int CalculateAge(this DateTime date, int plusYear = 0, int subtractYear = 0) - { - try - { - var currentDate = DateTime.Now; - var age = currentDate - date; + public static int CalculateAge(this DateTime date, int plusYear = 0, int subtractYear = 0) + { + try + { + var currentDate = DateTime.Now; + var age = currentDate - date; - // แปลงเป็นอายุในรูปแบบวันที่ - int years = (int)(age.Days / 365.25) + plusYear - subtractYear; + // แปลงเป็นอายุในรูปแบบวันที่ + int years = (int)(age.Days / 365.25) + plusYear - subtractYear; - return years; - } - catch - { - throw; - } - } + return years; + } + catch + { + throw; + } + } - public static int CalculateGovAge(this DateTime appointDate, int plusYear = 0, int subtractYear = 0) - { - if (DateTime.Now.Month - appointDate.Month >= 6) - return (DateTime.Now.Year - appointDate.Year) + 1 + plusYear - subtractYear; - else - return (DateTime.Now.Year - appointDate.Year) + plusYear - subtractYear; - } + public static int CalculateGovAge(this DateTime appointDate, int plusYear = 0, int subtractYear = 0) + { + if (DateTime.Now.Month - appointDate.Month >= 6) + return (DateTime.Now.Year - appointDate.Year) + 1 + plusYear - subtractYear; + else + return (DateTime.Now.Year - appointDate.Year) + plusYear - subtractYear; + } - public static string CalculateGovAgeStr(this DateTime appointDate, int plusYear = 0, int subtractYear = 0) - { - var d2 = DateTime.Now; - TimeSpan sp = d2.Subtract(appointDate); - var alldays = sp.Days + ((plusYear - subtractYear) * 365); + public static string CalculateGovAgeStr(this DateTime appointDate, int plusYear = 0, int subtractYear = 0) + { + var d2 = DateTime.Now; + TimeSpan sp = d2.Subtract(appointDate); + var alldays = sp.Days + ((plusYear - subtractYear) * 365); - int yy = alldays / 365; - int mm = (alldays - (yy * 365)) / 30; - int dd = (alldays - (yy * 365) - (mm * 30)); + int yy = alldays / 365; + int mm = (alldays - (yy * 365)) / 30; + int dd = (alldays - (yy * 365) - (mm * 30)); - var sb = new StringBuilder(); - sb.Clear(); - sb.Append(yy == 0 ? "" : $"{yy} ปี "); - sb.Append(mm == 0 ? "" : $"{mm} เดือน "); - sb.Append(dd == 0 ? "" : $"{dd} วัน "); + var sb = new StringBuilder(); + sb.Clear(); + sb.Append(yy == 0 ? "" : $"{yy} ปี "); + sb.Append(mm == 0 ? "" : $"{mm} เดือน "); + sb.Append(dd == 0 ? "" : $"{dd} วัน "); - return sb.ToString(); - } + return sb.ToString(); + } - public static string CalculateGovAgeInYear(this DateTime appointDate, int plusYear = 0, int subtractYear = 0) - { - var d2 = DateTime.Now; - TimeSpan sp = d2.Subtract(appointDate); - var alldays = sp.Days + ((plusYear - subtractYear) * 365); + public static string CalculateGovAgeInYear(this DateTime appointDate, int plusYear = 0, int subtractYear = 0) + { + var d2 = DateTime.Now; + TimeSpan sp = d2.Subtract(appointDate); + var alldays = sp.Days + ((plusYear - subtractYear) * 365); - int yy = alldays / 365; + int yy = alldays / 365; - return yy.ToString(); - } + return yy.ToString(); + } - public static int GetDifferenceInYears(this DateTime startDate, DateTime endDate) - { - int finalResult = 0; + public static int GetDifferenceInYears(this DateTime startDate, DateTime endDate) + { + int finalResult = 0; - const int daysInYear = 365; + const int daysInYear = 365; - //DateTime endDate = DateTime.Now; + //DateTime endDate = DateTime.Now; - TimeSpan timeSpan = endDate - startDate; + TimeSpan timeSpan = endDate - startDate; - if (timeSpan.TotalDays > 365) - { - finalResult = (int)Math.Round((timeSpan.TotalDays / daysInYear), MidpointRounding.ToEven); - } + if (timeSpan.TotalDays > 365) + { + finalResult = (int)Math.Round((timeSpan.TotalDays / daysInYear), MidpointRounding.ToEven); + } - return finalResult; - } + return finalResult; + } - public static DateTime CalculateRetireDate(this DateTime birthDate) - { - var dd = birthDate.Day; - var mm = birthDate.Month; - var yy = birthDate.Year; + public static DateTime CalculateRetireDate(this DateTime birthDate) + { + var dd = birthDate.Day; + var mm = birthDate.Month; + var yy = birthDate.Year; - var g1 = true; - switch (mm) - { - case 10: if (dd >= 2) g1 = false; break; - case 11: - case 12: g1 = false; break; - } + var g1 = true; + switch (mm) + { + case 10: if (dd >= 2) g1 = false; break; + case 11: + case 12: g1 = false; break; + } - if (g1) - return new DateTime(yy + 60, 9, 30); - else - return new DateTime(yy + 61, 9, 30); - } + if (g1) + return new DateTime(yy + 60, 9, 30); + else + return new DateTime(yy + 61, 9, 30); + } - public static bool IsBetween(this DateTime now, TimeSpan start, TimeSpan end) - { - var time = now.TimeOfDay; - // Scenario 1: If the start time and the end time are in the same day. - if (start <= end) - return time >= start && time <= end; - // Scenario 2: The start time and end time is on different days. - return time >= start || time <= end; - } + public static bool IsBetween(this DateTime now, TimeSpan start, TimeSpan end) + { + var time = now.TimeOfDay; + // Scenario 1: If the start time and the end time are in the same day. + if (start <= end) + return time >= start && time <= end; + // Scenario 2: The start time and end time is on different days. + return time >= start || time <= end; + } - public static string CalculateBetweenDate(this DateTime startDate, DateTime endDate) - { - // var d2 = DateTime.Now; - TimeSpan sp = endDate.Subtract(startDate); - var alldays = sp.Days; + public static string CalculateBetweenDate(this DateTime startDate, DateTime endDate) + { + // var d2 = DateTime.Now; + TimeSpan sp = endDate.Subtract(startDate); + var alldays = sp.Days; - int yy = alldays / 365; - int mm = (alldays - (yy * 365)) / 30; - int dd = (alldays - (yy * 365) - (mm * 30)); + int yy = alldays / 365; + int mm = (alldays - (yy * 365)) / 30; + int dd = (alldays - (yy * 365) - (mm * 30)); - var sb = new StringBuilder(); - sb.Clear(); - sb.Append(yy == 0 ? "" : $"{yy} ปี "); - sb.Append(mm == 0 ? "" : $"{mm} เดือน "); - sb.Append(dd == 0 ? "" : $"{dd} วัน "); + var sb = new StringBuilder(); + sb.Clear(); + sb.Append(yy == 0 ? "" : $"{yy} ปี "); + sb.Append(mm == 0 ? "" : $"{mm} เดือน "); + sb.Append(dd == 0 ? "" : $"{dd} วัน "); - return sb.ToString(); - } + return sb.ToString(); + } - public static string CalculateBetweenDateV2(this DateTime startDate, DateTime endDate) - { - if (startDate == null || endDate == null) - return "-"; + public static string CalculateBetweenDateV2(this DateTime startDate, DateTime endDate) + { + if (startDate == null || endDate == null) + return "-"; - DateTime today = endDate; - DateTime birthDate = Convert.ToDateTime(startDate).AddDays(-1); - int years = new DateTime(endDate.Subtract(birthDate).Ticks).Year - 1; - DateTime pastYearDate = birthDate.AddYears(years); - int months = 0; - for (int i = 1; i <= 12; i++) - { - if (pastYearDate.AddMonths(i) == today) - { - months = i; - break; - } - else if (pastYearDate.AddMonths(i) >= today) - { - months = i - 1; - break; - } - } - int days = today.Subtract(pastYearDate.AddMonths(months)).Days; - if (today.Day < pastYearDate.Day) - { - if (System.DateTime.DaysInMonth(pastYearDate.Year, pastYearDate.Month) > System.DateTime.DaysInMonth(pastYearDate.AddMonths(months).Year, pastYearDate.AddMonths(months).Month)) - { - days += 1; - } - if (System.DateTime.DaysInMonth(pastYearDate.Year, pastYearDate.Month) < System.DateTime.DaysInMonth(pastYearDate.AddMonths(months).Year, pastYearDate.AddMonths(months).Month)) - { - days -= 1; - } - } - // int Hours = Today.Subtract(PastYearDate).Hours; - // int Minutes = Today.Subtract(PastYearDate).Minutes; - // int Seconds = Today.Subtract(PastYearDate).Seconds; - Console.WriteLine(today); - Console.WriteLine(pastYearDate); - Console.WriteLine(months); - Console.WriteLine(pastYearDate.AddMonths(months)); - var sb = new StringBuilder(); - sb.Clear(); - sb.Append(years == 0 ? "" : $"{years} ปี "); - sb.Append(months == 0 ? "" : $"{months} เดือน "); - sb.Append(days == 0 ? "" : $"{days} วัน "); - return sb.ToString(); - } + DateTime today = endDate; + DateTime birthDate = Convert.ToDateTime(startDate).AddDays(-1); + int years = new DateTime(endDate.Subtract(birthDate).Ticks).Year - 1; + DateTime pastYearDate = birthDate.AddYears(years); + int months = 0; + for (int i = 1; i <= 12; i++) + { + if (pastYearDate.AddMonths(i) == today) + { + months = i; + break; + } + else if (pastYearDate.AddMonths(i) >= today) + { + months = i - 1; + break; + } + } + int days = today.Subtract(pastYearDate.AddMonths(months)).Days; + if (today.Day < pastYearDate.Day) + { + if (System.DateTime.DaysInMonth(pastYearDate.Year, pastYearDate.Month) > System.DateTime.DaysInMonth(pastYearDate.AddMonths(months).Year, pastYearDate.AddMonths(months).Month)) + { + days += 1; + } + if (System.DateTime.DaysInMonth(pastYearDate.Year, pastYearDate.Month) < System.DateTime.DaysInMonth(pastYearDate.AddMonths(months).Year, pastYearDate.AddMonths(months).Month)) + { + days -= 1; + } + } + // int Hours = Today.Subtract(PastYearDate).Hours; + // int Minutes = Today.Subtract(PastYearDate).Minutes; + // int Seconds = Today.Subtract(PastYearDate).Seconds; + Console.WriteLine(today); + Console.WriteLine(pastYearDate); + Console.WriteLine(months); + Console.WriteLine(pastYearDate.AddMonths(months)); + var sb = new StringBuilder(); + sb.Clear(); + sb.Append(years == 0 ? "" : $"{years} ปี "); + sb.Append(months == 0 ? "" : $"{months} เดือน "); + sb.Append(days == 0 ? "" : $"{days} วัน "); + return sb.ToString(); + } + public static CalculateBetweenDateV2ValueObj CalculateBetweenDateV2Value(this DateTime startDate, DateTime endDate) + { + // if (startDate == null || endDate == null) + // return null; + DateTime today = endDate.AddDays(1); + DateTime birthDate = startDate; + int years = new DateTime(endDate.Subtract(birthDate).Ticks).Year - 1; + DateTime pastYearDate = birthDate.AddYears(years); + int months = 0; + for (int i = 1; i <= 12; i++) + { + if (pastYearDate.AddMonths(i) == today) + { + months = i; + break; + } + else if (pastYearDate.AddMonths(i) >= today) + { + months = i - 1; + break; + } + } + int days = today.Subtract(pastYearDate.AddMonths(months)).Days; + if (today.Day < pastYearDate.Day) + { + if (System.DateTime.DaysInMonth(pastYearDate.Year, pastYearDate.Month) > System.DateTime.DaysInMonth(pastYearDate.AddMonths(months).Year, pastYearDate.AddMonths(months).Month)) + { + days += 1; + } + if (System.DateTime.DaysInMonth(pastYearDate.Year, pastYearDate.Month) < System.DateTime.DaysInMonth(pastYearDate.AddMonths(months).Year, pastYearDate.AddMonths(months).Month)) + { + days -= 1; + } + } + if (days >= 30) + { + months = months + 1; + days = 0; + if (months >= 12) + { + years = years + 1; + months = 0; + } + } - #endregion + var sb = new StringBuilder(); + sb.Clear(); + sb.Append(years == 0 ? "" : $"{years} ปี "); + sb.Append(months == 0 ? "" : $"{months} เดือน "); + sb.Append(days == 0 ? "" : $"{days} วัน "); + return new CalculateBetweenDateV2ValueObj { years = years, months = months, days = days }; + } + public class CalculateBetweenDateV2ValueObj + { + public int years { get; set; } - #endregion - } + public int months { get; set; } + + public int days { get; set; } + } + + #endregion + + #endregion + } } \ No newline at end of file diff --git a/BMA.EHR.Report.Service/Controllers/CandidateReportController.cs b/BMA.EHR.Report.Service/Controllers/CandidateReportController.cs index a81ad505..b825ee69 100644 --- a/BMA.EHR.Report.Service/Controllers/CandidateReportController.cs +++ b/BMA.EHR.Report.Service/Controllers/CandidateReportController.cs @@ -22,15 +22,15 @@ namespace BMA.EHR.Report.Service.Controllers private readonly CandidateReportRepository _service; private readonly IWebHostEnvironment _hostingEnvironment; private readonly IConfiguration _configuration; - private readonly MinIOService _minIOService; + private readonly MinIOExamService _minIOExamService; public CandidateReportController(CandidateReportRepository service, IWebHostEnvironment hostingEnvironment, - MinIOService minIOService, IConfiguration configuration) + MinIOExamService minIOExamService, IConfiguration configuration) { _service = service; _hostingEnvironment = hostingEnvironment; _configuration = configuration; - _minIOService = minIOService; + _minIOExamService = minIOExamService; } #region ใบสมัคร @@ -44,6 +44,7 @@ namespace BMA.EHR.Report.Service.Controllers /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("{exportType}/{Id}")] + [AllowAnonymous] public async Task> GetExamCandidate([FromRoute] Guid Id, string exportType = "pdf") { var candidate = await _service.GetExamCandidateAsync(Id); @@ -71,14 +72,15 @@ namespace BMA.EHR.Report.Service.Controllers var tblData = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["tblData"]; tblData.DataSource = careers; + Console.WriteLine("000000"); if (avatar != Guid.Parse("00000000-0000-0000-0000-000000000000")) { try { // Get avatar Image - var picContent = (await _minIOService.DownloadFileAsync(avatar)).FileContent; + var picContent = await _minIOExamService.DownloadFileAsync(avatar); var pictureBox = (Telerik.Reporting.PictureBox)report.Items["detailSection1"].Items["picAvatar"]; - pictureBox.Value = Image.FromStream(new MemoryStream(picContent)); + pictureBox.Value = Image.FromStream(new MemoryStream(picContent.FileContent)); } catch { } } diff --git a/BMA.EHR.Report.Service/Controllers/ProbationReportController.cs b/BMA.EHR.Report.Service/Controllers/ProbationReportController.cs index f755da97..5dc32077 100644 --- a/BMA.EHR.Report.Service/Controllers/ProbationReportController.cs +++ b/BMA.EHR.Report.Service/Controllers/ProbationReportController.cs @@ -228,7 +228,7 @@ namespace BMA.EHR.Report.Service.Controllers } #endregion - #region 14-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้ดูแล และ ผู้บังคับบัญชา + #region 14,15-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้ดูแล และ ผู้บังคับบัญชา /// /// 14-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้ดูแล และ ผู้บังคับบัญชา /// @@ -500,166 +500,6 @@ namespace BMA.EHR.Report.Service.Controllers } #endregion - #region 15-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา (ยกเลิกใช้งาน) - ///// - ///// 15-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา - ///// - ///// id - ///// pdf, docx หรือ xlsx - ///// - ///// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ - ///// ไม่ได้ Login เข้าระบบ - ///// เมื่อเกิดข้อผิดพลาดในการทำงาน - //[HttpGet("15/{exportType}/{id}")] - //public async Task> GetProbation15ConvertReportAsync(Guid id, string exportType = "pdf") - //{ - // try - // { - // string authorizationHeader = Request.Headers["Authorization"]; - // string token = string.Empty; - - // if (!string.IsNullOrEmpty(authorizationHeader) && authorizationHeader.StartsWith("Bearer ")) - // { - // token = authorizationHeader.Substring("Bearer ".Length).Trim(); - // var evaluateRecord = await _repository.GetEvaluateRecordAsync(id, token); - - // if (evaluateRecord != null) - // { - // var mimeType = ""; - // switch (exportType.Trim().ToLower()) - // { - // case "pdf": mimeType = "application/pdf"; break; - // 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", $"15-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา-1.trdp"); - // var rptFile2 = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"15-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา-2.trdp"); - - // ReportPackager reportPacker = new ReportPackager(); - // Telerik.Reporting.Report? report = null; - // Telerik.Reporting.Report? report2 = null; - - // using (var sourceStream = System.IO.File.OpenRead(rptFile)) - // using (var sourceStream2 = System.IO.File.OpenRead(rptFile2)) - // { - // report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); - // report2 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream2); - // } - - // report.ReportParameters["Name"].Value = evaluateRecord.GetType().GetProperty("Name").GetValue(evaluateRecord); - // report.ReportParameters["Position"].Value = evaluateRecord.GetType().GetProperty("Position").GetValue(evaluateRecord); - // report.ReportParameters["ExperimenteeName"].Value = evaluateRecord.GetType().GetProperty("ExperimenteeName").GetValue(evaluateRecord); - // report.ReportParameters["ExperimenteePosition"].Value = evaluateRecord.GetType().GetProperty("ExperimenteePosition").GetValue(evaluateRecord); - // report.ReportParameters["Department"].Value = evaluateRecord.GetType().GetProperty("Department").GetValue(evaluateRecord); - // report.ReportParameters["OrganizationOrganization"].Value = evaluateRecord.GetType().GetProperty("OrganizationOrganization").GetValue(evaluateRecord); - // report.ReportParameters["Oc"].Value = evaluateRecord.GetType().GetProperty("Oc").GetValue(evaluateRecord); - // report.ReportParameters["DateStart"].Value = evaluateRecord.GetType().GetProperty("DateStart").GetValue(evaluateRecord); - // report.ReportParameters["DateFinish"].Value = evaluateRecord.GetType().GetProperty("DateFinish").GetValue(evaluateRecord); - // report.ReportParameters["AchievementStrengthDesc1"].Value = evaluateRecord.GetType().GetProperty("AchievementStrengthDesc1").GetValue(evaluateRecord); - // report.ReportParameters["AchievementStrengthDesc2"].Value = evaluateRecord.GetType().GetProperty("AchievementStrengthDesc2").GetValue(evaluateRecord); - // report.ReportParameters["AchievementStrengthDesc3"].Value = evaluateRecord.GetType().GetProperty("AchievementStrengthDesc3").GetValue(evaluateRecord); - // report.ReportParameters["AchievementImproveDesc1"].Value = evaluateRecord.GetType().GetProperty("AchievementImproveDesc1").GetValue(evaluateRecord); - // report.ReportParameters["AchievementImproveDesc2"].Value = evaluateRecord.GetType().GetProperty("AchievementImproveDesc2").GetValue(evaluateRecord); - // report.ReportParameters["AchievementImproveDesc3"].Value = evaluateRecord.GetType().GetProperty("AchievementImproveDesc3").GetValue(evaluateRecord); - // report2.ReportParameters["BehaviorStrengthDesc1"].Value = evaluateRecord.GetType().GetProperty("BehaviorStrengthDesc1").GetValue(evaluateRecord); - // report2.ReportParameters["BehaviorStrengthDesc2"].Value = evaluateRecord.GetType().GetProperty("BehaviorStrengthDesc2").GetValue(evaluateRecord); - // report2.ReportParameters["BehaviorStrengthDesc3"].Value = evaluateRecord.GetType().GetProperty("BehaviorStrengthDesc3").GetValue(evaluateRecord); - // report2.ReportParameters["BehaviorImproveDesc1"].Value = evaluateRecord.GetType().GetProperty("BehaviorImproveDesc1").GetValue(evaluateRecord); - // report2.ReportParameters["BehaviorImproveDesc2"].Value = evaluateRecord.GetType().GetProperty("BehaviorImproveDesc2").GetValue(evaluateRecord); - // report2.ReportParameters["BehaviorImproveDesc3"].Value = evaluateRecord.GetType().GetProperty("BehaviorImproveDesc3").GetValue(evaluateRecord); - // report2.ReportParameters["Name"].Value = evaluateRecord.GetType().GetProperty("Name").GetValue(evaluateRecord); - // report2.ReportParameters["Position"].Value = evaluateRecord.GetType().GetProperty("Position").GetValue(evaluateRecord); - // report2.ReportParameters["MentorDate"].Value = evaluateRecord.GetType().GetProperty("MentorDate").GetValue(evaluateRecord); - - // var _evaluateslist = new List(); - // dynamic evaluates = evaluateRecord.GetType().GetProperty("Evaluates").GetValue(evaluateRecord); - // foreach (var evaluate in evaluates) - // { - // string Evaluate_expect_desc = string.Empty; - // string Evaluate_output_desc = string.Empty; - // int Evaluate_expect_level = 0; - // int Evaluate_output_level = 0; - // string Check_expect1 = string.Empty; - // string Check_expect2 = string.Empty; - // string Check_expect3 = string.Empty; - // string Check_expect4 = string.Empty; - // string Check_expect5 = string.Empty; - // string Check_output1 = string.Empty; - // string Check_output2 = string.Empty; - // string Check_output3 = string.Empty; - // string Check_output4 = string.Empty; - // string Check_output5 = string.Empty; - // var achievements = evaluate.achievements; - // foreach (var achievement in achievements) - // { - // Evaluate_expect_desc = achievement.evaluate_expect_desc; - // Evaluate_output_desc = achievement.evaluate_output_desc; - // Evaluate_expect_level = achievement.evaluate_expect_level; - // Evaluate_output_level = achievement.evaluate_output_level; - // } - // _evaluateslist.Add(new - // { - // No = evaluate.no, - // Date_start = evaluate.date_start, - // Date_finish = evaluate.date_finish, - // Evaluate_expect_desc = $" - {Evaluate_expect_desc}", - // Evaluate_output_desc = $" - {Evaluate_output_desc}", - // Check_expect1 = Evaluate_expect_level == 1 ? "/" : string.Empty, - // Check_expect2 = Evaluate_expect_level == 2 ? "/" : string.Empty, - // Check_expect3 = Evaluate_expect_level == 3 ? "/" : string.Empty, - // Check_expect4 = Evaluate_expect_level == 4 ? "/" : string.Empty, - // Check_expect5 = Evaluate_expect_level == 5 ? "/" : string.Empty, - // Check_output1 = Evaluate_output_level == 1 ? "/" : string.Empty, - // Check_output2 = Evaluate_output_level == 2 ? "/" : string.Empty, - // Check_output3 = Evaluate_output_level == 3 ? "/" : string.Empty, - // Check_output4 = Evaluate_output_level == 4 ? "/" : string.Empty, - // Check_output5 = Evaluate_output_level == 5 ? "/" : string.Empty, - // ApplyLevel = evaluate.apply_level, - // AchievementStrengthDesc = evaluate.achievement_strength_desc, - // AchievementImproveDesc = evaluate.achievement_improve_desc, - - // }); - // } - - // var tblEvaluate_1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table2"]; - // tblEvaluate_1.DataSource = _evaluateslist; - - // var tblEvaluate_2 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; - // tblEvaluate_2.DataSource = _evaluateslist; - - // var reportBook = new ReportBook(); - // reportBook.Reports.Add(report); - // reportBook.Reports.Add(report2); - - // System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); - // InstanceReportSource instanceReportSource = new InstanceReportSource() - // { - // ReportDocument = reportBook, - // }; - - // ReportProcessor reportProcessor = new ReportProcessor(_configuration); - // RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); - // var content = result.DocumentBytes; - // return File(content, mimeType, $"แบบบันทึกผล(สำหรับผู้บังคับบัญชา).{exportType.Trim().ToLower()}"); - // } - // else - // { - // return NotFound(); - // } - // } - // else - // { - // return Unauthorized(); - // } - // } - // catch - // { - // throw; - // } - //} - #endregion - #region 16-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา /// /// 16-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา @@ -1123,89 +963,7 @@ namespace BMA.EHR.Report.Service.Controllers } #endregion - #region 18-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน (ยกเลิกใช้งาน) - ///// - ///// 18-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน - ///// - ///// assign_id - ///// pdf, docx หรือ xlsx - ///// - ///// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ - ///// ไม่ได้ Login เข้าระบบ - ///// เมื่อเกิดข้อผิดพลาดในการทำงาน - //[HttpGet("18/{exportType}/{id}")] - //public async Task> GetProbation18ConvertReportAsync(string id="9e8ec043-9f18-4f9a-bcde-3d11c909df19", string exportType = "pdf") - //{ - // try - // { - // Guid Id = Guid.Parse(id); - // string authorizationHeader = Request.Headers["Authorization"]; - // string token = string.Empty; - - // if (!string.IsNullOrEmpty(authorizationHeader) && authorizationHeader.StartsWith("Bearer ")) - // { - // token = authorizationHeader.Substring("Bearer ".Length).Trim(); - // var evaluateAssign = await _repository.GetEvaluateResultAssignAsync(Id, token); - - // if (evaluateAssign != null) - // { - // var mimeType = ""; - // switch (exportType.Trim().ToLower()) - // { - // case "pdf": mimeType = "application/pdf"; break; - // 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", $"18-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน-1.trdp"); - - // ReportPackager reportPacker = new ReportPackager(); - // Telerik.Reporting.Report? report = null; - // //Telerik.Reporting.Report? report2 = null; - - - // using (var sourceStream = System.IO.File.OpenRead(rptFile)) - // //using (var sourceStream2 = System.IO.File.OpenRead(rptFile2)) - // { - // report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); - // //report2 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream2); - // } - - // report.ReportParameters["Name"].Value = evaluateAssign.GetType().GetProperty("Name").GetValue(evaluateAssign); - - // var reportBook = new ReportBook(); - // reportBook.Reports.Add(report); - // //reportBook.Reports.Add(report2); - - // System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); - // InstanceReportSource instanceReportSource = new InstanceReportSource() - // { - // ReportDocument = reportBook, - // }; - - // ReportProcessor reportProcessor = new ReportProcessor(_configuration); - // RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); - // var content = result.DocumentBytes; - // return File(content, mimeType, $"แบบรายงานการประเมินผล(สำหรับประธาน).{exportType.Trim().ToLower()}"); - // } - // else - // { - // return NotFound(); - // } - // } - // else - // { - // return Unauthorized(); - // } - // } - // catch - // { - // throw; - // } - //} - #endregion - - #region 19-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน และ กรณีขยายเวลา + #region 18,19-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน และ กรณีขยายเวลา /// /// 19-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน และ กรณีขยายเวลา /// @@ -1237,29 +995,45 @@ 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", $"19-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ กรณีขยายเวลา.trdp"); + var rptFile1 = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"18-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน-1.trdp"); + var rptFile2 = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"19-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ กรณีขยายเวลา.trdp"); ReportPackager reportPacker = new ReportPackager(); - Telerik.Reporting.Report? report = null; - using (var sourceStream = System.IO.File.OpenRead(rptFile)) + Telerik.Reporting.Report? report1 = null; + Telerik.Reporting.Report? report2 = null; + using (var sourceStream1 = System.IO.File.OpenRead(rptFile1)) + using (var sourceStream2 = System.IO.File.OpenRead(rptFile2)) { - report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); + report1 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream1); + report2 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream2); } - - report.ReportParameters["EvaluateDateStart"].Value = evaluateAssign.GetType().GetProperty("EvaluateDateStart").GetValue(evaluateAssign); - report.ReportParameters["EvaluateDateFinish"].Value = evaluateAssign.GetType().GetProperty("EvaluateDateFinish").GetValue(evaluateAssign); - report.ReportParameters["Reson"].Value = evaluateAssign.GetType().GetProperty("Reson").GetValue(evaluateAssign); - report.ReportParameters["DevelopComplete"].Value = evaluateAssign.GetType().GetProperty("DevelopComplete").GetValue(evaluateAssign); - report.ReportParameters["PassResult"].Value = evaluateAssign.GetType().GetProperty("PassResult").GetValue(evaluateAssign); - report.ReportParameters["ExpandMonth"].Value = evaluateAssign.GetType().GetProperty("ExpandMonth").GetValue(evaluateAssign); - report.ReportParameters["ChairmanName"].Value = evaluateAssign.GetType().GetProperty("ChairmanName").GetValue(evaluateAssign); - report.ReportParameters["ChairmanPosition"].Value = evaluateAssign.GetType().GetProperty("ChairmanPosition").GetValue(evaluateAssign); - report.ReportParameters["ChairmanDate"].Value = evaluateAssign.GetType().GetProperty("ChairmanDate").GetValue(evaluateAssign); + //สำหรับประธาน + if((evaluateAssign.GetType().GetProperty("ExpandMonth").GetValue(evaluateAssign)).ToString() == "๐") + { + report1.DataSource = evaluateAssign; + System.Collections.Hashtable deviceInfo_ = new System.Collections.Hashtable(); + InstanceReportSource instanceReportSource_ = new InstanceReportSource() + { + ReportDocument = report1, + }; + ReportProcessor reportProcessor_ = new ReportProcessor(_configuration); + RenderingResult result_ = reportProcessor_.RenderReport($"{exportType}", instanceReportSource_, deviceInfo_); + return File(result_.DocumentBytes, mimeType, $"แบบรายงานการประเมินผล.{exportType.Trim().ToLower()}"); + } + //กรณีขยายเวลา (ใช้รูปแบบเดิม) + report2.ReportParameters["EvaluateDateStart"].Value = evaluateAssign.GetType().GetProperty("EvaluateDateStart").GetValue(evaluateAssign); + report2.ReportParameters["EvaluateDateFinish"].Value = evaluateAssign.GetType().GetProperty("EvaluateDateFinish").GetValue(evaluateAssign); + report2.ReportParameters["Reson"].Value = evaluateAssign.GetType().GetProperty("Reson").GetValue(evaluateAssign); + report2.ReportParameters["DevelopComplete"].Value = evaluateAssign.GetType().GetProperty("DevelopComplete").GetValue(evaluateAssign); + report2.ReportParameters["PassResult"].Value = evaluateAssign.GetType().GetProperty("PassResult").GetValue(evaluateAssign); + report2.ReportParameters["ExpandMonth"].Value = evaluateAssign.GetType().GetProperty("ExpandMonth").GetValue(evaluateAssign); + report2.ReportParameters["ChairmanName"].Value = evaluateAssign.GetType().GetProperty("ChairmanName").GetValue(evaluateAssign); + report2.ReportParameters["ChairmanPosition"].Value = evaluateAssign.GetType().GetProperty("ChairmanPosition").GetValue(evaluateAssign); + report2.ReportParameters["ChairmanDate"].Value = evaluateAssign.GetType().GetProperty("ChairmanDate").GetValue(evaluateAssign); System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); InstanceReportSource instanceReportSource = new InstanceReportSource() { - ReportDocument = report, + ReportDocument = report2, }; ReportProcessor reportProcessor = new ReportProcessor(_configuration); RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); diff --git a/BMA.EHR.Report.Service/Reports/01-คำสั่งบรรจุและแต่งตั้งผู้สอบแข่งขันได้-2.trdp b/BMA.EHR.Report.Service/Reports/01-คำสั่งบรรจุและแต่งตั้งผู้สอบแข่งขันได้-2.trdp index 7574b3b3..47b1bef2 100644 Binary files a/BMA.EHR.Report.Service/Reports/01-คำสั่งบรรจุและแต่งตั้งผู้สอบแข่งขันได้-2.trdp and b/BMA.EHR.Report.Service/Reports/01-คำสั่งบรรจุและแต่งตั้งผู้สอบแข่งขันได้-2.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/02-คำสั่งบรรจุและแต่งตั้งผู้ได้รับคัดเลือก-4.trdp b/BMA.EHR.Report.Service/Reports/02-คำสั่งบรรจุและแต่งตั้งผู้ได้รับคัดเลือก-4.trdp index f04d1a0f..208840c8 100644 Binary files a/BMA.EHR.Report.Service/Reports/02-คำสั่งบรรจุและแต่งตั้งผู้ได้รับคัดเลือก-4.trdp and b/BMA.EHR.Report.Service/Reports/02-คำสั่งบรรจุและแต่งตั้งผู้ได้รับคัดเลือก-4.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/03-คำสั่งแต่งตั้งผู้สอบแข่งขัน.trdp b/BMA.EHR.Report.Service/Reports/03-คำสั่งแต่งตั้งผู้สอบแข่งขัน.trdp index 8e503bba..f84747e7 100644 Binary files a/BMA.EHR.Report.Service/Reports/03-คำสั่งแต่งตั้งผู้สอบแข่งขัน.trdp and b/BMA.EHR.Report.Service/Reports/03-คำสั่งแต่งตั้งผู้สอบแข่งขัน.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/04-คำสั่งย้ายผู้สอบแข่งขัน.trdp b/BMA.EHR.Report.Service/Reports/04-คำสั่งย้ายผู้สอบแข่งขัน.trdp index f394dc3d..299f1601 100644 Binary files a/BMA.EHR.Report.Service/Reports/04-คำสั่งย้ายผู้สอบแข่งขัน.trdp and b/BMA.EHR.Report.Service/Reports/04-คำสั่งย้ายผู้สอบแข่งขัน.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/18-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน-1.trdp b/BMA.EHR.Report.Service/Reports/18-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน-1.trdp new file mode 100644 index 00000000..68590ab7 Binary files /dev/null and b/BMA.EHR.Report.Service/Reports/18-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน-1.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/19-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ กรณีขยายเวลา.trdp b/BMA.EHR.Report.Service/Reports/19-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ กรณีขยายเวลา.trdp index 2bd6eee7..73544793 100644 Binary files a/BMA.EHR.Report.Service/Reports/19-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ กรณีขยายเวลา.trdp and b/BMA.EHR.Report.Service/Reports/19-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ กรณีขยายเวลา.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/34-คำสั่งอนุญาตให้ข้าราชการลาออกจากราชการ-5.trdp b/BMA.EHR.Report.Service/Reports/34-คำสั่งอนุญาตให้ข้าราชการลาออกจากราชการ-5.trdp index 859c9315..f11015db 100644 Binary files a/BMA.EHR.Report.Service/Reports/34-คำสั่งอนุญาตให้ข้าราชการลาออกจากราชการ-5.trdp and b/BMA.EHR.Report.Service/Reports/34-คำสั่งอนุญาตให้ข้าราชการลาออกจากราชการ-5.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา-1.trdp b/BMA.EHR.Report.Service/Reports/45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา-1.trdp new file mode 100644 index 00000000..0cd16222 Binary files /dev/null and b/BMA.EHR.Report.Service/Reports/45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา-1.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา-2.trdp b/BMA.EHR.Report.Service/Reports/45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา-2.trdp new file mode 100644 index 00000000..c446f6bc Binary files /dev/null and b/BMA.EHR.Report.Service/Reports/45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา-2.trdp differ diff --git a/BMA.EHR.Report.Service/Reports/ผลสอบคัดเลือกรายบุคคล.trdp b/BMA.EHR.Report.Service/Reports/ผลสอบคัดเลือกรายบุคคล.trdp index 4aaa7abb..c2ab086a 100644 Binary files a/BMA.EHR.Report.Service/Reports/ผลสอบคัดเลือกรายบุคคล.trdp and b/BMA.EHR.Report.Service/Reports/ผลสอบคัดเลือกรายบุคคล.trdp differ