diff --git a/BMA.EHR.Application/Repositories/Commands/CommandReportRepository.cs b/BMA.EHR.Application/Repositories/Commands/CommandReportRepository.cs index c15789c7..84c2ac50 100644 --- a/BMA.EHR.Application/Repositories/Commands/CommandReportRepository.cs +++ b/BMA.EHR.Application/Repositories/Commands/CommandReportRepository.cs @@ -754,8 +754,9 @@ namespace BMA.EHR.Application.Repositories.Commands Seq = r.Sequence.ToString().ToThaiNumber(), CitizenId = r.CitizenId, FullName = $"{r.Prefix}{r.FirstName} {r.LastName}", - PositionName = p.Profile.Position == null ? "" : p.Profile.Position.Name, - Organization = p.Organization, + PositionName = p.OrganizationPositionOld, + // PositionName = p.Profile.Position == null ? "" : p.Profile.Position.Name, + Organization = p.Organization == null ? "" : p.Organization, StartDate = p.DateStart == null ? "" : p.DateStart.Value.ToThaiShortDate2().ToThaiNumber(), EndDate = p.DateEnd == null ? "" : p.DateEnd.Value.ToThaiShortDate2().ToThaiNumber(), Reason = p.Reason == null ? "" : p.Reason.ToThaiNumber() diff --git a/BMA.EHR.Application/Repositories/Commands/CommandRepository.cs b/BMA.EHR.Application/Repositories/Commands/CommandRepository.cs index c93422b0..40a18302 100644 --- a/BMA.EHR.Application/Repositories/Commands/CommandRepository.cs +++ b/BMA.EHR.Application/Repositories/Commands/CommandRepository.cs @@ -6510,15 +6510,14 @@ namespace BMA.EHR.Application.Repositories.Commands case "C-PM-01": case "C-PM-02": case "C-PM-03": - case "c-PM-04": + case "C-PM-04": salary = await GetPlacementSalaryAsync(item.RefPlacementProfileId.Value); break; default: - salary = await GetCommandReceiverSalary(item.RefPlacementProfileId.Value); + salary = await GetCommandReceiverSalary(item.RefPlacementProfileId.Value, item.Amount, item.MouthSalaryAmount, item.PositionSalaryAmount); break; } - var receiver = new CommandReceiver { Sequence = seq, @@ -7090,27 +7089,29 @@ namespace BMA.EHR.Application.Repositories.Commands #region " Placement " - public async Task GetCommandReceiverSalary(Guid recordId) + public async Task GetCommandReceiverSalary(Guid recordId, Double? _Amount, Double? _MouthSalaryAmount, Double? _PositionSalaryAmount) { try { var cmdReceiver = await _dbContext.Set() .FirstOrDefaultAsync(x => x.Id == recordId); + double SalaryAmount = 0; + double PositionSalaryAmount = 0; + double MonthSalaryAmount = 0; + if (cmdReceiver == null) + { return new PlacementSalaryResponse { - SalaryAmount = 0, - PositionSalaryAmount = 0, - MonthSalaryAmount = 0 + SalaryAmount = _Amount == null ? 0 : _Amount.Value, + PositionSalaryAmount = _MouthSalaryAmount == null ? 0 : _MouthSalaryAmount.Value, + MonthSalaryAmount = _PositionSalaryAmount == null ? 0 : _PositionSalaryAmount.Value, }; + } var profile = await _dbContext.Set() .Include(x => x.Salaries) .FirstOrDefaultAsync(p => p.CitizenId == cmdReceiver.CitizenId); - double? SalaryAmount = 0; - double? PositionSalaryAmount = 0; - double? MonthSalaryAmount = 0; - if (profile != null && profile.Salaries != null && profile.Salaries.Count() > 0) { SalaryAmount = profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount != null ? profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount.Value : 0; @@ -7120,9 +7121,9 @@ namespace BMA.EHR.Application.Repositories.Commands return new PlacementSalaryResponse { - SalaryAmount = cmdReceiver.Amount != null && cmdReceiver.Amount != 0 ? cmdReceiver.Amount.Value : SalaryAmount ?? 0, - PositionSalaryAmount = cmdReceiver.PositionSalaryAmount != null && cmdReceiver.PositionSalaryAmount != 0 ? cmdReceiver.PositionSalaryAmount.Value : PositionSalaryAmount ?? 0, - MonthSalaryAmount = cmdReceiver.MouthSalaryAmount != null && cmdReceiver.MouthSalaryAmount != 0 ? cmdReceiver.MouthSalaryAmount.Value : MonthSalaryAmount ?? 0, + SalaryAmount = cmdReceiver.Amount != null && cmdReceiver.Amount != 0 ? cmdReceiver.Amount.Value : SalaryAmount, + PositionSalaryAmount = cmdReceiver.PositionSalaryAmount != null && cmdReceiver.PositionSalaryAmount != 0 ? cmdReceiver.PositionSalaryAmount.Value : PositionSalaryAmount, + MonthSalaryAmount = cmdReceiver.MouthSalaryAmount != null && cmdReceiver.MouthSalaryAmount != 0 ? cmdReceiver.MouthSalaryAmount.Value : MonthSalaryAmount, }; } catch diff --git a/BMA.EHR.Command.Service/Controllers/OrderController.cs b/BMA.EHR.Command.Service/Controllers/OrderController.cs index 127c81c2..3ab913ce 100644 --- a/BMA.EHR.Command.Service/Controllers/OrderController.cs +++ b/BMA.EHR.Command.Service/Controllers/OrderController.cs @@ -2929,7 +2929,7 @@ namespace BMA.EHR.Command.Service.Controllers { foreach (var r in receivers) { - var salary = await _repository.GetCommandReceiverSalary(r.PersonalId); + var salary = await _repository.GetCommandReceiverSalary(r.PersonalId, r.SalaryAmount, r.MonthSalaryAmount, r.PositionSalaryAmount); r.SalaryAmount = salary.SalaryAmount; r.PositionSalaryAmount = salary.PositionSalaryAmount; r.MonthSalaryAmount = salary.MonthSalaryAmount; @@ -3001,7 +3001,7 @@ namespace BMA.EHR.Command.Service.Controllers { foreach (var r in receivers) { - var salary = await _repository.GetCommandReceiverSalary(r.PersonalId); + var salary = await _repository.GetCommandReceiverSalary(r.PersonalId, r.SalaryAmount, r.MonthSalaryAmount, r.PositionSalaryAmount); r.SalaryAmount = salary.SalaryAmount; r.PositionSalaryAmount = salary.PositionSalaryAmount; r.MonthSalaryAmount = salary.MonthSalaryAmount; @@ -3345,7 +3345,7 @@ namespace BMA.EHR.Command.Service.Controllers var payload_str = JsonConvert.SerializeObject(payload); - return Success(payload_str); + return Success(payload_str); } catch { @@ -3579,7 +3579,7 @@ namespace BMA.EHR.Command.Service.Controllers data = await _repository.GetPlacementSalaryAsync(record!.RefPlacementProfileId!.Value); break; default: - data = await _repository.GetCommandReceiverSalary(personalId); + data = await _repository.GetCommandReceiverSalary(personalId, record.Amount, record.MouthSalaryAmount, record.PositionSalaryAmount); break; } diff --git a/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs b/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs index bdeebf5e..90f9eafe 100644 --- a/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs +++ b/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs @@ -1006,7 +1006,15 @@ namespace BMA.EHR.Insignia.Service.Controllers .Where(x => x.OrganizationPosition.Organization.OrganizationAgencyId != null) .Select(x => x.OrganizationPosition.Organization.OrganizationAgencyId) .FirstOrDefaultAsync(); - + if (orgProfile == null) + { + orgProfile = await _context.ProfilePositions + .Where(x => x.Profile == profile) + .Where(x => x.OrganizationPosition != null) + .Where(x => x.OrganizationPosition.Organization != null) + .Select(x => x.OrganizationPosition.Organization.Id) + .FirstOrDefaultAsync(); + } return Success(orgProfile); }