From d0e39e385befd097f69a3b1eacd1fe94962debb9 Mon Sep 17 00:00:00 2001 From: Bright Date: Thu, 29 May 2025 12:07:49 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=80=E0=B8=9B=E0=B8=A5=E0=B8=B5=E0=B9=88?= =?UTF-8?q?=E0=B8=A2=E0=B8=99=20Method=20=E0=B9=80=E0=B8=AA=E0=B9=89?= =?UTF-8?q?=E0=B8=99=E0=B8=AD=E0=B8=B1=E0=B8=9E=E0=B9=80=E0=B8=94=E0=B8=97?= =?UTF-8?q?=20mark?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/InsigniaRequestController.cs | 37 ++++--------------- .../Requests/UpdateInsigniaRequestProfile.cs | 12 ++++++ 2 files changed, 19 insertions(+), 30 deletions(-) create mode 100644 BMA.EHR.Insignia/Requests/UpdateInsigniaRequestProfile.cs diff --git a/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs b/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs index 4bce56a2..d3d81065 100644 --- a/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs +++ b/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs @@ -3139,58 +3139,35 @@ namespace BMA.EHR.Insignia.Service.Controllers /// /// อัพเดทสถานะ Mark (โทษทางวินัย, ไม่ได้เลื่อนเงินเดือน/ไม่ได้เลื่อนขั้น (เนื่องจากลาเกิน), ผลการประเมินการปฏิบัติราชการในรอบ 5 ปี, ข้อมูลเครื่องราชฯ) /// - /// Id รอบเครื่องราช /// /// /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน - [HttpGet("update/{insigniaPeriodId:length(36)}")] - public async Task> InsigniaRequestUpdateMark(Guid insigniaPeriodId) + [HttpPut("update")] + public async Task> InsigniaRequestUpdateMark([FromBody] UpdateInsigniaRequestProfile req) { try { var insigniaPeriod = await _context.InsigniaPeriods - .Include(x => x.InsigniaRequests) - .Include(x => x.InsigniaEmployees) - .FirstOrDefaultAsync(x => x.Id == insigniaPeriodId); + .Include(x => x.InsigniaRequests.Where(r => r.OrganizationId == req.agencyId)) + .FirstOrDefaultAsync(x => x.Id == req.insigniaPeriodId); if (insigniaPeriod == null) return Error(GlobalMessages.InsigniaRequestNotFound); if (insigniaPeriod.InsigniaRequests.Count > 0) { - //var allProfileIds = new List(); - //var allProfileEmpIds = new List(); + foreach (var InsigniaRequest in insigniaPeriod.InsigniaRequests) { var profiles = await _context.Set() - .Where(p => p.Request.Id == InsigniaRequest.Id && p.ProfileType.Trim().ToUpper() == "OFFICER").Select(x => x.ProfileId.ToString()).ToListAsync(); - - var profileEmps = await _context.Set() - .Where(p => p.Request.Id == InsigniaRequest.Id && p.ProfileType.Trim().ToUpper() == "EMPLOYEE").Select(x => x.ProfileId.ToString()).ToListAsync(); + .Where(p => p.Request.Id == InsigniaRequest.Id && p.ProfileType == req.type.Trim().ToUpper()).Select(x => x.ProfileId.ToString()).ToListAsync(); if (profiles.Count > 0) { - //allProfileIds.AddRange(profiles); - await _insigniaPeriodRepository.UpdateInsigniaRequestProfile(profiles.ToArray(), "OFFICER"); - } - - if (profileEmps.Count > 0) - { - //allProfileEmpIds.AddRange(profileEmps); - await _insigniaPeriodRepository.UpdateInsigniaRequestProfile(profileEmps.ToArray(), "EMPLOYEE"); + await _insigniaPeriodRepository.UpdateInsigniaRequestProfile(profiles.ToArray(), req.type.Trim().ToUpper()); } } - - //if (allProfileIds.Count > 0) - //{ - // await _insigniaPeriodRepository.UpdateInsigniaRequestProfile(allProfileIds.ToArray(), "OFFICER"); - //} - - //if (allProfileEmpIds.Count > 0) - //{ - // await _insigniaPeriodRepository.UpdateInsigniaRequestProfile(allProfileEmpIds.ToArray(), "EMPLOYEE"); - //} } return Success(); diff --git a/BMA.EHR.Insignia/Requests/UpdateInsigniaRequestProfile.cs b/BMA.EHR.Insignia/Requests/UpdateInsigniaRequestProfile.cs new file mode 100644 index 00000000..50c79940 --- /dev/null +++ b/BMA.EHR.Insignia/Requests/UpdateInsigniaRequestProfile.cs @@ -0,0 +1,12 @@ +using BMA.EHR.Domain.Models.MetaData; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Insignia.Service.Requests +{ + public class UpdateInsigniaRequestProfile + { + public Guid insigniaPeriodId { get; set; } + public Guid agencyId { get; set; } + public string type { get; set; } + } +} \ No newline at end of file