From 8d58afdcde96920ad404ce000421f91c9cf3459d Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Sat, 29 Jun 2024 11:37:02 +0700 Subject: [PATCH] =?UTF-8?q?fix=20=E0=B8=9B=E0=B8=A3=E0=B8=B1=E0=B8=9A?= =?UTF-8?q?=E0=B8=84=E0=B8=B3=E0=B8=99=E0=B8=A7=E0=B8=99=E0=B9=80=E0=B8=84?= =?UTF-8?q?=E0=B8=A3=E0=B8=B7=E0=B9=88=E0=B8=AD=E0=B8=87=E0=B8=A3=E0=B8=B2?= =?UTF-8?q?=E0=B8=8A=E0=B8=A2=E0=B9=8C=20=E0=B9=83=E0=B8=AB=E0=B9=89?= =?UTF-8?q?=E0=B9=80=E0=B8=8A=E0=B9=87=E0=B8=84=E0=B9=80=E0=B8=87=E0=B8=B7?= =?UTF-8?q?=E0=B9=88=E0=B8=AD=E0=B8=99=E0=B9=84=E0=B8=82=E0=B8=82=E0=B8=AD?= =?UTF-8?q?=E0=B8=87=E0=B8=82=E0=B9=89=E0=B8=AD=E0=B8=A1=E0=B8=B9=E0=B8=A5?= =?UTF-8?q?=E0=B8=AD=E0=B8=A2=E0=B9=88=E0=B8=B2=E0=B8=87=E0=B8=84=E0=B8=A3?= =?UTF-8?q?=E0=B8=9A=E0=B8=96=E0=B9=89=E0=B8=A7=E0=B8=99=20(=E0=B8=81?= =?UTF-8?q?=E0=B8=A3=E0=B8=AD=E0=B8=87=E0=B8=95=E0=B8=B2=E0=B8=A1=E0=B9=80?= =?UTF-8?q?=E0=B8=87=E0=B8=B7=E0=B9=88=E0=B8=AD=E0=B8=99=E0=B9=84=E0=B8=82?= =?UTF-8?q?=E0=B9=81=E0=B8=A5=E0=B9=89=E0=B8=A7=20null=20object=20?= =?UTF-8?q?=E0=B9=81=E0=B8=A5=E0=B9=89=E0=B8=A7=E0=B9=84=E0=B8=A1=E0=B9=88?= =?UTF-8?q?=E0=B9=84=E0=B8=94=E0=B9=89=E0=B8=95=E0=B8=A3=E0=B8=A7=E0=B8=88?= =?UTF-8?q?=E0=B8=AA=E0=B8=AD=E0=B8=9A)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repositories/InsigniaPeriodsRepository.cs | 894 ++++++++++++++---- 1 file changed, 689 insertions(+), 205 deletions(-) diff --git a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs index e4714c8f..80f7354c 100644 --- a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs +++ b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs @@ -20,7 +20,7 @@ namespace BMA.EHR.Application.Repositories private readonly IHttpContextAccessor _httpContextAccessor; private readonly MinIOService _documentService; private readonly UserProfileRepository _userProfileRepository; - + private List _insigniaLists = new(); public InsigniaPeriodsRepository(IApplicationDBContext dbContext, @@ -32,6 +32,8 @@ namespace BMA.EHR.Application.Repositories _httpContextAccessor = httpContextAccessor; _documentService = documentService; _userProfileRepository = userProfileRepository; + + _insigniaLists = _dbContext.Set().Include(x => x.InsigniaType).ToList(); } public async Task> FindByNameAsync(string name) @@ -76,8 +78,7 @@ namespace BMA.EHR.Application.Repositories { try { - var insignia = _dbContext.Set() - .Include(x => x.InsigniaType) + var insignia = _insigniaLists .Where(x => x.Name == name) .Select(i => new InsigniaItem { @@ -89,6 +90,19 @@ namespace BMA.EHR.Application.Repositories }) .FirstOrDefault(); + //var insignia = _dbContext.Set() + // .Include(x => x.InsigniaType) + // .Where(x => x.Name == name) + // .Select(i => new InsigniaItem + // { + // Id = i.Id, + // Name = i.Name, + // ShortName = i.ShortName, + // Level = i.InsigniaType.Name, + // LevelId = i.InsigniaType.Id + // }) + // .FirstOrDefault(); + return insignia; } catch @@ -101,8 +115,7 @@ namespace BMA.EHR.Application.Repositories { try { - var insignia = _dbContext.Set() - .Include(x => x.InsigniaType) + var insignia = _insigniaLists .Where(x => x.Id == id) .Select(i => new InsigniaItem { @@ -114,6 +127,19 @@ namespace BMA.EHR.Application.Repositories }) .FirstOrDefault(); + //var insignia = _dbContext.Set() + // .Include(x => x.InsigniaType) + // .Where(x => x.Id == id) + // .Select(i => new InsigniaItem + // { + // Id = i.Id, + // Name = i.Name, + // ShortName = i.ShortName, + // Level = i.InsigniaType.Name, + // LevelId = i.InsigniaType.Id + // }) + // .FirstOrDefault(); + return insignia; } catch @@ -283,8 +309,10 @@ namespace BMA.EHR.Application.Repositories LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : - p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, }); @@ -353,7 +381,10 @@ namespace BMA.EHR.Application.Repositories LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() @@ -422,7 +453,11 @@ namespace BMA.EHR.Application.Repositories LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() @@ -581,7 +616,10 @@ namespace BMA.EHR.Application.Repositories LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, }); @@ -648,7 +686,11 @@ namespace BMA.EHR.Application.Repositories LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() @@ -716,7 +758,11 @@ namespace BMA.EHR.Application.Repositories LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() @@ -874,11 +920,19 @@ namespace BMA.EHR.Application.Repositories PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id, PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, Gender = p.Gender ?? "", - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, }); @@ -917,6 +971,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && p.PosLevel.PosLevelName == "ปฏิบัติงาน" + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("เบญจมาภรณ์ช้างเผือก").Id @@ -929,10 +985,18 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia @@ -978,6 +1042,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && p.PosLevel.PosLevelName == "ปฏิบัติงาน" + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย").Id @@ -990,13 +1056,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1033,6 +1108,8 @@ namespace BMA.EHR.Application.Repositories var s4 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && p.PosLevel.PosLevelName == "ปฏิบัติงาน" + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("จัตุรถาภรณ์ช้างเผือก").Id @@ -1045,13 +1122,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1198,6 +1284,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && p.PosLevel.PosLevelName == "ชำนาญงาน" + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ตริตาภรณ์มงกุฎไทย").Id @@ -1210,13 +1298,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1257,6 +1354,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && p.PosLevel.PosLevelName == "ชำนาญงาน" + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ตริตาภรณ์ช้างเผือก").Id @@ -1269,13 +1368,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1283,8 +1391,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญงาน").OrderBy(p => p.Date).FirstOrDefault().Date + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญงาน").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญงาน").OrderBy(p => p.Date).FirstOrDefault().Date }) .ToList() .Where(x => x.FirstPositonLevelDate < new DateTime(period.Year - 5, 5, 29)) @@ -1383,7 +1492,9 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" - && p.PosLevel.PosLevelName == "ชำนาญงาน" + && p.PosLevel.PosLevelName == "อาวุโส" + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย").Id @@ -1396,13 +1507,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1410,8 +1530,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date }) .ToList() .Select(p => new InsigniaResultSet @@ -1443,7 +1564,9 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" - && p.PosLevel.PosLevelName == "ชำนาญงาน" + && p.PosLevel.PosLevelName == "อาวุโส" + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id @@ -1456,13 +1579,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1470,7 +1602,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date }) .ToList() @@ -1571,6 +1704,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && (p.PosLevel.PosLevelName == "อาวุโส" || p.PosLevel.PosLevelName == "อาวุโส (เฉพาะสายงาน)") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id @@ -1583,13 +1718,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1597,7 +1741,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date }) .ToList() @@ -1631,6 +1776,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && (p.PosLevel.PosLevelName == "อาวุโส" || p.PosLevel.PosLevelName == "อาวุโส (เฉพาะสายงาน)") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id @@ -1643,13 +1790,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1657,7 +1813,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -1695,6 +1852,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && (p.PosLevel.PosLevelName == "อาวุโส" || p.PosLevel.PosLevelName == "อาวุโส (เฉพาะสายงาน)") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id @@ -1707,13 +1866,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1721,7 +1889,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -1858,13 +2027,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1872,7 +2050,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -1956,6 +2135,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ชำนาญการ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ตริตาภรณ์ช้างเผือก").Id @@ -1968,13 +2149,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1982,8 +2172,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2019,6 +2210,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ชำนาญการ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย").Id @@ -2031,13 +2224,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2045,8 +2247,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2083,6 +2286,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ชำนาญการ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id @@ -2095,13 +2300,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2109,8 +2323,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2232,6 +2447,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ชำนาญการพิเศษ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id @@ -2244,13 +2461,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2258,8 +2484,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการพิเศษ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการพิเศษ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2295,6 +2522,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ชำนาญการพิเศษ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id @@ -2307,13 +2536,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2321,8 +2559,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการพิเศษ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการพิเศษ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2432,6 +2671,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "เชี่ยวชาญ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id @@ -2444,13 +2685,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2458,8 +2708,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2496,6 +2747,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "เชี่ยวชาญ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id @@ -2508,13 +2761,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2522,8 +2784,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2561,6 +2824,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "เชี่ยวชาญ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id @@ -2573,13 +2838,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2587,8 +2861,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2710,6 +2985,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id @@ -2722,14 +2999,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2738,7 +3024,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2780,6 +3067,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id @@ -2792,14 +3081,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.PosNo == null ? "" : p.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2807,8 +3105,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2852,6 +3151,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id @@ -2864,14 +3165,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2880,7 +3190,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3007,6 +3318,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id @@ -3019,14 +3332,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3035,7 +3357,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3077,6 +3400,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id @@ -3089,14 +3414,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3105,6 +3439,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3148,6 +3483,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id @@ -3160,14 +3497,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3176,7 +3522,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3300,6 +3647,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "อำนวยการ" && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id @@ -3312,14 +3661,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.PosNo == null ? "" : p.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3328,7 +3686,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3364,6 +3723,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "อำนวยการ" && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id @@ -3376,14 +3737,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3392,7 +3762,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3497,6 +3868,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "อำนวยการ" && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id @@ -3509,14 +3882,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3525,7 +3907,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3562,6 +3945,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "อำนวยการ" && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id @@ -3574,14 +3959,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3590,7 +3984,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3628,6 +4023,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "อำนวยการ" && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id @@ -3640,14 +4037,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3656,7 +4062,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3777,6 +4184,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "บริหาร" && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id @@ -3789,14 +4198,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3805,7 +4223,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3842,6 +4261,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "บริหาร" && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id @@ -3854,14 +4275,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3870,7 +4300,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3907,6 +4338,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "บริหาร" && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id @@ -3919,14 +4352,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3935,7 +4377,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -4025,6 +4468,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "บริหาร" && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id @@ -4037,14 +4482,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -4053,7 +4507,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -4095,6 +4550,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "บริหาร" && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id @@ -4107,14 +4564,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -4123,7 +4589,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -4165,6 +4632,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "บริหาร" && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id @@ -4177,14 +4646,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -4193,7 +4671,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -5041,13 +5520,18 @@ namespace BMA.EHR.Application.Repositories PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id, PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, Gender = p.Gender ?? "", - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? - p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : 0, + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, });