diff --git a/BMA.EHR.Application/BMA.EHR.Application.csproj b/BMA.EHR.Application/BMA.EHR.Application.csproj
index 09d5a4e1..b3262e4b 100644
--- a/BMA.EHR.Application/BMA.EHR.Application.csproj
+++ b/BMA.EHR.Application/BMA.EHR.Application.csproj
@@ -10,6 +10,7 @@
+
diff --git a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs
index b126d408..00708c0c 100644
--- a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs
+++ b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs
@@ -5738,9 +5738,9 @@ namespace BMA.EHR.Application.Repositories
ProfileId = h.Profile.Id,
ProfileType = h.Profile.ProfileType,
FullName = $"{h.Profile.Prefix?.Name}{h.Profile.FirstName} {h.Profile.LastName}",
- Position = h.Profile.ProfileType == " officer" ? h.Profile.Position?.Name : h.Profile.PositionEmployeePosition?.Name,
- PosNo = h.Profile.ProfileType == " officer" ? h.Profile.PosNo?.Name : h.Profile.PosNoEmployee,
- Rank = h.Profile.ProfileType == " officer" ? $"{h.Profile.PositionType?.Name}/{h.Profile.PositionLevel?.Name}" : $"-",
+ Position = h.Profile.ProfileType == "officer" ? h.Profile.Position?.Name : h.Profile.PositionEmployeePosition?.Name,
+ PosNo = h.Profile.ProfileType == "officer" ? h.Profile.PosNo?.Name : h.Profile.PosNoEmployee,
+ Rank = h.Profile.ProfileType == "officer" ? $"{h.Profile.PositionType?.Name}/{h.Profile.PositionLevel?.Name}" : $"-",
Salary = h.Salary.ToString(),
LastInsignia = h.Profile.Insignias.Count == 0 ? "" : h.Profile.Insignias.OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name,
RequestInsignia = h.RequestInsignia.Name,
diff --git a/BMA.EHR.Application/Repositories/MinIOService.cs b/BMA.EHR.Application/Repositories/MinIOService.cs
new file mode 100644
index 00000000..34c01048
--- /dev/null
+++ b/BMA.EHR.Application/Repositories/MinIOService.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 MinIOService
+ {
+ #region " Fields "
+
+ private readonly IApplicationDBContext _dbContext;
+ private readonly IConfiguration _configuration;
+ private readonly AmazonS3Client _s3Client;
+ private readonly IWebHostEnvironment _hostingEnvironment;
+ private string _bucketName = string.Empty;
+
+ #endregion
+
+ #region " Constructors "
+
+ public MinIOService(IApplicationDBContext 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/ProbationReportRepository.cs b/BMA.EHR.Application/Repositories/Reports/ProbationReportRepository.cs
index 6a7423f1..59cddefa 100644
--- a/BMA.EHR.Application/Repositories/Reports/ProbationReportRepository.cs
+++ b/BMA.EHR.Application/Repositories/Reports/ProbationReportRepository.cs
@@ -162,7 +162,7 @@ namespace BMA.EHR.Application.Repositories.Reports
{
No = string.IsNullOrEmpty(evaluate_assign.data.evaluate.no.ToString()) ? string.Empty : evaluate_assign.data.evaluate.no.ToString().ToThaiNumber(),
EvaluateDateStart = string.IsNullOrEmpty(evaluate_assign.data.evaluate.date_start.ToString()) ? "วันที่ เดือน พ.ศ." : evaluate_assign.data.evaluate.date_start.ToThaiFullDate().ToString().ToThaiNumber(),
- EvaluateDateFinish = string.IsNullOrEmpty(evaluate_assign.data.evaluate.date_start.ToString()) ? "วันที่ เดือน พ.ศ." : evaluate_assign.data.evaluate.date_start.ToThaiFullDate().ToString().ToThaiNumber(),
+ EvaluateDateFinish = string.IsNullOrEmpty(evaluate_assign.data.evaluate.date_finish.ToString()) ? "วันที่ เดือน พ.ศ." : evaluate_assign.data.evaluate.date_finish.ToThaiFullDate().ToString().ToThaiNumber(),
Name = string.IsNullOrEmpty(evaluate_assign.data.experimentee.name) ? string.Empty : evaluate_assign.data.experimentee.name,
Position = string.IsNullOrEmpty(evaluate_assign.data.experimentee.Position) ? string.Empty : evaluate_assign.data.experimentee.Position,
Department = string.IsNullOrEmpty(evaluate_assign.data.experimentee.Department) ? string.Empty : evaluate_assign.data.experimentee.Department,
@@ -206,7 +206,7 @@ namespace BMA.EHR.Application.Repositories.Reports
{
No = string.IsNullOrEmpty(evaluate_assign.data.evaluate.no.ToString()) ? string.Empty : evaluate_assign.data.evaluate.no.ToString().ToThaiNumber(),
EvaluateDateStart = string.IsNullOrEmpty(evaluate_assign.data.evaluate.date_start.ToString()) ? "วันที่ เดือน พ.ศ." : evaluate_assign.data.evaluate.date_start.ToThaiFullDate().ToString().ToThaiNumber(),
- EvaluateDateFinish = string.IsNullOrEmpty(evaluate_assign.data.evaluate.date_start.ToString()) ? "วันที่ เดือน พ.ศ." : evaluate_assign.data.evaluate.date_start.ToThaiFullDate().ToString().ToThaiNumber(),
+ EvaluateDateFinish = string.IsNullOrEmpty(evaluate_assign.data.evaluate.date_finish.ToString()) ? "วันที่ เดือน พ.ศ." : evaluate_assign.data.evaluate.date_finish.ToThaiFullDate().ToString().ToThaiNumber(),
Name = string.IsNullOrEmpty(evaluate_assign.data.experimentee.name) ? string.Empty : evaluate_assign.data.experimentee.name,
Position = string.IsNullOrEmpty(evaluate_assign.data.experimentee.Position) ? string.Empty : evaluate_assign.data.experimentee.Position,
Department = string.IsNullOrEmpty(evaluate_assign.data.experimentee.Department) ? string.Empty : evaluate_assign.data.experimentee.Department,
diff --git a/BMA.EHR.Application/Repositories/Reports/RetireReportRepository.cs b/BMA.EHR.Application/Repositories/Reports/RetireReportRepository.cs
index 420ba8a4..cbe645cc 100644
--- a/BMA.EHR.Application/Repositories/Reports/RetireReportRepository.cs
+++ b/BMA.EHR.Application/Repositories/Reports/RetireReportRepository.cs
@@ -1,12 +1,15 @@
using System.Reflection.Metadata;
using BMA.EHR.Application.Common.Interfaces;
+using BMA.EHR.Application.Responses;
using BMA.EHR.Domain.Extensions;
+using BMA.EHR.Domain.Models.HR;
using BMA.EHR.Domain.Models.Organizations;
using BMA.EHR.Domain.Models.Retirement;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
+using Newtonsoft.Json;
namespace BMA.EHR.Application.Repositories.Reports
{
@@ -16,16 +19,19 @@ namespace BMA.EHR.Application.Repositories.Reports
private readonly IApplicationDBContext _dbContext;
private readonly IWebHostEnvironment _hostingEnvironment;
+ private readonly MinIOService _documentService;
#endregion
#region " Constructor and Destructor "
public RetireReportRepository(IApplicationDBContext dbContext,
+ MinIOService documentService,
IWebHostEnvironment hostEnvironment)
{
_dbContext = dbContext;
_hostingEnvironment = hostEnvironment;
+ _documentService = documentService;
}
#endregion
@@ -67,64 +73,73 @@ namespace BMA.EHR.Application.Repositories.Reports
if (retireHistorys == null)
return null;
- var profile_retireHistory = await _dbContext.Set()
- .Where(x => x.RetirementPeriod == retire)
- .OrderBy(x => x.Order)
- .Select(x => new
- {
- order = x.Order,
- id = x.Id,
- reason = x.Reason,
- remove = x.Remove,
- profileId = x.Profile.Id,
- citizenId = x.Profile.CitizenId,
- prefix = x.Profile.Prefix == null ? null : x.Profile.Prefix.Name,
- fullName = $"{x.Profile.FirstName} {x.Profile.LastName}",
- organizationOrganization = x.Profile.OrganizationOrganization,
- oc = x.Profile.Oc,
- position = x.Profile.Position == null ? null : x.Profile.Position.Name,
- positionType = x.Profile.PositionType == null ? null : x.Profile.PositionType.Name,
- positionExecutive = x.Profile.PositionExecutive,
- posNo = x.Profile.PosNo == null ? null : x.Profile.PosNo.Name,
- positionEmployeePosition = x.Profile.PositionEmployeePosition,
- positionEmployeeLevel = x.Profile.PositionEmployeeLevel,
- positionEmployeeGroup = x.Profile.PositionEmployeeGroup,
- posNoEmployee = x.Profile.PosNoEmployee,
- })
- .ToListAsync();
-
- return new { retireHistorys.Id, retireHistorys.CreatedAt, Year = retireHistorys.Year.ToThaiYear().ToString().ToThaiNumber(), retireHistorys.Round, retireHistorys.Type, retireHistorys.TypeReport, Total = retireHistorys.Total.ToString().ToThaiNumber(), profile = profile_retireHistory };
+ //var profile_retireHistory = await _dbContext.Set()
+ // .Where(x => x.RetirementPeriod == retire)
+ // .OrderBy(x => x.Order)
+ // .Select(x => new
+ // {
+ // order = x.Order,
+ // id = x.Id,
+ // reason = x.Reason,
+ // remove = x.Remove,
+ // profileId = x.Profile.Id,
+ // citizenId = x.Profile.CitizenId,
+ // prefix = x.Profile.Prefix == null ? string.Empty : x.Profile.Prefix.Name,
+ // fullName = $"{x.Profile.FirstName} {x.Profile.LastName}",
+ // organizationOrganization = x.Profile.OrganizationOrganization,
+ // oc = x.Profile.Oc,
+ // position = x.Profile.Position == null ? string.Empty : x.Profile.Position.Name,
+ // positionType = x.Profile.PositionType == null ? string.Empty : x.Profile.PositionType.Name,
+ // positionExecutive = x.Profile.PositionExecutive,
+ // posNo = x.Profile.PosNo == null ? string.Empty : x.Profile.PosNo.Name,
+ // positionEmployeePosition = x.Profile.PositionEmployeePosition,
+ // positionEmployeeLevel = x.Profile.PositionEmployeeLevel,
+ // positionEmployeeGroup = x.Profile.PositionEmployeeGroup,
+ // posNoEmployee = x.Profile.PosNoEmployee,
+ // })
+ // .ToListAsync();
+ //return new { retireHistorys.Detail, retireHistorys.Id, retireHistorys.CreatedAt, Year = retireHistorys.Year.ToThaiYear().ToString().ToThaiNumber(), retireHistorys.Round, retireHistorys.Type, retireHistorys.TypeReport, Total = retireHistorys.Total.ToString().ToThaiNumber(), profile = profile_retireHistory };
+ using (var client = new HttpClient())
+ {
+ var url = await _documentService.ImagesPathByName($"{retireHistorys.ProfileFile}.json");
+ var responseTask = client.GetAsync(url);
+ var results = responseTask.Result;
+ var json = results.Content.ReadAsStringAsync().Result;
+ List profiles = JsonConvert.DeserializeObject>(json);
+ profiles = profiles.OrderBy(x => x.order).ToList();
+ return new { retireHistorys.Detail, retireHistorys.Id, retireHistorys.CreatedAt, Year = retireHistorys.Year.ToThaiYear().ToString().ToThaiNumber(), retireHistorys.Round, retireHistorys.Type, retireHistorys.TypeReport, Total = retireHistorys.Total.ToString().ToThaiNumber(), profile = profiles};
+ }
}
else
{
var profile_retire = await _dbContext.Set()
- .Where(x => x.RetirementPeriod == retire)
- .OrderBy(x => x.Order)
- .Select(x => new
- {
- order = x.Order,
- id = x.Id,
- reason = x.Reason,
- remove = x.Remove,
- profileId = x.Profile.Id,
- citizenId = x.Profile.CitizenId,
- prefix = x.Profile.Prefix == null ? null : x.Profile.Prefix.Name,
- fullName = $"{x.Profile.FirstName} {x.Profile.LastName}",
- organizationOrganization = x.Profile.OrganizationOrganization,
- oc = x.Profile.Oc,
- position = x.Profile.Position == null ? null : x.Profile.Position.Name,
- positionType = x.Profile.PositionType == null ? null : x.Profile.PositionType.Name,
- positionExecutive = x.Profile.PositionExecutive,
- posNo = x.Profile.PosNo == null ? null : x.Profile.PosNo.Name,
- positionEmployeePosition = x.Profile.PositionEmployeePosition,
- positionEmployeeLevel = x.Profile.PositionEmployeeLevel,
- positionEmployeeGroup = x.Profile.PositionEmployeeGroup,
+ .Where(x => x.RetirementPeriod == retire)
+ .OrderBy(x => x.Order)
+ .Select(x => new
+ {
+ order = x.Order,
+ id = x.Id,
+ reason = x.Reason,
+ remove = x.Remove,
+ profileId = x.Profile.Id,
+ citizenId = x.Profile.CitizenId,
+ prefix = x.Profile.Prefix == null ? string.Empty : x.Profile.Prefix.Name,
+ fullName = $"{x.Profile.FirstName} {x.Profile.LastName}",
+ organizationOrganization = x.Profile.OrganizationOrganization,
+ oc = x.Profile.Oc,
+ position = x.Profile.Position == null ? string.Empty : x.Profile.Position.Name,
+ positionType = x.Profile.PositionType == null ? string.Empty : x.Profile.PositionType.Name,
+ positionExecutive = x.Profile.PositionExecutive,
+ posNo = x.Profile.PosNo == null ? string.Empty : x.Profile.PosNo.Name,
+ positionEmployeePosition = x.Profile.PositionEmployeePosition,
+ positionEmployeeLevel = x.Profile.PositionEmployeeLevel,
+ positionEmployeeGroup = x.Profile.PositionEmployeeGroup,
posNoEmployee = x.Profile.PosNoEmployee,
})
.ToListAsync();
- return new { retire.Id, retire.CreatedAt, Year = retire.Year.ToThaiYear().ToString().ToThaiNumber(), retire.Round, retire.Type, retire.TypeReport, Total = profile_retire.Count.ToString().ToThaiNumber(), profile = profile_retire };
+ return new { retire.Detail, retire.Id, retire.CreatedAt, Year = retire.Year.ToThaiYear().ToString().ToThaiNumber(), retire.Round, retire.Type, retire.TypeReport, Total = profile_retire.Count.ToString().ToThaiNumber(), profile = profile_retire };
}
}
#endregion
@@ -164,12 +179,17 @@ namespace BMA.EHR.Application.Repositories.Reports
if (data == null)
return null;
+ string Prefix = string.IsNullOrEmpty(data.Prefix.ToString()) ? string.Empty : data.Prefix.ToString();
+ string FirstName = string.IsNullOrEmpty(data.FirstName.ToString()) ? string.Empty : data.FirstName.ToString();
+ string LastName = string.IsNullOrEmpty(data.LastName.ToString()) ? string.Empty : data.LastName.ToString();
+ string FullName = $"{Prefix} {FirstName} {LastName}";
string Date = string.IsNullOrEmpty(data.Date.ToString()) ? "วันที่ - เดือน - พ.ศ. -" : DateTime.Parse(data.Date.ToString()).ToThaiFullDate().ToString().ToThaiNumber();
+ string CurrentDate = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")).ToThaiFullDate().ToString().ToThaiNumber();
return new
{
- data.Prefix,
- data.FirstName,
- data.LastName,
+ FullName,
+ Date,
+ CurrentDate,
data.Position,
data.PositionExecutive,
data.PositionType,
@@ -183,7 +203,6 @@ namespace BMA.EHR.Application.Repositories.Reports
data.PositionLevelId,
data.OrganizationId,
data.Number,
- Date,
data.Location,
data.Reason,
};
diff --git a/BMA.EHR.Application/Requests/InsigniaRequestItem.cs b/BMA.EHR.Application/Requests/InsigniaRequestItem.cs
index 9a0d44e4..ab0252e7 100644
--- a/BMA.EHR.Application/Requests/InsigniaRequestItem.cs
+++ b/BMA.EHR.Application/Requests/InsigniaRequestItem.cs
@@ -7,7 +7,7 @@
public string? ProfileType { get; set; }
public Guid ProfileId { get; set; }
public string FullName { get; set; }
- public string Position { get; set; }
+ public dynamic Position { get; set; }
public string PosNo { get; set; }
public string Rank { get; set; }
public string Salary { get; set; }
diff --git a/BMA.EHR.Application/Responses/EvaluateChairmanAssignResponse.cs b/BMA.EHR.Application/Responses/EvaluateChairmanAssignResponse.cs
index 78878067..e40d274d 100644
--- a/BMA.EHR.Application/Responses/EvaluateChairmanAssignResponse.cs
+++ b/BMA.EHR.Application/Responses/EvaluateChairmanAssignResponse.cs
@@ -126,6 +126,7 @@ namespace BMA.EHR.Application.Responses
public int develop_other_training_percent { get; set; }
public int develop_total_percent { get; set; }
public int develop_result { get; set; }
+ public int evaluate_result { get; set; }
public DateTime createdAt { get; set; }
public DateTime updatedAt { get; set; }
}
diff --git a/BMA.EHR.Application/Responses/ProfileJsonRequest.cs b/BMA.EHR.Application/Responses/ProfileJsonRequest.cs
new file mode 100644
index 00000000..6c19f255
--- /dev/null
+++ b/BMA.EHR.Application/Responses/ProfileJsonRequest.cs
@@ -0,0 +1,24 @@
+namespace BMA.EHR.Application.Responses
+{
+ public class ProfileJsonRequest
+ {
+ public int order { get; set; }
+ public Guid id { get; set; }
+ public string reason { get; set; }
+ public string remove { get; set; }
+ public Guid profileId { get; set; }
+ public string? citizenId { get; set; }
+ public string? prefix { get; set; }
+ public string? fullName { get; set; }
+ public string? organizationOrganization { get; set; }
+ public string? oc { get; set; }
+ public string? position { get; set; }
+ public string? positionType { get; set; }
+ public string? positionExecutive { get; set; }
+ public string? posNo { get; set; }
+ public string? positionEmployeePosition { get; set; }
+ public string? positionEmployeeLevel { get; set; }
+ public string? positionEmployeeGroup { get; set; }
+ public string? posNoEmployee { get; set; }
+ }
+}
diff --git a/BMA.EHR.Domain/Shared/GlobalMessages.cs b/BMA.EHR.Domain/Shared/GlobalMessages.cs
index 2678c379..4267f231 100644
--- a/BMA.EHR.Domain/Shared/GlobalMessages.cs
+++ b/BMA.EHR.Domain/Shared/GlobalMessages.cs
@@ -89,6 +89,7 @@
public static readonly string OCNotFound = "ไม่พบหน่วยงานที่ระบุในระบบ";
public static readonly string InsigniaManageOrgLimit = "จำนวนการจัดสรรเครื่องราชฯ หน่วยงานเกินจำนวน";
public static readonly string InsigniaBorrowOrgLimit = "จำนวนการจัดสรรเครื่องราชฯ หน่วยงานเกินจำนวนของหน่วยงานที่ได้รับ";
+ public static readonly string InsigniaNoBorrow = "ไม่สามารถยืมเครื่องราชฯ นี้ได้เนื่องจากสถานะรอการบันทึกข้อมูล";
public static readonly string InsigniaBorrowNotFound = "ไม่พบรายการยืมเครื่องราชฯ";
public static readonly string InsigniaNotReturn = "รายการยืมเครื่องราชนี้ได้ทำการยืมไว้แล้ว";
#endregion
diff --git a/BMA.EHR.Infrastructure/Storage/MinIOService.cs b/BMA.EHR.Infrastructure/Storage/MinIOService.cs
index a6f14d49..a65ec719 100644
--- a/BMA.EHR.Infrastructure/Storage/MinIOService.cs
+++ b/BMA.EHR.Infrastructure/Storage/MinIOService.cs
@@ -1,365 +1,365 @@
-using Amazon.S3;
-using Amazon.S3.Model;
-using BMA.EHR.Domain.Models.Documents;
-using BMA.EHR.Domain.Shared;
-using BMA.EHR.Infrastructure.Persistence;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Http;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.Extensions.Configuration;
-using MimeTypes;
-using System.Net.Http.Headers;
+// using Amazon.S3;
+// using Amazon.S3.Model;
+// using BMA.EHR.Domain.Models.Documents;
+// using BMA.EHR.Domain.Shared;
+// using BMA.EHR.Infrastructure.Persistence;
+// using Microsoft.AspNetCore.Hosting;
+// using Microsoft.AspNetCore.Http;
+// using Microsoft.EntityFrameworkCore;
+// using Microsoft.Extensions.Configuration;
+// using MimeTypes;
+// using System.Net.Http.Headers;
-namespace BMA.EHR.Application.Repositories
-{
- public class MinIOService
- {
- #region " Fields "
+// namespace BMA.EHR.Application.Repositories
+// {
+// public class MinIOService
+// {
+// #region " Fields "
- private readonly ApplicationDBContext _context;
- private readonly IConfiguration _configuration;
- private readonly AmazonS3Client _s3Client;
- private readonly IWebHostEnvironment _hostingEnvironment;
- private string _bucketName = string.Empty;
+// private readonly ApplicationDBContext _context;
+// private readonly IConfiguration _configuration;
+// private readonly AmazonS3Client _s3Client;
+// private readonly IWebHostEnvironment _hostingEnvironment;
+// private string _bucketName = string.Empty;
- #endregion
+// #endregion
- #region " Constructors "
+// #region " Constructors "
- public MinIOService(ApplicationDBContext context,
- IConfiguration configuration,
- IWebHostEnvironment hostingEnvironment)
- {
- _context = context;
- _configuration = configuration;
- _hostingEnvironment = hostingEnvironment;
+// public MinIOService(ApplicationDBContext context,
+// IConfiguration configuration,
+// IWebHostEnvironment hostingEnvironment)
+// {
+// _context = context;
+// _configuration = configuration;
+// _hostingEnvironment = hostingEnvironment;
- var config = new AmazonS3Config
- {
- ServiceURL = _configuration["MinIO:Endpoint"],
- ForcePathStyle = true
- };
+// 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";
- }
+// _s3Client = new AmazonS3Client(_configuration["MinIO:AccessKey"], _configuration["MinIO:SecretKey"], config);
+// this._bucketName = _configuration["MinIO:BucketName"] ?? "bma-recruit";
+// }
- #endregion
+// #endregion
- #region " Methods "
+// #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('"');
+// 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 tmpDir = Path.Combine("tmp");
+// if (!Directory.Exists(tmpDir))
+// Directory.CreateDirectory(tmpDir);
- var tmpFile = Path.Combine(tmpDir, $"tmp_{DateTime.Now.ToString("ddMMyyyyHHmmss")}{fileExt}");
+// 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);
+// 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
- };
+// var request = new PutObjectRequest
+// {
+// BucketName = _bucketName,
+// Key = id.ToString("D"),
+// InputStream = filestream,
+// ContentType = file.ContentType,
+// CannedACL = S3CannedACL.PublicRead
+// };
- await _s3Client.PutObjectAsync(request);
+// 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
- };
+// // create document object
+// var doc = new Document()
+// {
+// FileName = fileName,
+// FileType = file.ContentType,
+// FileSize = Convert.ToInt32(file.Length),
+// ObjectRefId = id,
+// CreatedDate = DateTime.Now
+// };
- await _context.Documents.AddAsync(doc);
- await _context.SaveChangesAsync();
+// await _context.Documents.AddAsync(doc);
+// await _context.SaveChangesAsync();
- return doc;
- }
- }
- catch
- {
- throw;
- }
- finally
- {
- File.Delete(tmpFile);
- }
- }
+// return doc;
+// }
+// }
+// catch
+// {
+// throw;
+// }
+// finally
+// {
+// File.Delete(tmpFile);
+// }
+// }
- public async Task DownloadFileAsync(Guid fileId)
- {
- try
- {
- var doc = await _context.Documents.AsQueryable()
- .FirstOrDefaultAsync(x => x.Id == fileId);
+// public async Task DownloadFileAsync(Guid fileId)
+// {
+// try
+// {
+// var doc = await _context.Documents.AsQueryable()
+// .FirstOrDefaultAsync(x => x.Id == fileId);
- if (doc == null)
- throw new Exception(GlobalMessages.FileNotFoundOnServer);
+// 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 (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);
- }
- }
+// using (GetObjectResponse response = await _s3Client.GetObjectAsync(request))
+// {
+// using (Stream responseStream = response.ResponseStream)
+// {
+// responseStream.CopyTo(memoryStream);
+// }
+// }
- var fileContent = memoryStream.ToArray();
+// var fileContent = memoryStream.ToArray();
- return new FileDownloadResponse
- {
- FileName = doc.FileName,
- FileType = doc.FileType,
- FileContent = fileContent
- };
- };
- }
- catch
- {
- throw;
- }
- }
+// return new FileDownloadResponse
+// {
+// FileName = doc.FileName,
+// FileType = doc.FileType,
+// FileContent = fileContent
+// };
+// };
+// }
+// catch
+// {
+// throw;
+// }
+// }
- public async Task DeleteFileAsync(Guid fileId)
- {
- try
- {
- var doc = await _context.Documents.AsQueryable()
- .FirstOrDefaultAsync(x => x.Id == fileId);
+// public async Task DeleteFileAsync(Guid fileId)
+// {
+// try
+// {
+// var doc = await _context.Documents.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")
- };
+// 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);
+// // delete from minio
+// await _s3Client.DeleteObjectAsync(request);
- _context.Documents.Remove(doc);
- await _context.SaveChangesAsync();
- }
- }
- catch
- {
- throw;
- }
- }
+// _context.Documents.Remove(doc);
+// await _context.SaveChangesAsync();
+// }
+// }
+// catch
+// {
+// throw;
+// }
+// }
- public async Task ImagesPath(Guid? fileId)
- {
- if (fileId == null)
- return "";
+// public async Task ImagesPath(Guid? fileId)
+// {
+// if (fileId == null)
+// return "";
- var doc = await _context.Documents.AsQueryable()
- .FirstOrDefaultAsync(x => x.Id == fileId);
+// var doc = await _context.Documents.AsQueryable()
+// .FirstOrDefaultAsync(x => x.Id == fileId);
- if (doc == null)
- throw new Exception(GlobalMessages.FileNotFoundOnServer);
- var config = new AmazonS3Config
- {
- ServiceURL = _configuration["MinIO:Endpoint"],
- ForcePathStyle = true
- };
+// 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);
+// 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;
- }
+// return path;
+// }
- public async Task ImagesPathByName(string fileName)
- {
- var config = new AmazonS3Config
- {
- ServiceURL = _configuration["MinIO:Endpoint"],
- ForcePathStyle = true
- };
+// 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);
+// 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;
- }
+// return path;
+// }
- #endregion
+// #endregion
- public List GetAllIdByRoot(Guid? id)
- {
- try
- {
- var ret = new List();
- if (id == null)
- return ret;
+// public List GetAllIdByRoot(Guid? id)
+// {
+// try
+// {
+// var ret = new List();
+// if (id == null)
+// return ret;
- var oc = _context.Organizations.FirstOrDefault(x => x.Id == id);
- if (oc != null)
- ret.Add(oc.Id);
+// var oc = _context.Organizations.FirstOrDefault(x => x.Id == id);
+// if (oc != null)
+// ret.Add(oc.Id);
- var child = _context.Organizations.AsQueryable().Where(x => x.Parent != null && x.Parent.Id == id).ToList();
- if (child.Any())
- {
- foreach (var item in child)
- {
- ret.AddRange(GetAllIdByRoot(item.Id));
- }
- }
+// var child = _context.Organizations.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;
- }
- }
+// return ret;
+// }
+// catch
+// {
+// throw;
+// }
+// }
- public async Task CheckBmaOfficer(string CitizenId)
- {
- var data = await _context.Profiles.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 CheckBmaOfficer(string CitizenId)
+// {
+// var data = await _context.Profiles.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);
+// 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
- };
+// 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;
- }
- }
+// 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);
+// 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");
+// 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);
- }
+// 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();
- }
- }
+// 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
+// }
+// }
\ No newline at end of file
diff --git a/BMA.EHR.Insignia.Service/Controllers/InsigniaManageController.cs b/BMA.EHR.Insignia.Service/Controllers/InsigniaManageController.cs
index c793201e..8fc7fba3 100644
--- a/BMA.EHR.Insignia.Service/Controllers/InsigniaManageController.cs
+++ b/BMA.EHR.Insignia.Service/Controllers/InsigniaManageController.cs
@@ -420,6 +420,8 @@ namespace BMA.EHR.Insignia.Service.Controllers
.FirstOrDefaultAsync(x => x.Id == req.InsigniaNoteProfileId);
if (insigniaNoteProfile == null)
return Error(GlobalMessages.InsigniaRequestProfileNotFound);
+ if (insigniaNoteProfile.Status != "DONE")
+ return Error(GlobalMessages.InsigniaNoBorrow);
var insigniaManage = await _context.InsigniaManages.AsQueryable()
.FirstOrDefaultAsync(x => x.Year == insigniaNoteProfile.InsigniaNote.Year && x.Insignia == insigniaNoteProfile.RequestInsignia);
@@ -433,7 +435,7 @@ namespace BMA.EHR.Insignia.Service.Controllers
return Error(GlobalMessages.InsigniaManageOrgNotFound);
var insigniaManageProfile = await _context.InsigniaManageProfiles.AsQueryable()
- .FirstOrDefaultAsync(x => x.InsigniaNoteProfile == insigniaNoteProfile && x.InsigniaManageOrganiation == insigniaManageOrganiation && x.Status == false);
+ .FirstOrDefaultAsync(x => x.InsigniaNoteProfile == insigniaNoteProfile && x.Status == false);
if (insigniaManageProfile != null)
return Error(GlobalMessages.InsigniaNotReturn);
diff --git a/BMA.EHR.Insignia.Service/appsettings.json b/BMA.EHR.Insignia.Service/appsettings.json
index 952a70c0..85a25b5c 100644
--- a/BMA.EHR.Insignia.Service/appsettings.json
+++ b/BMA.EHR.Insignia.Service/appsettings.json
@@ -18,7 +18,7 @@
},
"Jwt": {
"Key": "HP-FnQMUj9msHMSD3T9HtdEnphAKoCJLEl85CIqROFI",
- "Issuer": "https://identity.frappet.com/realms/bma-ehr"
+ "Issuer": "https://id.frappet.synology.me/realms/bma-ehr"
},
"EPPlus": {
"ExcelPackage": {
diff --git a/BMA.EHR.Insignia.Service/wwwroot/keycloak.json b/BMA.EHR.Insignia.Service/wwwroot/keycloak.json
index 9eba3b39..a023eb38 100644
--- a/BMA.EHR.Insignia.Service/wwwroot/keycloak.json
+++ b/BMA.EHR.Insignia.Service/wwwroot/keycloak.json
@@ -1,6 +1,6 @@
{
"realm": "bma-ehr",
- "auth-server-url": "https://identity.frappet.com",
+ "auth-server-url": "https://id.frappet.synology.me",
"ssl-required": "external",
"resource": "bma-ehr",
"public-client": true
diff --git a/BMA.EHR.Report.Service/Controllers/DeceasedReportController.cs b/BMA.EHR.Report.Service/Controllers/DeceasedReportController.cs
index 635bcab1..9d7fb5e1 100644
--- a/BMA.EHR.Report.Service/Controllers/DeceasedReportController.cs
+++ b/BMA.EHR.Report.Service/Controllers/DeceasedReportController.cs
@@ -57,7 +57,7 @@ namespace BMA.EHR.Report.Service.Controllers
///
/// 36-บันทึกเวียนแจ้งการถึงแก่กรรม
///
- /// id
+ /// Id รายการบันทึกเวียนแจ้งการถึงแก่กรรม
/// pdf, docx หรือ xlsx
///
/// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ
@@ -68,9 +68,25 @@ namespace BMA.EHR.Report.Service.Controllers
{
try
{
+ var head = await _repository.GetHeadRetirementDeceasedAsync(id);
var data = await _repository.GetRetirementDeceasedAsync(id);
- if (data != null)
+ if (data != null || head != null)
{
+ var mergeData = new
+ {
+ Oc = head.GetType().GetProperty("Oc").GetValue(head),
+ Number = head.GetType().GetProperty("Number").GetValue(head),
+ Date = head.GetType().GetProperty("Date").GetValue(head),
+ Subject = head.GetType().GetProperty("Subject").GetValue(head),
+ Send = head.GetType().GetProperty("Send").GetValue(head),
+ FullName = data.GetType().GetProperty("FullName").GetValue(data),
+ Position = data.GetType().GetProperty("Position").GetValue(data),
+ Reason = data.GetType().GetProperty("Reason").GetValue(data),
+ DeceasedDate = data.GetType().GetProperty("Date").GetValue(data),
+ CurrentDate = data.GetType().GetProperty("CurrentDate").GetValue(data),
+ DeceasedNumber = data.GetType().GetProperty("Number").GetValue(data),
+ Location = data.GetType().GetProperty("Location").GetValue(data),
+ };
var mimeType = "";
switch (exportType.Trim().ToLower())
{
@@ -86,7 +102,7 @@ namespace BMA.EHR.Report.Service.Controllers
{
report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream);
}
- report.DataSource = data;
+ report.DataSource = mergeData;
System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable();
InstanceReportSource instanceReportSource = new InstanceReportSource()
{
@@ -94,7 +110,76 @@ namespace BMA.EHR.Report.Service.Controllers
};
ReportProcessor reportProcessor = new ReportProcessor(_configuration);
RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo);
- return File(result.DocumentBytes, mimeType, $"deceased.{exportType.Trim().ToLower()}");
+ return File(result.DocumentBytes, mimeType, $"รายละเอียดบันทึกเวียนแจ้งการถึงแก่กรรม.{exportType.Trim().ToLower()}");
+ }
+ else
+ {
+ return NotFound();
+ }
+ }
+ catch
+ {
+ throw;
+ }
+ }
+
+ ///
+ /// 36-บันทึกเวียนแจ้งการถึงแก่กรรม
+ ///
+ /// Id รายการบันทึกเวียนแจ้งการถึงแก่กรรม
+ /// pdf, docx หรือ xlsx
+ ///
+ /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("copy/36/{exportType}/{id}")]
+ public async Task> GetDeceasedReportCopyAsync(Guid id, string exportType = "pdf")
+ {
+ try
+ {
+ var head = await _repository.GetHeadRetirementDeceasedAsync(id);
+ var data = await _repository.GetRetirementDeceasedAsync(id);
+ if (data != null || head != null)
+ {
+ var mergeData = new
+ {
+ Oc = head.GetType().GetProperty("Oc").GetValue(head),
+ Number = head.GetType().GetProperty("Number").GetValue(head),
+ Date = head.GetType().GetProperty("Date").GetValue(head),
+ Subject = head.GetType().GetProperty("Subject").GetValue(head),
+ Send = head.GetType().GetProperty("Send").GetValue(head),
+ FullName = data.GetType().GetProperty("FullName").GetValue(data),
+ Position = data.GetType().GetProperty("Position").GetValue(data),
+ Reason = data.GetType().GetProperty("Reason").GetValue(data),
+ DeceasedDate = data.GetType().GetProperty("Date").GetValue(data),
+ CurrentDate = data.GetType().GetProperty("CurrentDate").GetValue(data),
+ DeceasedNumber = data.GetType().GetProperty("Number").GetValue(data),
+ Location = data.GetType().GetProperty("Location").GetValue(data),
+ };
+ 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", $"36-บันทึกเวียนแจ้งการถึงแก่กรรม.trdp");
+ ReportPackager reportPacker = new ReportPackager();
+ Telerik.Reporting.Report? report = null;
+ using (var sourceStream = System.IO.File.OpenRead(rptFile))
+ {
+ report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream);
+ }
+ report.DataSource = mergeData;
+ System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable();
+ InstanceReportSource instanceReportSource = new InstanceReportSource()
+ {
+ ReportDocument = report,
+ };
+ ReportProcessor reportProcessor = new ReportProcessor(_configuration);
+ RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo);
+ return File(result.DocumentBytes, mimeType, $"รายละเอียดบันทึกเวียนแจ้งการถึงแก่กรรม.{exportType.Trim().ToLower()}");
}
else
{
diff --git a/BMA.EHR.Report.Service/Controllers/ProbationReportController.cs b/BMA.EHR.Report.Service/Controllers/ProbationReportController.cs
index d6e48698..4da99ca5 100644
--- a/BMA.EHR.Report.Service/Controllers/ProbationReportController.cs
+++ b/BMA.EHR.Report.Service/Controllers/ProbationReportController.cs
@@ -1,22 +1,10 @@
using BMA.EHR.Domain.Common;
-using BMA.EHR.Domain.Extensions;
-using BMA.EHR.Domain.Shared;
using BMA.EHR.Application.Repositories.Reports;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.ModelBinding.Binders;
using Swashbuckle.AspNetCore.Annotations;
-using DocumentFormat.OpenXml.Drawing;
using Telerik.Reporting;
using Telerik.Reporting.Processing;
-using System.IO;
-using Newtonsoft.Json;
-using BMA.EHR.Application.Responses;
-using static BMA.EHR.Application.Responses.EvaluateRecordAssignResponse;
-using static BMA.EHR.Application.Responses.ProbationAssignResponse;
-using DocumentFormat.OpenXml.Drawing.Charts;
-using DocumentFormat.OpenXml.Bibliography;
-using DocumentFormat.OpenXml.Wordprocessing;
namespace BMA.EHR.Report.Service.Controllers
{
@@ -819,7 +807,7 @@ namespace BMA.EHR.Report.Service.Controllers
Check_Moral2Level2 = moral2.col2,
Check_Moral2Level3 = moral2.col3,
Check_Moral2Level4 = moral2.col4,
- Check_Moral2Level5 = moral2.col4,
+ Check_Moral2Level5 = moral2.col5,
Check_Moral3Level1 = moral3.col1,
Check_Moral3Level2 = moral3.col2,
Check_Moral3Level3 = moral3.col3,
@@ -1033,7 +1021,7 @@ namespace BMA.EHR.Report.Service.Controllers
Check_Moral2Level2 = moral2.col2,
Check_Moral2Level3 = moral2.col3,
Check_Moral2Level4 = moral2.col4,
- Check_Moral2Level5 = moral2.col4,
+ Check_Moral2Level5 = moral2.col5,
Check_Moral3Level1 = moral3.col1,
Check_Moral3Level2 = moral3.col2,
Check_Moral3Level3 = moral3.col3,
@@ -1091,6 +1079,7 @@ namespace BMA.EHR.Report.Service.Controllers
develop_other_training_percent = evaluate.develop_other_training_percent,
develop_total_percent = evaluate.develop_total_percent,
develop_result = evaluate.develop_result,
+ evaluate_result = evaluate.evaluate_result,
});
var tblEvaluateAssign1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table2"];
@@ -1101,7 +1090,7 @@ namespace BMA.EHR.Report.Service.Controllers
tblEvaluateAssign3.DataSource = _Evaluate;
var tblEvaluateAssign4 = (Telerik.Reporting.Table)report2.Items["detailSection1"].Items["table3"];
tblEvaluateAssign4.DataSource = _Evaluate;
-
+ report2.DataSource = _Evaluate;
var reportBook = new ReportBook();
reportBook.Reports.Add(report);
reportBook.Reports.Add(report2);
diff --git a/BMA.EHR.Report.Service/Controllers/RetireReportController.cs b/BMA.EHR.Report.Service/Controllers/RetireReportController.cs
index 0dfb6a88..9d56912b 100644
--- a/BMA.EHR.Report.Service/Controllers/RetireReportController.cs
+++ b/BMA.EHR.Report.Service/Controllers/RetireReportController.cs
@@ -42,14 +42,10 @@ namespace BMA.EHR.Report.Service.Controllers
public async Task> GetProfileRetirement([FromRoute] Guid Id, string exportType = "pdf")
{
var retire = await _service.GetProfileRetirementdAsync(Id);
- if (retire == null)
+ if (retire != null)
{
- return NotFound();
- }
- else
- {
- var reportfile = "";
- var returnfile = "";
+ var reportfile = string.Empty;
+ var returnfile = string.Empty;
exportType = exportType.Trim();
switch (retire.GetType().GetProperty("Type").GetValue(retire))
{
@@ -89,9 +85,10 @@ namespace BMA.EHR.Report.Service.Controllers
{
report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream);
}
- //Add Parameter
- report.ReportParameters["Year"].Value = retire.GetType().GetProperty("Year").GetValue(retire);
- report.ReportParameters["Total"].Value = retire.GetType().GetProperty("Total").GetValue(retire);
+ report.DataSource = retire;
+ ////Add Parameter
+ //report.ReportParameters["Year"].Value = retire.GetType().GetProperty("Year").GetValue(retire);
+ //report.ReportParameters["Total"].Value = retire.GetType().GetProperty("Total").GetValue(retire);
var _profileList = new List();
@@ -123,6 +120,10 @@ namespace BMA.EHR.Report.Service.Controllers
var content = result.DocumentBytes;
return File(content, $"application/{exportType}", returnfile);
}
+ else
+ {
+ return NotFound();
+ }
}
#endregion
}
diff --git a/BMA.EHR.Report.Service/Reports/16-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา-1.trdp b/BMA.EHR.Report.Service/Reports/16-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา-1.trdp
index 36680956..13a9b82f 100644
Binary files a/BMA.EHR.Report.Service/Reports/16-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา-1.trdp and b/BMA.EHR.Report.Service/Reports/16-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา-1.trdp differ
diff --git a/BMA.EHR.Report.Service/Reports/17-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับคณะกรรมการ-1.trdp b/BMA.EHR.Report.Service/Reports/17-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับคณะกรรมการ-1.trdp
index f12a4e52..9c1dad85 100644
Binary files a/BMA.EHR.Report.Service/Reports/17-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับคณะกรรมการ-1.trdp and b/BMA.EHR.Report.Service/Reports/17-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับคณะกรรมการ-1.trdp differ
diff --git a/BMA.EHR.Report.Service/Reports/17-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับคณะกรรมการ-2.trdp b/BMA.EHR.Report.Service/Reports/17-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับคณะกรรมการ-2.trdp
index 4a3ce0da..25f905b0 100644
Binary files a/BMA.EHR.Report.Service/Reports/17-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับคณะกรรมการ-2.trdp and b/BMA.EHR.Report.Service/Reports/17-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับคณะกรรมการ-2.trdp differ
diff --git a/BMA.EHR.Report.Service/Reports/31-ประกาศเกษียณข้าราชการ-1.trdp b/BMA.EHR.Report.Service/Reports/31-ประกาศเกษียณข้าราชการ-1.trdp
index aef01206..75a2286d 100644
Binary files a/BMA.EHR.Report.Service/Reports/31-ประกาศเกษียณข้าราชการ-1.trdp and b/BMA.EHR.Report.Service/Reports/31-ประกาศเกษียณข้าราชการ-1.trdp differ
diff --git a/BMA.EHR.Report.Service/Reports/31-ประกาศเกษียณข้าราชการ-2.trdp b/BMA.EHR.Report.Service/Reports/31-ประกาศเกษียณข้าราชการ-2.trdp
index f2f7deb8..132a00da 100644
Binary files a/BMA.EHR.Report.Service/Reports/31-ประกาศเกษียณข้าราชการ-2.trdp and b/BMA.EHR.Report.Service/Reports/31-ประกาศเกษียณข้าราชการ-2.trdp differ
diff --git a/BMA.EHR.Report.Service/Reports/31-ประกาศเกษียณข้าราชการ-3.trdp b/BMA.EHR.Report.Service/Reports/31-ประกาศเกษียณข้าราชการ-3.trdp
index 09beb8c6..2919650d 100644
Binary files a/BMA.EHR.Report.Service/Reports/31-ประกาศเกษียณข้าราชการ-3.trdp and b/BMA.EHR.Report.Service/Reports/31-ประกาศเกษียณข้าราชการ-3.trdp differ
diff --git a/BMA.EHR.Report.Service/Reports/32-ประกาศเกษียณลูกจ้างประจำ.trdp b/BMA.EHR.Report.Service/Reports/32-ประกาศเกษียณลูกจ้างประจำ.trdp
index bbb55bcf..5799b202 100644
Binary files a/BMA.EHR.Report.Service/Reports/32-ประกาศเกษียณลูกจ้างประจำ.trdp and b/BMA.EHR.Report.Service/Reports/32-ประกาศเกษียณลูกจ้างประจำ.trdp differ
diff --git a/BMA.EHR.Report.Service/Reports/36-บันทึกเวียนแจ้งการถึงแก่กรรม.trdp b/BMA.EHR.Report.Service/Reports/36-บันทึกเวียนแจ้งการถึงแก่กรรม.trdp
index 1ddb6506..4657c011 100644
Binary files a/BMA.EHR.Report.Service/Reports/36-บันทึกเวียนแจ้งการถึงแก่กรรม.trdp and b/BMA.EHR.Report.Service/Reports/36-บันทึกเวียนแจ้งการถึงแก่กรรม.trdp differ
diff --git a/BMA.EHR.Report.Service/appsettings.json b/BMA.EHR.Report.Service/appsettings.json
index d6921d83..169430e3 100644
--- a/BMA.EHR.Report.Service/appsettings.json
+++ b/BMA.EHR.Report.Service/appsettings.json
@@ -26,10 +26,10 @@
}
},
"MinIO": {
- "Endpoint": "https://s3.frappet.com/",
+ "Endpoint": "https://s3cluster.frappet.com/",
"AccessKey": "frappet",
- "SecretKey": "P@ssw0rd",
- "BucketName": "bma-recruit"
+ "SecretKey": "FPTadmin2357",
+ "BucketName": "bma-ehr-fpt"
},
"Protocol": "HTTPS",
"telerikReporting": {
diff --git a/BMA.EHR.Retirement.Service/Controllers/RetirementController.cs b/BMA.EHR.Retirement.Service/Controllers/RetirementController.cs
index 8c401275..32695f67 100644
--- a/BMA.EHR.Retirement.Service/Controllers/RetirementController.cs
+++ b/BMA.EHR.Retirement.Service/Controllers/RetirementController.cs
@@ -233,6 +233,7 @@ namespace BMA.EHR.Retirement.Service.Controllers
{
Round = round,
TypeReport = null,
+ Detail = "มาตรา ๑๖ และมาตรา ๒๑ แห่งพระราชบัญญัตบำเหน็จบำนาญข้าราชการส่วนท้องถิ่น พ.ศ.๒๕๗๗ มาตรา ๘ แห่งพระราชบัญญัติบัเหน็จบำนาญข้าราชการกรุงเทพมหานคร พ.ศ.๒๕๕๔ ประกอบกับมติ ก.ก. ครั้งที่๑๑/๒๕๕๕ เมื่อวันที่ ๑๕ พฤศจิกายน ๒๕๕๕และมติ อ.ก.ก. สามัญข้ารายการสามัญครั้งที่ ๑/๒๕๖๕ เมื่อวันที่ ๒๑ กุมภาพันธ์ ๒๕๖๕",
Type = req.Type.Trim().ToUpper(),
Year = req.Year,
CreatedUserId = UserId ?? "System Administrator",
diff --git a/BMA.EHR.Retirement.Service/Controllers/RetirementDeceasedController.cs b/BMA.EHR.Retirement.Service/Controllers/RetirementDeceasedController.cs
index 9b73dce3..e1e5eaad 100644
--- a/BMA.EHR.Retirement.Service/Controllers/RetirementDeceasedController.cs
+++ b/BMA.EHR.Retirement.Service/Controllers/RetirementDeceasedController.cs
@@ -551,7 +551,7 @@ namespace BMA.EHR.Retirement.Service.Controllers
payload_attach.Add(new PayloadAttachment
{
name = "หนังสือเวียนถึงแก่กรรม",
- url = $"{_configuration["API"]}/order/download/attachment/{retirementDeceased.DocumentForward.Id}"
+ url = $"{_configuration["API"]}/copy/36/pdf/{retirementDeceased.Id}"
});
var payload = new CommandPayload()
diff --git a/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs b/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs
index 2e54ccbe..65d21c13 100644
--- a/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs
+++ b/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs
@@ -508,6 +508,13 @@ namespace BMA.EHR.Retirement.Service.Controllers
"",
true
);
+ await _repositoryNoti.PushNotificationAsync(
+ Guid.Parse("08db721d-ae22-424d-8f4a-87ba30cc3ee7"),
+ $"คำขอลาออกขอ {updated.Profile.Prefix?.Name}{updated.Profile.FirstName} {updated.Profile.LastName} ได้รับการอนุมัติจากผู้บังคับบัญชา",
+ $"คำขอลาออกขอ {updated.Profile.Prefix?.Name}{updated.Profile.FirstName} {updated.Profile.LastName} ได้รับการอนุมัติจากผู้บังคับบัญชา",
+ "",
+ true
+ );
await _context.SaveChangesAsync();
return Success();
@@ -547,6 +554,13 @@ namespace BMA.EHR.Retirement.Service.Controllers
"",
true
);
+ await _repositoryNoti.PushNotificationAsync(
+ Guid.Parse("08db721d-ae22-424d-8f4a-87ba30cc3ee7"),
+ $"คำขอลาออกขอ {updated.Profile.Prefix?.Name}{updated.Profile.FirstName} {updated.Profile.LastName} ถูกยับยั้งจากผู้บังคับบัญชา",
+ $"คำขอลาออกขอ {updated.Profile.Prefix?.Name}{updated.Profile.FirstName} {updated.Profile.LastName} ถูกยับยั้งจากผู้บังคับบัญชา",
+ "",
+ true
+ );
await _context.SaveChangesAsync();
return Success();
diff --git a/BMA.EHR.Retirement.Service/Requests/RetirementDeceasedAddNotiPersonRequest.cs b/BMA.EHR.Retirement.Service/Requests/RetirementDeceasedAddNotiPersonRequest.cs
index e087ce7c..ad996306 100644
--- a/BMA.EHR.Retirement.Service/Requests/RetirementDeceasedAddNotiPersonRequest.cs
+++ b/BMA.EHR.Retirement.Service/Requests/RetirementDeceasedAddNotiPersonRequest.cs
@@ -10,8 +10,8 @@ namespace BMA.EHR.Retirement.Service.Requests
public class RetirementDeceasedAddNotiPerson
{
public Guid ProfileId { get; set; }
- public bool IsSendMail { get; set; }
- public bool IsSendInbox { get; set; }
- public bool IsSendNotification { get; set; }
+ public bool IsSendMail { get; set; } = true;
+ public bool IsSendInbox { get; set; } = true;
+ public bool IsSendNotification { get; set; } = true;
}
}