From 89c7b6e239b4cbaa579d0e3a7075666f43673287 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Thu, 31 Aug 2023 10:26:53 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=81=E0=B8=81=E0=B9=89=E0=B9=84=E0=B8=82?= =?UTF-8?q?=E0=B8=9A=E0=B8=B1=E0=B9=89=E0=B8=81=20api=20=E0=B8=84=E0=B8=B3?= =?UTF-8?q?=E0=B8=AA=E0=B8=B1=E0=B9=88=E0=B8=87=20=E0=B9=80=E0=B8=A5?= =?UTF-8?q?=E0=B8=B7=E0=B8=AD=E0=B8=81=E0=B8=A3=E0=B8=B2=E0=B8=A2=E0=B8=8A?= =?UTF-8?q?=E0=B8=B7=E0=B9=88=E0=B8=AD=E0=B9=80=E0=B8=9E=E0=B8=B7=E0=B9=88?= =?UTF-8?q?=E0=B8=AD=E0=B8=97=E0=B8=B3=E0=B8=84=E0=B8=B3=E0=B8=AA=E0=B8=B1?= =?UTF-8?q?=E0=B9=88=E0=B8=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Commands/CommandRepository.cs | 11 ++-- .../Controllers/OrderController.cs | 57 ++++++++++++++----- 2 files changed, 49 insertions(+), 19 deletions(-) diff --git a/BMA.EHR.Application/Repositories/Commands/CommandRepository.cs b/BMA.EHR.Application/Repositories/Commands/CommandRepository.cs index fa489c66..f0a39509 100644 --- a/BMA.EHR.Application/Repositories/Commands/CommandRepository.cs +++ b/BMA.EHR.Application/Repositories/Commands/CommandRepository.cs @@ -289,7 +289,6 @@ namespace BMA.EHR.Application.Repositories.Commands .Where(x => !otherCommandReceivers.Contains(x.CitizenId!)) .Where(x => x.PlacementStatus.Trim().ToUpper() == "PREPARE-CONTAIN") .Where(x => x.Draft! == true) - // .Where(x => x.Placement!.PlacementType!.Name != "สอบแข่งขัน") .OrderBy(x => x.ExamNumber) .ToListAsync(); @@ -298,7 +297,7 @@ namespace BMA.EHR.Application.Repositories.Commands foreach (var item in appointPeople) { var profile_oc = await GetProfileOrganizationAsync(item.CitizenId!); - if ((await CheckIsActiveOfficerAsync(item.CitizenId!)) && item.OrganizationPosition!.Organization!.Id == profile_oc) + if (await CheckIsActiveOfficerAsync(item.CitizenId!)) { var receiver = new CommandReceiver { @@ -351,11 +350,9 @@ namespace BMA.EHR.Application.Repositories.Commands .Include(x => x.Prefix) .Include(x => x.OrganizationPosition) .ThenInclude(x => x!.Organization) - //.Where(x => x.OrganizationPosition!.Organization!.Id == command.OwnerGovId) .Where(x => !otherCommandReceivers.Contains(x.CitizenId!)) .Where(x => x.PlacementStatus.Trim().ToUpper() == "PREPARE-CONTAIN") .Where(x => x.Draft! == true) - // .Where(x => x.Placement!.PlacementType!.Name != "สอบแข่งขัน") .OrderBy(x => x.ExamNumber) .ToListAsync(); @@ -364,7 +361,7 @@ namespace BMA.EHR.Application.Repositories.Commands foreach (var item in appointPeople) { var profile_oc = await GetProfileOrganizationAsync(item.CitizenId!); - if ((await CheckIsActiveOfficerAsync(item.CitizenId!)) && item.OrganizationPosition!.Organization!.Id != profile_oc) + if (await CheckIsActiveOfficerAsync(item.CitizenId!)) { var receiver = new CommandReceiver { @@ -531,13 +528,15 @@ namespace BMA.EHR.Application.Repositories.Commands .ToListAsync(); // 2. Query - var appointPeople = await _dbContext.Set() + var appointPeople = await _dbContext.Set() + .Include(x => x.CommandType) .Include(x => x.Prefix) .Include(x => x.OrganizationPosition) .ThenInclude(x => x!.Organization) //.Where(x => x.OrganizationPosition!.Organization!.Id == command.OwnerGovId) .Where(x => !otherCommandReceivers.Contains(x.CitizenId!)) .Where(x => x.Status.Trim().ToUpper() == "REPORT") + .Where(x => x.CommandType!.Id == command.CommandType!.Id) .OrderBy(x => x.CitizenId) .ToListAsync(); diff --git a/BMA.EHR.Command.Service/Controllers/OrderController.cs b/BMA.EHR.Command.Service/Controllers/OrderController.cs index 7388b71a..88b79589 100644 --- a/BMA.EHR.Command.Service/Controllers/OrderController.cs +++ b/BMA.EHR.Command.Service/Controllers/OrderController.cs @@ -2484,6 +2484,10 @@ namespace BMA.EHR.Command.Service.Controllers { try { + var command = await _repository.GetByIdAsync(orderId); + if (command == null) + throw new Exception(GlobalMessages.CommandNotFound); + // TODO : หาค่า Education มาแสดง var existed = await _repository.GetReceiverByCommmandIdAsync(orderId); @@ -2500,13 +2504,25 @@ namespace BMA.EHR.Command.Service.Controllers Education = "" // ยังหาไม่เจอว่าอยุ่ field ไหน }).ToList(); - foreach (var r in receivers) + // ให้ Update Salary เฉพาะของ Command 01-04 + switch (command.CommandType.CommandCode.ToUpper()) { - var salary = await _repository.GetPlacementSalaryAsync(r.RefRecordId); - - r.SalaryAmount = salary.SalaryAmount; - r.PositionSalaryAmount = salary.PositionSalaryAmount; - r.MonthSalaryAmount = salary.MonthSalaryAmount; + case "C-PM-01": + case "C-PM-02": + case "C-PM-03": + case "c-PM-04": + { + foreach (var r in receivers) + { + var salary = await _repository.GetPlacementSalaryAsync(r.RefRecordId); + r.SalaryAmount = salary.SalaryAmount; + r.PositionSalaryAmount = salary.PositionSalaryAmount; + r.MonthSalaryAmount = salary.MonthSalaryAmount; + } + } + break; + default: + break; } return Success(receivers); @@ -2534,8 +2550,12 @@ namespace BMA.EHR.Command.Service.Controllers { try { + var command = await _repository.GetByIdAsync(orderId); + if (command == null) + throw new Exception(GlobalMessages.CommandNotFound); + var receivers = (await _repository.GetReceiverByCommmandIdAsync(orderId)) - .OrderBy(x => x.Sequence) + .OrderBy(x => x.Sequence) .Select(r => new CommandReceiverResponse { RefRecordId = r.RefPlacementProfileId!.Value, @@ -2547,13 +2567,24 @@ namespace BMA.EHR.Command.Service.Controllers Education = "" // ยังหาไม่เจอว่าอยุ่ field ไหน }).ToList(); - foreach (var r in receivers) + // ให้ Update Salary เฉพาะของ Command 01-04 + switch (command.CommandType.CommandCode.ToUpper()) { - var salary = await _repository.GetPlacementSalaryAsync(r.RefRecordId); - - r.SalaryAmount = salary.SalaryAmount; - r.PositionSalaryAmount = salary.PositionSalaryAmount; - r.MonthSalaryAmount = salary.MonthSalaryAmount; + case "C-PM-01": + case "C-PM-02": + case "C-PM-03": + case "c-PM-04": + { + foreach (var r in receivers) + { + var salary = await _repository.GetPlacementSalaryAsync(r.RefRecordId); + r.SalaryAmount = salary.SalaryAmount; + r.PositionSalaryAmount = salary.PositionSalaryAmount; + r.MonthSalaryAmount = salary.MonthSalaryAmount; + } + break; + } + default: break; } return Success(receivers);