diff --git a/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentController.cs b/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentController.cs
index 20d533d4..40ae00ea 100644
--- a/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentController.cs
+++ b/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentController.cs
@@ -1,6 +1,7 @@
using BMA.EHR.Application.Repositories;
using BMA.EHR.Application.Repositories.MessageQueue;
using BMA.EHR.Domain.Common;
+using BMA.EHR.Domain.Extensions;
using BMA.EHR.Domain.Models.Placement;
using BMA.EHR.Domain.Shared;
using BMA.EHR.Infrastructure.Persistence;
@@ -741,5 +742,159 @@ namespace BMA.EHR.Placement.Service.Controllers
.ToListAsync();
return Success(appointments);
}
+
+ ///
+ /// ออกคำสั่ง C-PM-05
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPost("appoint/report/excecute")]
+ public async Task> PostReportExecuteAppoint([FromBody] ReportExecuteRequest req)
+ {
+ // create new profile
+ foreach (var recv in req.refIds)
+ {
+ var placementProfile = await _context.PlacementAppointments
+ .FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId));
+ if (placementProfile == null)
+ continue;
+
+ if (placementProfile == null)
+ throw new Exception(GlobalMessages.DataNotFound);
+ var baseAPI = _configuration["API"];
+ var apiUrlSalary = $"{baseAPI}/org/profile/salary";
+ using (var client = new HttpClient())
+ {
+ client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
+ client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
+ var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlSalary);
+ var _res = await client.PostAsJsonAsync(apiUrlSalary, new
+ {
+ profileId = placementProfile.profileId,
+ date = recv.commandAffectDate,
+ amount = recv.amount,
+ positionSalaryAmount = recv.positionSalaryAmount,
+ mouthSalaryAmount = recv.mouthSalaryAmount,
+ posNo = placementProfile.posMasterNo == null ? "" :
+ placementProfile.node == 4 ? $"{placementProfile.child4ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 3 ? $"{placementProfile.child3ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 2 ? $"{placementProfile.child2ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 1 ? $"{placementProfile.child1ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 0 ? $"{placementProfile.rootShortName}{placementProfile.posMasterNo}" : "",
+ position = placementProfile.position,
+ positionLine = "",
+ positionPathSide = "",
+ positionExecutive = "",
+ positionType = placementProfile.posTypeName,
+ positionLevel = placementProfile.posLevelName,
+ refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}",
+ templateDoc = recv.templateDoc,
+ });
+ var _result = await _res.Content.ReadAsStringAsync();
+ }
+
+ var baseAPIOrg = _configuration["API"];
+ var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current";
+ using (var client = new HttpClient())
+ {
+ client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
+ client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
+ var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlOrg);
+ var _res = await client.PostAsJsonAsync(apiUrlOrg, new
+ {
+ posmasterId = placementProfile.posmasterId,
+ positionId = placementProfile.positionId,
+ profileId = placementProfile.profileId,
+ });
+ var _result = await _res.Content.ReadAsStringAsync();
+ }
+
+ // update placementstatus
+ placementProfile.Status = "DONE";
+
+ await _context.SaveChangesAsync();
+ }
+ return Success();
+ }
+
+ ///
+ /// ออกคำสั่ง C-PM-06
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPost("slip/report/excecute")]
+ public async Task> PostReportExecuteSlip([FromBody] ReportExecuteRequest req)
+ {
+ // create new profile
+ foreach (var recv in req.refIds)
+ {
+ var placementProfile = await _context.PlacementAppointments
+ .FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId));
+ if (placementProfile == null)
+ continue;
+
+ if (placementProfile == null)
+ throw new Exception(GlobalMessages.DataNotFound);
+ var baseAPI = _configuration["API"];
+ var apiUrlSalary = $"{baseAPI}/org/profile/salary";
+ using (var client = new HttpClient())
+ {
+ client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
+ client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
+ var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlSalary);
+ var _res = await client.PostAsJsonAsync(apiUrlSalary, new
+ {
+ profileId = placementProfile.profileId,
+ date = recv.commandAffectDate,
+ amount = recv.amount,
+ positionSalaryAmount = recv.positionSalaryAmount,
+ mouthSalaryAmount = recv.mouthSalaryAmount,
+ posNo = placementProfile.posMasterNo == null ? "" :
+ placementProfile.node == 4 ? $"{placementProfile.child4ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 3 ? $"{placementProfile.child3ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 2 ? $"{placementProfile.child2ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 1 ? $"{placementProfile.child1ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 0 ? $"{placementProfile.rootShortName}{placementProfile.posMasterNo}" : "",
+ position = placementProfile.position,
+ positionLine = "",
+ positionPathSide = "",
+ positionExecutive = "",
+ positionType = placementProfile.posTypeName,
+ positionLevel = placementProfile.posLevelName,
+ refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}",
+ templateDoc = recv.templateDoc,
+ });
+ var _result = await _res.Content.ReadAsStringAsync();
+ }
+
+ var baseAPIOrg = _configuration["API"];
+ var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current";
+ using (var client = new HttpClient())
+ {
+ client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
+ client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
+ var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlOrg);
+ var _res = await client.PostAsJsonAsync(apiUrlOrg, new
+ {
+ posmasterId = placementProfile.posmasterId,
+ positionId = placementProfile.positionId,
+ profileId = placementProfile.profileId,
+ });
+ var _result = await _res.Content.ReadAsStringAsync();
+ }
+
+ // update placementstatus
+ placementProfile.Status = "DONE";
+
+ await _context.SaveChangesAsync();
+ }
+ return Success();
+ }
}
}
diff --git a/BMA.EHR.Placement.Service/Controllers/PlacementController.cs b/BMA.EHR.Placement.Service/Controllers/PlacementController.cs
index 7201875f..857222a5 100644
--- a/BMA.EHR.Placement.Service/Controllers/PlacementController.cs
+++ b/BMA.EHR.Placement.Service/Controllers/PlacementController.cs
@@ -2,7 +2,6 @@
using BMA.EHR.Application.Repositories.MessageQueue;
using BMA.EHR.Domain.Common;
using BMA.EHR.Domain.Extensions;
-using BMA.EHR.Domain.Models.MetaData;
using BMA.EHR.Domain.Models.Placement;
using BMA.EHR.Domain.Shared;
using BMA.EHR.Infrastructure.Persistence;
@@ -12,13 +11,9 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Swashbuckle.AspNetCore.Annotations;
using System.Security.Claims;
-using System.Security.Cryptography;
-using Microsoft.Extensions.Configuration;
using System.Net.Http.Headers;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
-using Microsoft.AspNetCore.Http.HttpResults;
-using System.Drawing.Drawing2D;
namespace BMA.EHR.Placement.Service.Controllers
{
@@ -1879,5 +1874,229 @@ namespace BMA.EHR.Placement.Service.Controllers
return Success();
}
+ ///
+ /// ออกคำสั่ง C-PM-03
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPost("appoint/report/excecute")]
+ public async Task> PostReportExecuteAppoint([FromBody] ReportExecuteRequest req)
+ {
+ // create new profile
+ foreach (var recv in req.refIds)
+ {
+ var placementProfile = await _context.PlacementProfiles
+ .FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId));
+ if (placementProfile == null)
+ continue;
+
+ var baseAPI = _configuration["API"];
+ var apiUrlSalary = $"{baseAPI}/org/profile/salary";
+ using (var client = new HttpClient())
+ {
+ client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
+ client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
+ var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlSalary);
+ var _res = await client.PostAsJsonAsync(apiUrlSalary, new
+ {
+ profileId = placementProfile.profileId,
+ date = recv.commandAffectDate,
+ amount = recv.amount,
+ positionSalaryAmount = recv.positionSalaryAmount,
+ mouthSalaryAmount = recv.mouthSalaryAmount,
+ posNo = placementProfile.posMasterNo == null ? "" :
+ placementProfile.node == 4 ? $"{placementProfile.child4ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 3 ? $"{placementProfile.child3ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 2 ? $"{placementProfile.child2ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 1 ? $"{placementProfile.child1ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 0 ? $"{placementProfile.rootShortName}{placementProfile.posMasterNo}" : "",
+ position = placementProfile.positionName,
+ positionLine = "",
+ positionPathSide = "",
+ positionExecutive = "",
+ positionType = placementProfile.posTypeName,
+ positionLevel = placementProfile.posLevelName,
+ refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}",
+ templateDoc = recv.templateDoc,
+ });
+ var _result = await _res.Content.ReadAsStringAsync();
+ }
+
+ var baseAPIOrg = _configuration["API"];
+ var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current";
+ using (var client = new HttpClient())
+ {
+ client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
+ client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
+ var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlOrg);
+ var _res = await client.PostAsJsonAsync(apiUrlOrg, new
+ {
+ posmasterId = placementProfile.posmasterId,
+ positionId = placementProfile.positionId,
+ profileId = placementProfile.profileId,
+ });
+ var _result = await _res.Content.ReadAsStringAsync();
+ }
+
+ // update placementstatus
+ placementProfile.PlacementStatus = "CONTAIN";
+
+ await _context.SaveChangesAsync();
+ }
+ return Success();
+ }
+
+ ///
+ /// ออกคำสั่ง C-PM-04
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPost("move/report/excecute")]
+ public async Task> PostReportExecuteMove([FromBody] ReportExecuteRequest req)
+ {
+ // create new profile
+ foreach (var recv in req.refIds)
+ {
+ var placementProfile = await _context.PlacementProfiles
+ .FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId));
+ if (placementProfile == null)
+ continue;
+
+ var baseAPI = _configuration["API"];
+ var apiUrlSalary = $"{baseAPI}/org/profile/salary";
+ using (var client = new HttpClient())
+ {
+ client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
+ client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
+ var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlSalary);
+ var _res = await client.PostAsJsonAsync(apiUrlSalary, new
+ {
+ profileId = placementProfile.profileId,
+ date = recv.commandAffectDate,
+ amount = recv.amount,
+ positionSalaryAmount = recv.positionSalaryAmount,
+ mouthSalaryAmount = recv.mouthSalaryAmount,
+ posNo = placementProfile.posMasterNo == null ? "" :
+ placementProfile.node == 4 ? $"{placementProfile.child4ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 3 ? $"{placementProfile.child3ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 2 ? $"{placementProfile.child2ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 1 ? $"{placementProfile.child1ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 0 ? $"{placementProfile.rootShortName}{placementProfile.posMasterNo}" : "",
+ position = placementProfile.positionName,
+ positionLine = "",
+ positionPathSide = "",
+ positionExecutive = "",
+ positionType = placementProfile.posTypeName,
+ positionLevel = placementProfile.posLevelName,
+ refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}",
+ templateDoc = recv.templateDoc,
+ });
+ var _result = await _res.Content.ReadAsStringAsync();
+ }
+
+ var baseAPIOrg = _configuration["API"];
+ var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current";
+ using (var client = new HttpClient())
+ {
+ client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
+ client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
+ var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlOrg);
+ var _res = await client.PostAsJsonAsync(apiUrlOrg, new
+ {
+ posmasterId = placementProfile.posmasterId,
+ positionId = placementProfile.positionId,
+ profileId = placementProfile.profileId,
+ });
+ var _result = await _res.Content.ReadAsStringAsync();
+ }
+
+ // update placementstatus
+ placementProfile.PlacementStatus = "CONTAIN";
+
+ await _context.SaveChangesAsync();
+ }
+ return Success();
+ }
+
+ ///
+ /// ออกคำสั่ง C-PM-39
+ ///
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPost("slip/report/excecute")]
+ public async Task> PostReportExecuteSlip([FromBody] ReportExecuteRequest req)
+ {
+ // create new profile
+ foreach (var recv in req.refIds)
+ {
+ var placementProfile = await _context.PlacementProfiles
+ .FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId));
+ if (placementProfile == null)
+ continue;
+
+ var baseAPI = _configuration["API"];
+ var apiUrlSalary = $"{baseAPI}/org/profile/salary";
+ using (var client = new HttpClient())
+ {
+ client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
+ client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
+ var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlSalary);
+ var _res = await client.PostAsJsonAsync(apiUrlSalary, new
+ {
+ profileId = placementProfile.profileId,
+ date = recv.commandAffectDate,
+ amount = recv.amount,
+ positionSalaryAmount = recv.positionSalaryAmount,
+ mouthSalaryAmount = recv.mouthSalaryAmount,
+ posNo = placementProfile.posMasterNo == null ? "" :
+ placementProfile.node == 4 ? $"{placementProfile.child4ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 3 ? $"{placementProfile.child3ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 2 ? $"{placementProfile.child2ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 1 ? $"{placementProfile.child1ShortName}{placementProfile.posMasterNo}" :
+ placementProfile.node == 0 ? $"{placementProfile.rootShortName}{placementProfile.posMasterNo}" : "",
+ position = placementProfile.positionName,
+ positionLine = "",
+ positionPathSide = "",
+ positionExecutive = "",
+ positionType = placementProfile.posTypeName,
+ positionLevel = placementProfile.posLevelName,
+ refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}",
+ templateDoc = recv.templateDoc,
+ });
+ var _result = await _res.Content.ReadAsStringAsync();
+ }
+
+ var baseAPIOrg = _configuration["API"];
+ var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current";
+ using (var client = new HttpClient())
+ {
+ client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
+ client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
+ var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlOrg);
+ var _res = await client.PostAsJsonAsync(apiUrlOrg, new
+ {
+ posmasterId = placementProfile.posmasterId,
+ positionId = placementProfile.positionId,
+ profileId = placementProfile.profileId,
+ });
+ var _result = await _res.Content.ReadAsStringAsync();
+ }
+
+ // update placementstatus
+ placementProfile.PlacementStatus = "CONTAIN";
+
+ await _context.SaveChangesAsync();
+ }
+ return Success();
+ }
}
}
diff --git a/BMA.EHR.Placement.Service/Requests/ReportExecuteRequest.cs b/BMA.EHR.Placement.Service/Requests/ReportExecuteRequest.cs
index fc5b180c..7718c354 100644
--- a/BMA.EHR.Placement.Service/Requests/ReportExecuteRequest.cs
+++ b/BMA.EHR.Placement.Service/Requests/ReportExecuteRequest.cs
@@ -14,5 +14,8 @@ namespace BMA.EHR.Placement.Service.Requests
public string? commandNo { get; set; }
public int commandYear { get; set; }
public string? templateDoc { get; set; }
+ public double? amount { get; set; }
+ public double? positionSalaryAmount { get; set; }
+ public double? mouthSalaryAmount { get; set; }
}
}