diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
deleted file mode 100644
index a2717841..00000000
--- a/.config/dotnet-tools.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "version": 1,
- "isRoot": true,
- "tools": {
- "csharpier": {
- "version": "0.28.2",
- "commands": [
- "dotnet-csharpier"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/.github/workflows/release_insignia.yaml b/.github/workflows/release_insignia.yaml
index f814c372..a99684f5 100644
--- a/.github/workflows/release_insignia.yaml
+++ b/.github/workflows/release_insignia.yaml
@@ -1,88 +1,88 @@
name: release-dev
run-name: release-dev ${{ github.actor }}
on:
- # push:
- # tags:
- # - 'v[0-9]+.[0-9]+.[0-9]+'
- # tags-ignore:
- # - '2.*'
- # Allow run workflow manually from Action tab
- workflow_dispatch:
+ # push:
+ # tags:
+ # - 'v[0-9]+.[0-9]+.[0-9]+'
+ # tags-ignore:
+ # - '2.*'
+ # Allow run workflow manually from Action tab
+ workflow_dispatch:
env:
- REGISTRY: docker.frappet.com
- IMAGE_NAME: ehr/bma-ehr-insignia-service
- DEPLOY_HOST: frappet.com
- DEPLOY_PORT: 10102
- COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-insignia
- TOKEN_LINE: uxuK5hDzS2DsoC5piJBrWRLiz8GgY7iMZZldOWsDDF0
+ REGISTRY: docker.frappet.com
+ IMAGE_NAME: ehr/bma-ehr-insignia-service
+ DEPLOY_HOST: frappet.com
+ DEPLOY_PORT: 10102
+ COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-insignia
+ TOKEN_LINE: uxuK5hDzS2DsoC5piJBrWRLiz8GgY7iMZZldOWsDDF0
jobs:
- # act workflow_dispatch -W .github/workflows/release_insignia.yaml --input IMAGE_VER=insignia-1.0.0 -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd
- release-dev:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- # skip Set up QEMU because it fail on act and container
- - name: Gen Version
- id: gen_ver
- run: |
- if [[ $GITHUB_REF == 'refs/tags/'* ]]; then
- IMAGE_VER='${GITHUB_REF/refs\/tags\//}'
- else
- IMAGE_VER=${{ github.event.inputs.IMAGE_VER }}
- fi
- if [[ $IMAGE_VER == '' ]]; then
- IMAGE_VER='test-vBeta'
- fi
- echo '::set-output name=image_ver::'$IMAGE_VER
- - name: Test Version
- run: |
- echo $GITHUB_REF
- echo ${{ steps.gen_ver.outputs.image_ver }}
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
- - name: Login in to registry
- uses: docker/login-action@v2
- with:
- registry: ${{env.REGISTRY}}
- username: ${{secrets.DOCKER_USER}}
- password: ${{secrets.DOCKER_PASS}}
- - name: Build and load local docker image
- uses: docker/build-push-action@v3
- with:
- context: .
- platforms: linux/amd64
- file: BMA.EHR.Insignia.Service/Dockerfile
- push: true
- tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest
+ # act workflow_dispatch -W .github/workflows/release_insignia.yaml --input IMAGE_VER=insignia-1.0.0 -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd
+ release-dev:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ # skip Set up QEMU because it fail on act and container
+ - name: Gen Version
+ id: gen_ver
+ run: |
+ if [[ $GITHUB_REF == 'refs/tags/'* ]]; then
+ IMAGE_VER='${GITHUB_REF/refs\/tags\//}'
+ else
+ IMAGE_VER=${{ github.event.inputs.IMAGE_VER }}
+ fi
+ if [[ $IMAGE_VER == '' ]]; then
+ IMAGE_VER='test-vBeta'
+ fi
+ echo '::set-output name=image_ver::'$IMAGE_VER
+ - name: Test Version
+ run: |
+ echo $GITHUB_REF
+ echo ${{ steps.gen_ver.outputs.image_ver }}
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v2
+ - name: Login in to registry
+ uses: docker/login-action@v2
+ with:
+ registry: ${{env.REGISTRY}}
+ username: ${{secrets.DOCKER_USER}}
+ password: ${{secrets.DOCKER_PASS}}
+ - name: Build and load local docker image
+ uses: docker/build-push-action@v3
+ with:
+ context: .
+ platforms: linux/amd64
+ file: BMA.EHR.Insignia/Dockerfile
+ push: true
+ tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest
- - name: Reload docker compose
- uses: appleboy/ssh-action@v0.1.8
- with:
- host: ${{env.DEPLOY_HOST}}
- username: frappet
- password: ${{ secrets.SSH_PASSWORD }}
- port: ${{env.DEPLOY_PORT}}
- script: |
- cd "${{env.COMPOSE_PATH}}"
- docker compose pull
- docker compose up -d
- echo "${{ steps.gen_ver.outputs.image_ver }}"> success
- - uses: snow-actions/line-notify@v1.1.0
- if: success()
- with:
- access_token: ${{ env.TOKEN_LINE }}
- message: |
- -Success✅✅✅
- Image: ${{env.IMAGE_NAME}}
- Version: ${{ github.event.inputs.IMAGE_VER }}
- By: ${{secrets.DOCKER_USER}}
- - uses: snow-actions/line-notify@v1.1.0
- if: failure()
- with:
- access_token: ${{ env.TOKEN_LINE }}
- message: |
- -Failure❌❌❌
- Image: ${{env.IMAGE_NAME}}
- Version: ${{ github.event.inputs.IMAGE_VER }}
- By: ${{secrets.DOCKER_USER}}
+ - name: Reload docker compose
+ uses: appleboy/ssh-action@v0.1.8
+ with:
+ host: ${{env.DEPLOY_HOST}}
+ username: frappet
+ password: ${{ secrets.SSH_PASSWORD }}
+ port: ${{env.DEPLOY_PORT}}
+ script: |
+ cd "${{env.COMPOSE_PATH}}"
+ docker compose pull
+ docker compose up -d
+ echo "${{ steps.gen_ver.outputs.image_ver }}"> success
+ - uses: snow-actions/line-notify@v1.1.0
+ if: success()
+ with:
+ access_token: ${{ env.TOKEN_LINE }}
+ message: |
+ -Success✅✅✅
+ Image: ${{env.IMAGE_NAME}}
+ Version: ${{ github.event.inputs.IMAGE_VER }}
+ By: ${{secrets.DOCKER_USER}}
+ - uses: snow-actions/line-notify@v1.1.0
+ if: failure()
+ with:
+ access_token: ${{ env.TOKEN_LINE }}
+ message: |
+ -Failure❌❌❌
+ Image: ${{env.IMAGE_NAME}}
+ Version: ${{ github.event.inputs.IMAGE_VER }}
+ By: ${{secrets.DOCKER_USER}}
diff --git a/.idea/.idea.BMA.EHR.Solution/.idea/.gitignore b/.idea/.idea.BMA.EHR.Solution/.idea/.gitignore
index 78516dc9..162f34a6 100644
--- a/.idea/.idea.BMA.EHR.Solution/.idea/.gitignore
+++ b/.idea/.idea.BMA.EHR.Solution/.idea/.gitignore
@@ -4,8 +4,8 @@
# Rider ignored files
/contentModel.xml
/.idea.BMA.EHR.Solution.iml
-/projectSettingsUpdater.xml
/modules.xml
+/projectSettingsUpdater.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
diff --git a/.idea/.idea.BMA.EHR.Solution/.idea/aws.xml b/.idea/.idea.BMA.EHR.Solution/.idea/aws.xml
deleted file mode 100644
index b63b642c..00000000
--- a/.idea/.idea.BMA.EHR.Solution/.idea/aws.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BMA.EHR.Application/Repositories/Commands/CommandRepository.cs b/BMA.EHR.Application/Repositories/Commands/CommandRepository.cs
index f2c6a86f..5ad7eb00 100644
--- a/BMA.EHR.Application/Repositories/Commands/CommandRepository.cs
+++ b/BMA.EHR.Application/Repositories/Commands/CommandRepository.cs
@@ -9158,11 +9158,14 @@ namespace BMA.EHR.Application.Repositories.Commands
var raw = JsonConvert.DeserializeObject(apiResult.Result);
if (raw != null)
{
- ret.Add(new KeyValueItemResponse
+ if(raw.result!.rootId != null && raw.result!.root != null)
{
- Id = raw.result!.rootId ?? null,
- Name = raw.result!.root ?? null,
- });
+ ret.Add(new KeyValueItemResponse
+ {
+ Id = raw.result!.rootId ?? null,
+ Name = raw.result!.root ?? null,
+ });
+ }
}
}
// var rootOcId = await GetRootOcIdAsync(UserOrganizationId);
diff --git a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs
index 11ff2103..29d3414b 100644
--- a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs
+++ b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs
@@ -1,6 +1,5 @@
using BMA.EHR.Application.Common.Interfaces;
using BMA.EHR.Application.Requests;
-using BMA.EHR.Domain.Models.HR;
using BMA.EHR.Domain.Models.Insignias;
using BMA.EHR.Domain.Models.MetaData;
using BMA.EHR.Domain.Models.OrganizationEmployee;
@@ -11,6 +10,8 @@ using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
using BMA.EHR.Domain.Models.Organizations;
using Amazon.S3.Model.Internal.MarshallTransformations;
+using BMA.EHR.Application.Responses.Profiles;
+using ProfileInsignia = BMA.EHR.Domain.Models.HR.ProfileInsignia;
namespace BMA.EHR.Application.Repositories
{
@@ -24,9 +25,9 @@ namespace BMA.EHR.Application.Repositories
public InsigniaPeriodsRepository(IApplicationDBContext dbContext,
- MinIOService documentService,
- IHttpContextAccessor httpContextAccessor,
- UserProfileRepository userProfileRepository) : base(dbContext, httpContextAccessor)
+ MinIOService documentService,
+ IHttpContextAccessor httpContextAccessor,
+ UserProfileRepository userProfileRepository) : base(dbContext, httpContextAccessor)
{
_dbContext = dbContext;
_httpContextAccessor = httpContextAccessor;
@@ -57,7 +58,8 @@ namespace BMA.EHR.Application.Repositories
if (oc != null)
ret.Add(oc.Id);
- var child = _dbContext.Set().AsQueryable().Where(x => x.Parent != null && x.Parent.Id == id).ToList();
+ var child = _dbContext.Set().AsQueryable()
+ .Where(x => x.Parent != null && x.Parent.Id == id).ToList();
if (child.Any())
{
foreach (var item in child)
@@ -79,16 +81,16 @@ namespace BMA.EHR.Application.Repositories
try
{
var insignia = _insigniaLists
- .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();
+ .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();
//var insignia = _dbContext.Set()
// .Include(x => x.InsigniaType)
@@ -116,16 +118,16 @@ namespace BMA.EHR.Application.Repositories
try
{
var insignia = _insigniaLists
- .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();
+ .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();
//var insignia = _dbContext.Set()
// .Include(x => x.InsigniaType)
@@ -152,12 +154,14 @@ namespace BMA.EHR.Application.Repositories
{
try
{
- var last_ins = _dbContext.Set().FirstOrDefault(x => x.Name.ToLower().Trim() == last.ToLower().Trim());
+ var last_ins = _dbContext.Set()
+ .FirstOrDefault(x => x.Name.ToLower().Trim() == last.ToLower().Trim());
if (last_ins == null)
return true;
- var req_ins = _dbContext.Set().FirstOrDefault(x => x.Name.ToLower().Trim() == request.ToLower().Trim());
+ var req_ins = _dbContext.Set()
+ .FirstOrDefault(x => x.Name.ToLower().Trim() == request.ToLower().Trim());
if (req_ins == null)
throw new Exception("Invalid Request Insignia!!");
@@ -176,29 +180,39 @@ namespace BMA.EHR.Application.Repositories
return (last.Contains("ตริตาภรณ์มงกุฎไทย")) ? false : true;
else if (request.Contains("ทวีติยาภรณ์มงกุฎไทย"))
return (last.Contains("ตริตาภรณ์มงกุฎไทย") ||
- last.Contains("ตริตาภรณ์ช้างเผือก")) ? false : true;
+ last.Contains("ตริตาภรณ์ช้างเผือก"))
+ ? false
+ : true;
else if (request.Contains("ทวีติยาภรณ์ช้างเผือก"))
return (last.Contains("ตริตาภรณ์มงกุฎไทย") ||
last.Contains("ตริตาภรณ์ช้างเผือก") ||
- last.Contains("ทวีติยาภรณ์มงกุฎไทย")) ? false : true;
+ last.Contains("ทวีติยาภรณ์มงกุฎไทย"))
+ ? false
+ : true;
else if (request.Contains("ประถมาภรณ์มงกุฎไทย"))
return (last.Contains("ตริตาภรณ์มงกุฎไทย") ||
last.Contains("ตริตาภรณ์ช้างเผือก") ||
last.Contains("ทวีติยาภรณ์มงกุฎไทย") ||
- last.Contains("ทวีติยาภรณ์ช้างเผือก")) ? false : true;
+ last.Contains("ทวีติยาภรณ์ช้างเผือก"))
+ ? false
+ : true;
else if (request.Contains("ประถมาภรณ์ช้างเผือก"))
return (last.Contains("ตริตาภรณ์มงกุฎไทย") ||
last.Contains("ตริตาภรณ์ช้างเผือก") ||
last.Contains("ทวีติยาภรณ์มงกุฎไทย") ||
last.Contains("ทวีติยาภรณ์ช้างเผือก") ||
- last.Contains("ประถมาภรณ์มงกุฎไทย")) ? false : true;
+ last.Contains("ประถมาภรณ์มงกุฎไทย"))
+ ? false
+ : true;
else if (request.Contains("มหาวชิรมงกุฎ"))
return (last.Contains("ตริตาภรณ์มงกุฎไทย") ||
last.Contains("ตริตาภรณ์ช้างเผือก") ||
last.Contains("ทวีติยาภรณ์มงกุฎไทย") ||
last.Contains("ทวีติยาภรณ์ช้างเผือก") ||
last.Contains("ประถมาภรณ์มงกุฎไทย") ||
- last.Contains("ประถมาภรณ์ช้างเผือก")) ? false : true;
+ last.Contains("ประถมาภรณ์ช้างเผือก"))
+ ? false
+ : true;
else return false;
}
@@ -227,9 +241,9 @@ namespace BMA.EHR.Application.Repositories
var ce_year = year;
var insignia = _dbContext.Set()
- .Where(x => x.ProfileId == profileId)
- .Where(x => x.Year == ce_year - 1)
- .FirstOrDefault();
+ .Where(x => x.ProfileId == profileId)
+ .Where(x => x.Year == ce_year - 1)
+ .FirstOrDefault();
if (insignia != null)
{
@@ -244,7 +258,7 @@ namespace BMA.EHR.Application.Repositories
else
{
var req = _dbContext.Set()
- .FirstOrDefault(x => x.Request.Period.Id == prev_period.Id && x.ProfileId == profileId);
+ .FirstOrDefault(x => x.Request.Period.Id == prev_period.Id && x.ProfileId == profileId);
if (req != null)
return false;
@@ -267,7 +281,8 @@ namespace BMA.EHR.Application.Repositories
///
///
///
- public async Task> GetEmployeeInsignia_Type1(Guid periodId, Guid ocId)
+ public async Task> GetEmployeeInsignia_Type1(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -285,236 +300,342 @@ namespace BMA.EHR.Application.Repositories
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
- var coinInsignia = await _dbContext.Set().FirstOrDefaultAsync(x => x.Name.Contains("เหรียญจักรพรรดิมาลา"));
+ var coinInsignia = await _dbContext.Set()
+ .FirstOrDefaultAsync(x => x.Name.Contains("เหรียญจักรพรรดิมาลา"));
- var allProfilesByRoot = (await _userProfileRepository.GetEmployeeProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetEmployeeProfileByRootIdAsync(ocId, AccessToken));
var inst_profile = allProfilesByRoot
- .Select(p => new
- {
- ProfileId = p.Id,
- Prefix = p.Prefix ?? "",
- FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}",
- Position = p.Position ?? "",
- Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
- ProfileDateAppoint = p.DateAppoint.Value,
- GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
- PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id,
- PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
- 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,
- 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 :
- 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,
- });
+ .Select(p => new
+ {
+ ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
+ Prefix = p.Prefix ?? "",
+ FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}",
+ Position = p.Position ?? "",
+ Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ ProfileDateAppoint = p.DateAppoint.Value,
+ GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ 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,
+ 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 :
+ 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,
+ });
// check วันที่บรรจะต้องน้อยกว่า 29/5/ปี-8 ขอ บม.
var s1 = ((from p in inst_profile
where p.ProfileDateAppoint <= new DateTime(period.Year - 8, 5, 29)
- && p.LastInsigniaId == Guid.Parse("00000000-0000-0000-0000-000000000000")
- && (p.SalaryCondition >= 8340
- && p.SalaryCondition < 15050)
+ && p.LastInsigniaId == Guid.Parse("00000000-0000-0000-0000-000000000000")
+ && (p.SalaryCondition >= 8340
+ && p.SalaryCondition < 15050)
select p)
- .ToList()
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("เบญจมาภรณ์มงกุฎไทย"),
- Seq = 1,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.รับราชการก่อน { new DateTime(period.Year - 8, 5, 29).ToThaiFullDate3() }",
- Result = $"วันที่บรรจุเข้ารับราชการ { p.ProfileDateAppoint.ToThaiFullDate3() }"
- },
- new MatchingCondition
- {
- Condition = $"2.ได้รับอัตราค่าจ้างตั้งแต่อัตราเงินเดือนขั้นต่ำของข้าราขการพลเรือนระดับปฏิบัติการ (8,340) แต่ไม่ถึงขั้นต่ำของอัตราเงินเดือนข้าราชการพลเรือนระดับชำนาญการ (15,050)",
- Result = $"อัตราค่าจ้าง { p.SalaryCondition.Value.ToString("#,##0") }"
- },
- }
- })).ToList();
+ .ToList()
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("เบญจมาภรณ์มงกุฎไทย"),
+ Seq = 1,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition = $"1.รับราชการก่อน {new DateTime(period.Year - 8, 5, 29).ToThaiFullDate3()}",
+ Result = $"วันที่บรรจุเข้ารับราชการ {p.ProfileDateAppoint.ToThaiFullDate3()}"
+ },
+ new MatchingCondition
+ {
+ Condition =
+ $"2.ได้รับอัตราค่าจ้างตั้งแต่อัตราเงินเดือนขั้นต่ำของข้าราขการพลเรือนระดับปฏิบัติการ (8,340) แต่ไม่ถึงขั้นต่ำของอัตราเงินเดือนข้าราชการพลเรือนระดับชำนาญการ (15,050)",
+ Result = $"อัตราค่าจ้าง {p.SalaryCondition.Value.ToString("#,##0")}"
+ },
+ }
+ })).ToList();
- var bcpRoyal = await _dbContext.Set().FirstOrDefaultAsync(x => x.Name.Contains("เบญจมาภรณ์ช้างเผือก"));
- var bcmRoyal = await _dbContext.Set().FirstOrDefaultAsync(x => x.Name.Contains("เบญจมาภรณ์มงกุฎไทย"));
+ var bcpRoyal = await _dbContext.Set()
+ .FirstOrDefaultAsync(x => x.Name.Contains("เบญจมาภรณ์ช้างเผือก"));
+ var bcmRoyal = await _dbContext.Set()
+ .FirstOrDefaultAsync(x => x.Name.Contains("เบญจมาภรณ์มงกุฎไทย"));
- var jtmRoyal = await _dbContext.Set().FirstOrDefaultAsync(x => x.Name.Contains("จัตุรถาภรณ์มงกุฎไทย"));
+ var jtmRoyal = await _dbContext.Set()
+ .FirstOrDefaultAsync(x => x.Name.Contains("จัตุรถาภรณ์มงกุฎไทย"));
var s2 = (from p in allProfilesByRoot
where p.ProfileInsignia != null
- && p.ProfileInsignia.Count > 0
- && (p.ProfileInsignia.Where(x => x.InsigniaId.Value != coinInsignia.Id &&
- x.InsigniaId.Value == bcpRoyal.Id)
- .ToList()
- .Count() == 0)
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x => x.InsigniaId.Value != coinInsignia.Id &&
+ x.InsigniaId.Value == bcpRoyal.Id)
+ .ToList()
+ .Count() == 0)
//where !(p.ProfileInsignia.Where(x => x.InsigniaId != coinInsignia.Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId == bcpRoyal.Id)
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix ?? "",
FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}",
Position = p.Position ?? "",
Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
ProfileDateAppoint = p.DateAppoint.Value,
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
- PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
- PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id,
+ 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,
- Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount,
+ 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,
+ 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 :
- 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,
+ 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()
- .Where(x => x.InsigniaId.Value != coinInsignia.Id)
- .OrderByDescending(x => x.Year)
- .FirstOrDefault().InsigniaId.Value).Name,
- "เบญจมาภรณ์ช้างเผือก"),
+ .Where(x => x.InsigniaId.Value != coinInsignia.Id)
+ .OrderByDescending(x => x.Year)
+ .FirstOrDefault().InsigniaId.Value).Name,
+ "เบญจมาภรณ์ช้างเผือก"),
FirstRecvInsigniaYear = p.ProfileInsignia == null ? 0 :
- p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcmRoyal.Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
- p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcmRoyal.Id).OrderBy(x => x.Year).FirstOrDefault().Year,
+ p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcmRoyal.Id).OrderBy(x => x.Year)
+ .FirstOrDefault() == null ? 0 :
+ p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcmRoyal.Id).OrderBy(x => x.Year)
+ .FirstOrDefault().Year,
})
- .ToList()
- .Where(x => (x.SalaryCondition >= 8340 && x.SalaryCondition < 10150) && !x.IsHigherLevel)
- .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 5)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("เบญจมาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้รับอัตราค่าจ้างตั้งแต่อัตราเงินเดือนขั้นต่ำของข้าราขการพลเรือนระดับปฏิบัติการ (8,340) แต่ไม่ถึงขั้นต่ำของอัตราเงินเดือนข้าราชการพลเรือนระดับชำนาญการ (15,050)",
- Result = $"อัตราค่าจ้าง { p.SalaryCondition.Value.ToString("#,##0") }"
- },
- new MatchingCondition
- {
- Condition = $"2.ได้ บ.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้รับ บ.ม. ก่อนวันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()})",
- Result = $"ได้รับ บ.ม. ในปี { p.FirstRecvInsigniaYear }"
- }
- }
- })
- .ToList();
+ .ToList()
+ .Where(x => (x.SalaryCondition >= 8340 && x.SalaryCondition < 10150) && !x.IsHigherLevel)
+ .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 5)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("เบญจมาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้รับอัตราค่าจ้างตั้งแต่อัตราเงินเดือนขั้นต่ำของข้าราขการพลเรือนระดับปฏิบัติการ (8,340) แต่ไม่ถึงขั้นต่ำของอัตราเงินเดือนข้าราชการพลเรือนระดับชำนาญการ (15,050)",
+ Result = $"อัตราค่าจ้าง {p.SalaryCondition.Value.ToString("#,##0")}"
+ },
+ new MatchingCondition
+ {
+ Condition =
+ $"2.ได้ บ.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้รับ บ.ม. ก่อนวันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()})",
+ Result = $"ได้รับ บ.ม. ในปี {p.FirstRecvInsigniaYear}"
+ }
+ }
+ })
+ .ToList();
var s3 = (from p in allProfilesByRoot
where p.ProfileInsignia != null
- && p.ProfileInsignia.Count > 0
- && (p.ProfileInsignia.Where(x => x.InsigniaId.Value != coinInsignia.Id &&
- x.InsigniaId.Value == jtmRoyal.Id)
- .ToList()
- .Count() == 0)
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x => x.InsigniaId.Value != coinInsignia.Id &&
+ x.InsigniaId.Value == jtmRoyal.Id)
+ .ToList()
+ .Count() == 0)
//where !(p.ProfileInsignia.Where(x => x.InsigniaId != coinInsignia.Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId == jtmRoyal.Id)
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix ?? "",
FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}",
Position = p.Position ?? "",
Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
ProfileDateAppoint = p.DateAppoint.Value,
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
- PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
- PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id,
+ 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,
- Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount,
+ 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,
+ 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 :
- p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount,
+ 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,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!
+ .PositionSalaryAmount,
IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList()
- .Where(x => x.InsigniaId.Value != coinInsignia.Id)
- .OrderByDescending(x => x.Year)
- .FirstOrDefault().InsigniaId.Value).Name,
- "จัตุรถาภรณ์มงกุฎไทย"),
+ .Where(x => x.InsigniaId.Value != coinInsignia.Id)
+ .OrderByDescending(x => x.Year)
+ .FirstOrDefault().InsigniaId.Value).Name,
+ "จัตุรถาภรณ์มงกุฎไทย"),
FirstRecvInsigniaYear = p.ProfileInsignia == null ? 0 :
- p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcmRoyal.Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
- p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcmRoyal.Id).OrderBy(x => x.Year).FirstOrDefault().Year,
+ p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcmRoyal.Id).OrderBy(x => x.Year)
+ .FirstOrDefault() == null ? 0 :
+ p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcmRoyal.Id).OrderBy(x => x.Year)
+ .FirstOrDefault().Year,
})
- .ToList()
- .Where(x => (x.SalaryCondition >= 8340 && x.SalaryCondition < 10150) && !x.IsHigherLevel)
- .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 5)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้รับอัตราค่าจ้างตั้งแต่อัตราเงินเดือนขั้นต่ำของข้าราขการพลเรือนระดับปฏิบัติการ (8,340) แต่ไม่ถึงขั้นต่ำของอัตราเงินเดือนข้าราชการพลเรือนระดับชำนาญการ (15,050)",
- Result = $"อัตราค่าจ้าง { p.SalaryCondition.Value.ToString("#,##0") }"
- },
- new MatchingCondition
- {
- Condition = $"2.ได้ บ.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้รับ บ.ช. ก่อนวันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()})",
- Result = $"ได้รับ บ.ช. ในปี { p.FirstRecvInsigniaYear }"
- }
- }
- })
- .ToList();
+ .ToList()
+ .Where(x => (x.SalaryCondition >= 8340 && x.SalaryCondition < 10150) && !x.IsHigherLevel)
+ .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 5)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้รับอัตราค่าจ้างตั้งแต่อัตราเงินเดือนขั้นต่ำของข้าราขการพลเรือนระดับปฏิบัติการ (8,340) แต่ไม่ถึงขั้นต่ำของอัตราเงินเดือนข้าราชการพลเรือนระดับชำนาญการ (15,050)",
+ Result = $"อัตราค่าจ้าง {p.SalaryCondition.Value.ToString("#,##0")}"
+ },
+ new MatchingCondition
+ {
+ Condition =
+ $"2.ได้ บ.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้รับ บ.ช. ก่อนวันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()})",
+ Result = $"ได้รับ บ.ช. ในปี {p.FirstRecvInsigniaYear}"
+ }
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -586,7 +707,8 @@ namespace BMA.EHR.Application.Repositories
///
///
///
- public async Task> GetEmployeeInsignia_Type2(Guid periodId, Guid ocId)
+ public async Task> GetEmployeeInsignia_Type2(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -604,234 +726,341 @@ namespace BMA.EHR.Application.Repositories
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
- var coinInsignia = await _dbContext.Set().FirstOrDefaultAsync(x => x.Name.Contains("เหรียญจักรพรรดิมาลา"));
+ var coinInsignia = await _dbContext.Set()
+ .FirstOrDefaultAsync(x => x.Name.Contains("เหรียญจักรพรรดิมาลา"));
- var allProfilesByRoot = (await _userProfileRepository.GetEmployeeProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetEmployeeProfileByRootIdAsync(ocId, AccessToken));
var inst_profile = allProfilesByRoot
- .Select(p => new
- {
- ProfileId = p.Id,
- Prefix = p.Prefix ?? "",
- FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}",
- Position = p.Position ?? "",
- Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
- ProfileDateAppoint = p.DateAppoint.Value,
- GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
- PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id,
- PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
- 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,
- 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 :
- 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,
- });
+ .Select(p => new
+ {
+ ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
+ Prefix = p.Prefix ?? "",
+ FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}",
+ Position = p.Position ?? "",
+ Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ ProfileDateAppoint = p.DateAppoint.Value,
+ GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ 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,
+ 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 :
+ 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,
+ });
var s1 = ((from p in inst_profile
where p.ProfileDateAppoint <= new DateTime(period.Year - 8, 5, 29)
- && p.LastInsigniaId == Guid.Parse("00000000-0000-0000-0000-000000000000")
- && (p.SalaryCondition >= 15050)
+ && p.LastInsigniaId == Guid.Parse("00000000-0000-0000-0000-000000000000")
+ && (p.SalaryCondition >= 15050)
select p)
- .ToList()
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("เบญจมาภรณ์มงกุฎไทย"),
- Seq = 1,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.รับราชการก่อน { new DateTime(period.Year - 8, 5, 29).ToThaiFullDate3() }",
- Result = $"วันที่บรรจุเข้ารับราชการ { p.ProfileDateAppoint.ToThaiFullDate3() }"
- },
- new MatchingCondition
- {
- Condition = $"2.ได้รับอัตราค่าจ้างตั้งแต่อัตราเงินเดือนขั้นต่ำของข้าราขการพลเรือนระดับชำนาญการขึ้นไป (15,050)",
- Result = $"อัตราค่าจ้าง { p.SalaryCondition.Value.ToString("#,##0") }"
- },
- }
- })).ToList();
+ .ToList()
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("เบญจมาภรณ์มงกุฎไทย"),
+ Seq = 1,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition = $"1.รับราชการก่อน {new DateTime(period.Year - 8, 5, 29).ToThaiFullDate3()}",
+ Result = $"วันที่บรรจุเข้ารับราชการ {p.ProfileDateAppoint.ToThaiFullDate3()}"
+ },
+ new MatchingCondition
+ {
+ Condition =
+ $"2.ได้รับอัตราค่าจ้างตั้งแต่อัตราเงินเดือนขั้นต่ำของข้าราขการพลเรือนระดับชำนาญการขึ้นไป (15,050)",
+ Result = $"อัตราค่าจ้าง {p.SalaryCondition.Value.ToString("#,##0")}"
+ },
+ }
+ })).ToList();
- var bcpRoyal = await _dbContext.Set().FirstOrDefaultAsync(x => x.Name.Contains("เบญจมาภรณ์ช้างเผือก"));
- var bcmRoyal = await _dbContext.Set().FirstOrDefaultAsync(x => x.Name.Contains("เบญจมาภรณ์มงกุฎไทย"));
+ var bcpRoyal = await _dbContext.Set()
+ .FirstOrDefaultAsync(x => x.Name.Contains("เบญจมาภรณ์ช้างเผือก"));
+ var bcmRoyal = await _dbContext.Set()
+ .FirstOrDefaultAsync(x => x.Name.Contains("เบญจมาภรณ์มงกุฎไทย"));
- var jtcRoyal = await _dbContext.Set().FirstOrDefaultAsync(x => x.Name.Contains("จัตุรถาภรณ์ช้างเผือก"));
- var jtmRoyal = await _dbContext.Set().FirstOrDefaultAsync(x => x.Name.Contains("จัตุรถาภรณ์มงกุฎไทย"));
+ var jtcRoyal = await _dbContext.Set()
+ .FirstOrDefaultAsync(x => x.Name.Contains("จัตุรถาภรณ์ช้างเผือก"));
+ var jtmRoyal = await _dbContext.Set()
+ .FirstOrDefaultAsync(x => x.Name.Contains("จัตุรถาภรณ์มงกุฎไทย"));
var s2 = (from p in allProfilesByRoot
where p.ProfileInsignia != null
- && p.ProfileInsignia.Count > 0
- && (p.ProfileInsignia.Where(x => x.InsigniaId.Value != coinInsignia.Id &&
- x.InsigniaId.Value == jtmRoyal.Id)
- .ToList()
- .Count() == 0)
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x => x.InsigniaId.Value != coinInsignia.Id &&
+ x.InsigniaId.Value == jtmRoyal.Id)
+ .ToList()
+ .Count() == 0)
//where !(p.ProfileInsignia.Where(x => x.InsigniaId != coinInsignia.Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId == jtmRoyal.Id)
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix ?? "",
FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}",
Position = p.Position ?? "",
Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
ProfileDateAppoint = p.DateAppoint.Value,
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
- PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
- PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id,
+ 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,
- Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount,
+ 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,
+ 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 :
- p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount,
+ 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,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!
+ .PositionSalaryAmount,
IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList()
- .Where(x => x.InsigniaId.Value != coinInsignia.Id)
- .OrderByDescending(x => x.Year)
- .FirstOrDefault().InsigniaId.Value).Name,
- "จัตุรถาภรณ์มงกุฎไทย"),
+ .Where(x => x.InsigniaId.Value != coinInsignia.Id)
+ .OrderByDescending(x => x.Year)
+ .FirstOrDefault().InsigniaId.Value).Name,
+ "จัตุรถาภรณ์มงกุฎไทย"),
FirstRecvInsigniaYear = p.ProfileInsignia == null ? 0 :
- p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcpRoyal.Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
- p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcpRoyal.Id).OrderBy(x => x.Year).FirstOrDefault().Year,
+ p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcpRoyal.Id).OrderBy(x => x.Year)
+ .FirstOrDefault() == null ? 0 :
+ p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcpRoyal.Id).OrderBy(x => x.Year)
+ .FirstOrDefault().Year,
})
- .ToList()
- .Where(x => (x.SalaryCondition >= 10150) && !x.IsHigherLevel)
- .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 5)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้รับอัตราค่าจ้างตั้งแต่อัตราเงินเดือนขั้นต่ำของข้าราขการพลเรือนระดับชำนาญการขึ้นไป (15,050)",
- Result = $"อัตราค่าจ้าง { p.SalaryCondition.Value.ToString("#,##0") }"
- },
- new MatchingCondition
- {
- Condition = $"2.ได้ บ.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้รับ บ.ช. ก่อนวันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()})",
- Result = $"ได้รับ บ.ช. ในปี { p.FirstRecvInsigniaYear }"
- }
- }
- })
- .ToList();
+ .ToList()
+ .Where(x => (x.SalaryCondition >= 10150) && !x.IsHigherLevel)
+ .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 5)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้รับอัตราค่าจ้างตั้งแต่อัตราเงินเดือนขั้นต่ำของข้าราขการพลเรือนระดับชำนาญการขึ้นไป (15,050)",
+ Result = $"อัตราค่าจ้าง {p.SalaryCondition.Value.ToString("#,##0")}"
+ },
+ new MatchingCondition
+ {
+ Condition =
+ $"2.ได้ บ.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้รับ บ.ช. ก่อนวันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()})",
+ Result = $"ได้รับ บ.ช. ในปี {p.FirstRecvInsigniaYear}"
+ }
+ }
+ })
+ .ToList();
var s3 = (from p in allProfilesByRoot
where p.ProfileInsignia != null
- && p.ProfileInsignia.Count > 0
- && (p.ProfileInsignia.Where(x => x.InsigniaId.Value != coinInsignia.Id &&
- x.InsigniaId.Value == jtcRoyal.Id)
- .ToList()
- .Count() == 0)
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x => x.InsigniaId.Value != coinInsignia.Id &&
+ x.InsigniaId.Value == jtcRoyal.Id)
+ .ToList()
+ .Count() == 0)
//where !(p.ProfileInsignia.Where(x => x.InsigniaId != coinInsignia.Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId == jtcRoyal.Id)
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix ?? "",
FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}",
Position = p.Position ?? "",
Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
ProfileDateAppoint = p.DateAppoint.Value,
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
- PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
- PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id,
+ 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,
- Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount,
+ 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,
+ 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 :
- p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount,
+ 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,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!
+ .PositionSalaryAmount,
IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList()
- .Where(x => x.InsigniaId.Value != coinInsignia.Id)
- .OrderByDescending(x => x.Year)
- .FirstOrDefault().InsigniaId.Value).Name,
- "จัตุรถาภรณ์ช้างเผือก"),
+ .Where(x => x.InsigniaId.Value != coinInsignia.Id)
+ .OrderByDescending(x => x.Year)
+ .FirstOrDefault().InsigniaId.Value).Name,
+ "จัตุรถาภรณ์ช้างเผือก"),
FirstRecvInsigniaYear = p.ProfileInsignia == null ? 0 :
- p.ProfileInsignia.Where(x => x.InsigniaId.Value == jtmRoyal.Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
- p.ProfileInsignia.Where(x => x.InsigniaId.Value == jtmRoyal.Id).OrderBy(x => x.Year).FirstOrDefault().Year,
+ p.ProfileInsignia.Where(x => x.InsigniaId.Value == jtmRoyal.Id).OrderBy(x => x.Year)
+ .FirstOrDefault() == null ? 0 :
+ p.ProfileInsignia.Where(x => x.InsigniaId.Value == jtmRoyal.Id).OrderBy(x => x.Year)
+ .FirstOrDefault().Year,
})
- .ToList()
- .Where(x => (x.SalaryCondition >= 10150) && !x.IsHigherLevel)
- .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 5)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("จัตุรถาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้รับอัตราค่าจ้างตั้งแต่อัตราเงินเดือนขั้นต่ำของข้าราขการพลเรือนระดับชำนาญการขึ้นไป (15,050)",
- Result = $"อัตราค่าจ้าง { p.SalaryCondition.Value.ToString("#,##0") }"
- },
- new MatchingCondition
- {
- Condition = $"2.ได้ จ.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้รับ จ.ม. ก่อนวันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()})",
- Result = $"ได้รับ จ.ม. ในปี { p.FirstRecvInsigniaYear }"
- }
- }
- })
- .ToList();
+ .ToList()
+ .Where(x => (x.SalaryCondition >= 10150) && !x.IsHigherLevel)
+ .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 5)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("จัตุรถาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้รับอัตราค่าจ้างตั้งแต่อัตราเงินเดือนขั้นต่ำของข้าราขการพลเรือนระดับชำนาญการขึ้นไป (15,050)",
+ Result = $"อัตราค่าจ้าง {p.SalaryCondition.Value.ToString("#,##0")}"
+ },
+ new MatchingCondition
+ {
+ Condition =
+ $"2.ได้ จ.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้รับ จ.ม. ก่อนวันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()})",
+ Result = $"ได้รับ จ.ม. ในปี {p.FirstRecvInsigniaYear}"
+ }
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -897,7 +1126,6 @@ namespace BMA.EHR.Application.Repositories
}
}
-
#endregion
#region " ทั่วไป "
@@ -908,7 +1136,8 @@ namespace BMA.EHR.Application.Repositories
/// The period identifier.
/// The oc identifier.
///
- public async Task> GetInsigniaCandidate_Type1_Level1(Guid periodId, Guid ocId)
+ public async Task> GetInsigniaCandidate_Type1_Level1(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -926,94 +1155,135 @@ namespace BMA.EHR.Application.Repositories
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
var inst_profile = allProfilesByRoot
- .Select(p => new
- {
- ProfileId = p.Id,
- Prefix = p.Prefix ?? "",
- FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}",
- Position = p.Position ?? "",
- Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
- ProfileDateAppoint = p.DateAppoint.Value,
- GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
- PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id,
- PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
- 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 ? "" :
- 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 :
- p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount,
+ .Select(p => new
+ {
+ ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
- PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
- ProfileInsignia = p.ProfileInsignia
- });
+ Prefix = p.Prefix ?? "",
+ FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}",
+ Position = p.Position ?? "",
+ Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ ProfileDateAppoint = p.DateAppoint.Value,
+ GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ 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 ? "" :
+ 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 :
+ 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,
+ ProfileInsignia = p.ProfileInsignia
+ });
// check วันที่บรรจะต้องน้อยกว่า 29/5/ปี-5
var s1 = ((from p in inst_profile
where p.ProfileDateAppoint <= new DateTime(period.Year - 5, 5, 29)
- && p.LastInsigniaId == Guid.Parse("00000000-0000-0000-0000-000000000000")
- && p.PositionLevelName == "ปฏิบัติงาน" // ปฏิบัติงาน
- && p.ProfileInsignia == null
- //&& p.ProfileInsignia.Count > 0
- //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
- // x.InsigniaId.Value == GetInsigniaByName("เบญจมาภรณ์มงกุฎไทย").Id)
- // .ToList()
- // .Count() == 0)
+ && p.LastInsigniaId == Guid.Parse("00000000-0000-0000-0000-000000000000")
+ && p.PositionLevelName == "ปฏิบัติงาน" // ปฏิบัติงาน
+ && p.ProfileInsignia == null
+ //&& p.ProfileInsignia.Count > 0
+ //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ // x.InsigniaId.Value == GetInsigniaByName("เบญจมาภรณ์มงกุฎไทย").Id)
+ // .ToList()
+ // .Count() == 0)
select p)
- .ToList()
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("เบญจมาภรณ์มงกุฎไทย"),
- Seq = 1,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.รับราชการก่อน { new DateTime(period.Year - 5, 5, 29).ToThaiFullDate3() }",
- Result = $"วันที่บรรจุเข้ารับราชการ { p.ProfileDateAppoint.ToThaiFullDate3() }"
- }
- }
- })).ToList();
+ .ToList()
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("เบญจมาภรณ์มงกุฎไทย"),
+ Seq = 1,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition = $"1.รับราชการก่อน {new DateTime(period.Year - 5, 5, 29).ToThaiFullDate3()}",
+ Result = $"วันที่บรรจุเข้ารับราชการ {p.ProfileDateAppoint.ToThaiFullDate3()}"
+ }
+ }
+ })).ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("เบญจมาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && p.PosLevel.PosLevelName == "ปฏิบัติงาน"
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("เบญจมาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("เบญจมาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -1021,74 +1291,115 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia
- .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
- .OrderByDescending(x => x.Year)
- .FirstOrDefault().InsigniaId.Value).Name,
- "เบญจมาภรณ์ช้างเผือก"),
+ .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
+ .OrderByDescending(x => x.Year)
+ .FirstOrDefault().InsigniaId.Value).Name,
+ "เบญจมาภรณ์ช้างเผือก"),
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
})
- .ToList()
- .Where(x => x.SalaryCondition < 10190 && !x.IsHigherLevel)
- .Where(x => x.ProfileDateAppoint <= new DateTime(period.Year - 10, 5, 29))
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("เบญจมาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้รับเงินเดือนต่ำกว่าขั้นต่ำของระดับชำนาญงาน (เงินเดือนน้อยกว่า 10,190 บาท)",
- Result = $"ได้รับเงินเดือน { p.SalaryCondition } บาท"
- },
- new MatchingCondition
- {
- Condition = $"2.ดำรงตำแหน่งมาแล้วไม่น้อยกว่า 10 ปี บริบูรณ์ (รับราชการก่อน { new DateTime(period.Year - 10, 5, 29).ToThaiFullDate3() })",
- Result = $"วันที่บรรจุเข้ารับราชการ { p.ProfileDateAppoint.ToThaiFullDate3() }"
- }
- }
- })
- .ToList();
+ .ToList()
+ .Where(x => x.SalaryCondition < 10190 && !x.IsHigherLevel)
+ .Where(x => x.ProfileDateAppoint <= new DateTime(period.Year - 10, 5, 29))
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("เบญจมาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้รับเงินเดือนต่ำกว่าขั้นต่ำของระดับชำนาญงาน (เงินเดือนน้อยกว่า 10,190 บาท)",
+ Result = $"ได้รับเงินเดือน {p.SalaryCondition} บาท"
+ },
+ new MatchingCondition
+ {
+ Condition =
+ $"2.ดำรงตำแหน่งมาแล้วไม่น้อยกว่า 10 ปี บริบูรณ์ (รับราชการก่อน {new DateTime(period.Year - 10, 5, 29).ToThaiFullDate3()})",
+ Result = $"วันที่บรรจุเข้ารับราชการ {p.ProfileDateAppoint.ToThaiFullDate3()}"
+ }
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย").Id)
- .ToList()
- .Count() == 0)
+ && p.PosLevel.PosLevelName == "ปฏิบัติงาน"
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -1096,69 +1407,117 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "จัตุรถาภรณ์มงกุฎไทย"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+
+
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "จัตุรถาภรณ์มงกุฎไทย"),
})
- .ToList()
- .Where(x => x.SalaryCondition >= 10190 && !x.IsHigherLevel)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย"),
- Seq = 3,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้รับเงินเดือนไม่ต่ำกว่าขั้นต่ำของระดับชำนาญงาน (เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } 10,190 บาทขึ้นไป)",
- Result = $"ได้รับเงินเดือน { p.SalaryCondition } บาท"
- }
- }
- })
- .ToList();
+ .ToList()
+ .Where(x => x.SalaryCondition >= 10190 && !x.IsHigherLevel)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย"),
+ Seq = 3,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้รับเงินเดือนไม่ต่ำกว่าขั้นต่ำของระดับชำนาญงาน (เงินเดือน ณ วันที่ {(new DateTime(period.Year, 4, 29)).ToThaiFullDate3()} 10,190 บาทขึ้นไป)",
+ Result = $"ได้รับเงินเดือน {p.SalaryCondition} บาท"
+ }
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("จัตุรถาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && p.PosLevel.PosLevelName == "ปฏิบัติงาน"
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("จัตุรถาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("จัตุรถาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -1166,59 +1525,101 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "จัตุรถาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+
+
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "จัตุรถาภรณ์ช้างเผือก"),
})
- .ToList()
- .Where(x => x.SalaryCondition >= 10190 && !x.IsHigherLevel)
- .Where(x => x.ProfileDateAppoint <= new DateTime(period.Year - 10, 5, 29))
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("จัตุรถาภรณ์ช้างเผือก"),
- Seq = 4,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้รับเงินเดือนไม่ต่ำกว่าขั้นต่ำของระดับชำนาญงาน (เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } 10,190 บาทขึ้นไป)",
- Result = $"ได้รับเงินเดือน { p.SalaryCondition } บาท"
- },
- new MatchingCondition
- {
- Condition = $"2.ดำรงตำแหน่งมาแล้วไม่น้อยกว่า 10 ปี บริบูรณ์ (รับราชการก่อน { new DateTime(period.Year - 10, 5, 29).ToThaiFullDate3() })",
- Result = $"วันที่บรรจุเข้ารับราชการ { p.ProfileDateAppoint.ToThaiFullDate3() }"
- }
- }
- })
- .ToList();
+ .ToList()
+ .Where(x => x.SalaryCondition >= 10190 && !x.IsHigherLevel)
+ .Where(x => x.ProfileDateAppoint <= new DateTime(period.Year - 10, 5, 29))
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("จัตุรถาภรณ์ช้างเผือก"),
+ Seq = 4,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้รับเงินเดือนไม่ต่ำกว่าขั้นต่ำของระดับชำนาญงาน (เงินเดือน ณ วันที่ {(new DateTime(period.Year, 4, 29)).ToThaiFullDate3()} 10,190 บาทขึ้นไป)",
+ Result = $"ได้รับเงินเดือน {p.SalaryCondition} บาท"
+ },
+ new MatchingCondition
+ {
+ Condition =
+ $"2.ดำรงตำแหน่งมาแล้วไม่น้อยกว่า 10 ปี บริบูรณ์ (รับราชการก่อน {new DateTime(period.Year - 10, 5, 29).ToThaiFullDate3()})",
+ Result = $"วันที่บรรจุเข้ารับราชการ {p.ProfileDateAppoint.ToThaiFullDate3()}"
+ }
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -1309,8 +1710,9 @@ namespace BMA.EHR.Application.Repositories
/// The period identifier.
/// The oc identifier.
///
- ///
- public async Task> GetInsigniaCandidate_Type1_Level2(Guid periodId, Guid ocId)
+ ///
+ public async Task> GetInsigniaCandidate_Type1_Level2(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -1322,20 +1724,28 @@ namespace BMA.EHR.Application.Repositories
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ตริตาภรณ์มงกุฎไทย").Id)
- .ToList()
- .Count() == 0)
+ && p.PosLevel.PosLevelName == "ชำนาญงาน"
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ตริตาภรณ์มงกุฎไทย").Id)
+ .ToList()
+ .Count() == 0)
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
+
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -1343,73 +1753,119 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ตริตาภรณ์มงกุฎไทย"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+
+
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ตริตาภรณ์มงกุฎไทย"),
PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName,
PositionType = p.PosType == null ? "" : p.PosType.PosTypeName
})
- .ToList()
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
+ .ToList()
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.เป็นระดับชำนาญงาน",
- Result = $"ตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel }"
- },
-
- }
- })
- .ToList();
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition = $"1.เป็นระดับชำนาญงาน",
+ Result = $"ตำแหน่ง {p.Position} ประเภท {p.PositionType} ระดับ {p.PositionLevel}"
+ },
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ตริตาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && p.PosLevel.PosLevelName == "ชำนาญงาน"
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ตริตาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ตริตาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
+
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -1417,60 +1873,103 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ตริตาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+
+
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ตริตาภรณ์ช้างเผือก"),
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
+ 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))
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ตริตาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ดำรงตำแหน่งมาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (เป็นระดับชำนาญงาน ก่อนวันที่ {(new DateTime(period.Year - 5, 5, 29)).ToThaiFullDate3()})",
- Result = $"ดำรงตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel } ตั้งแต่วันที่ { (p.FirstPositonLevelDate == null ? "-" : p.FirstPositonLevelDate.Value.ToThaiFullDate3()) }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Where(x => x.FirstPositonLevelDate < new DateTime(period.Year - 5, 5, 29))
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ตริตาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ดำรงตำแหน่งมาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (เป็นระดับชำนาญงาน ก่อนวันที่ {(new DateTime(period.Year - 5, 5, 29)).ToThaiFullDate3()})",
+ Result =
+ $"ดำรงตำแหน่ง {p.Position} ประเภท {p.PositionType} ระดับ {p.PositionLevel} ตั้งแต่วันที่ {(p.FirstPositonLevelDate == null ? "-" : p.FirstPositonLevelDate.Value.ToThaiFullDate3())}"
+ },
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -1524,8 +2023,9 @@ namespace BMA.EHR.Application.Repositories
/// The period identifier.
/// The oc identifier.
///
- ///
- public async Task> GetInsigniaCandidate_Type1_Level3(Guid periodId, Guid ocId)
+ ///
+ public async Task> GetInsigniaCandidate_Type1_Level3(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -1534,25 +2034,32 @@ namespace BMA.EHR.Application.Repositories
if (period == null)
throw new Exception(GlobalMessages.CoinPeriodNotFound);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย").Id)
- .ToList()
- .Count() == 0)
+ && p.PosLevel.PosLevelName == "อาวุโส"
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -1560,75 +2067,123 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ทวีติยาภรณ์มงกุฎไทย"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+
+
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ทวีติยาภรณ์มงกุฎไทย"),
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
+ 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
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.เป็นระดับอาวุโส",
- Result = $"ตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition = $"1.เป็นระดับอาวุโส",
+ Result = $"ตำแหน่ง {p.Position} ประเภท {p.PositionType} ระดับ {p.PositionLevel}"
+ },
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && p.PosLevel.PosLevelName == "อาวุโส"
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
+
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -1636,60 +2191,101 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ทวีติยาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ทวีติยาภรณ์ช้างเผือก"),
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
+ 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))
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ดำรงตำแหน่งมาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (เป็นระดับอาวุโส ก่อนวันที่ {(new DateTime(period.Year - 5, 5, 29)).ToThaiFullDate3()})",
- Result = $"ดำรงตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel } ตั้งแต่วันที่ { (p.FirstPositonLevelDate == null ? "-" : p.FirstPositonLevelDate.Value.ToThaiFullDate3()) }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Where(x => x.FirstPositonLevelDate < new DateTime(period.Year - 5, 5, 29))
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ดำรงตำแหน่งมาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (เป็นระดับอาวุโส ก่อนวันที่ {(new DateTime(period.Year - 5, 5, 29)).ToThaiFullDate3()})",
+ Result =
+ $"ดำรงตำแหน่ง {p.Position} ประเภท {p.PositionType} ระดับ {p.PositionLevel} ตั้งแต่วันที่ {(p.FirstPositonLevelDate == null ? "-" : p.FirstPositonLevelDate.Value.ToThaiFullDate3())}"
+ },
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -1743,8 +2339,9 @@ namespace BMA.EHR.Application.Repositories
/// The period identifier.
/// The oc identifier.
///
- ///
- public async Task> GetInsigniaCandidate_Type1_Level4(Guid periodId, Guid ocId)
+ ///
+ public async Task> GetInsigniaCandidate_Type1_Level4(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -1753,25 +2350,34 @@ namespace BMA.EHR.Application.Repositories
if (period == null)
throw new Exception(GlobalMessages.CoinPeriodNotFound);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "อาวุโส" ||
+ p.PosLevel.PosLevelName == "อาวุโส (เฉพาะสายงาน)") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
+
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -1779,75 +2385,121 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ทวีติยาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ทวีติยาภรณ์ช้างเผือก"),
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
+ 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
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.เป็นระดับทักษะพิเศษ",
- Result = $"ตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition = $"1.เป็นระดับทักษะพิเศษ",
+ Result = $"ตำแหน่ง {p.Position} ประเภท {p.PositionType} ระดับ {p.PositionLevel}"
+ },
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "อาวุโส" ||
+ p.PosLevel.PosLevelName == "อาวุโส (เฉพาะสายงาน)") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -1855,79 +2507,130 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ประถมาภรณ์มงกุฎไทย"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ประถมาภรณ์มงกุฎไทย"),
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,
+ 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
+ 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
})
- .ToList()
- .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 3)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้ ท.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้รับ ท.ช. ก่อนวันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()})",
- Result = $"ได้รับ ท.ช. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 3)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ท.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้รับ ท.ช. ก่อนวันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()})",
+ Result = $"ได้รับ ท.ช. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "อาวุโส" ||
+ p.PosLevel.PosLevelName == "อาวุโส (เฉพาะสายงาน)") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -1935,64 +2638,107 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ประถมาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ประถมาภรณ์ช้างเผือก"),
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,
+ 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
+ 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
})
- .ToList()
- .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 5)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้รับ ป.ม. ก่อนวันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()})",
- Result = $"ได้รับ ป.ม. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
-
- }
- })
- .ToList();
-
+ .ToList()
+ .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 5)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้รับ ป.ม. ก่อนวันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()})",
+ Result = $"ได้รับ ป.ม. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -2063,14 +2809,15 @@ namespace BMA.EHR.Application.Repositories
#region " วิชาการ "
-
///
/// Gets the insignia candidate ประเภทวิชาการ ระดับปฏิบัติการ.
///
/// The period identifier.
/// The oc identifier.
+ ///
///
- public async Task> GetInsigniaCandidate_Type2_Level5(Guid periodId, Guid ocId)
+ public async Task> GetInsigniaCandidate_Type2_Level5(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -2079,20 +2826,27 @@ namespace BMA.EHR.Application.Repositories
if (period == null)
throw new Exception(GlobalMessages.CoinPeriodNotFound);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
var s1 = (from p in allProfilesByRoot
where p.PosType.PosTypeName == "วิชาการ"
- && p.ProfileInsignia.Count > 0
- && (p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
- x.InsigniaId.Value == GetInsigniaByName("ตริตาภรณ์มงกุฎไทย").Id)
- .ToList()
- .Count() == 0)
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ตริตาภรณ์มงกุฎไทย").Id)
+ .ToList()
+ .Count() == 0)
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -2100,61 +2854,105 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ตริตาภรณ์มงกุฎไทย"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ตริตาภรณ์มงกุฎไทย"),
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,
+ 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
+ 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
})
- .ToList()
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย"),
- Seq = 1,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.รับราชการก่อน { new DateTime(period.Year - 5, 5, 29).ToThaiFullDate3() }",
- Result = $"วันที่บรรจุเข้ารับราชการ { p.ProfileDateAppoint.ToThaiFullDate3() }"
- }
- }
- })
- .ToList();
+ .ToList()
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย"),
+ Seq = 1,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition = $"1.รับราชการก่อน {new DateTime(period.Year - 5, 5, 29).ToThaiFullDate3()}",
+ Result = $"วันที่บรรจุเข้ารับราชการ {p.ProfileDateAppoint.ToThaiFullDate3()}"
+ }
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -2191,7 +2989,8 @@ namespace BMA.EHR.Application.Repositories
/// The period identifier.
/// The oc identifier.
///
- public async Task> GetInsigniaCandidate_Type2_Level6(Guid periodId, Guid ocId)
+ public async Task> GetInsigniaCandidate_Type2_Level6(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -2200,25 +2999,32 @@ namespace BMA.EHR.Application.Repositories
if (period == null)
throw new Exception(GlobalMessages.CoinPeriodNotFound);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ตริตาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ชำนาญการ") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ตริตาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ตริตาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -2226,78 +3032,128 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ตริตาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+
+ 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,
+ "ตริตาภรณ์ช้างเผือก"),
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,
+ 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
+ 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
})
- .ToList()
- .Select(p => new InsigniaResultSet
+ .ToList()
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ตริตาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
{
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ตริตาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.เป็นระดับชำนาญการ",
- Result = $"ตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel }"
- },
-
- }
- })
- .ToList();
+ Condition = $"1.เป็นระดับชำนาญการ",
+ Result = $"ตำแหน่ง {p.Position} ประเภท {p.PositionType} ระดับ {p.PositionLevel}"
+ },
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ชำนาญการ") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -2305,79 +3161,130 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ทวีติยาภรณ์มงกุฎไทย"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ทวีติยาภรณ์มงกุฎไทย"),
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,
+ 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
+ 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
})
- .ToList()
- .Where(p => p.SalaryCondition >= 22140)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้รับเงินเดือนไม่ต่ำกว่าขั้นต่ำของระดับชำนาญการพิเศษ (เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } 22,140 บาท)",
- Result = $"เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } เป็นเงิน { p.SalaryCondition } บาท"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.SalaryCondition >= 22140)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้รับเงินเดือนไม่ต่ำกว่าขั้นต่ำของระดับชำนาญการพิเศษ (เงินเดือน ณ วันที่ {(new DateTime(period.Year, 4, 29)).ToThaiFullDate3()} 22,140 บาท)",
+ Result =
+ $"เงินเดือน ณ วันที่ {(new DateTime(period.Year, 4, 29)).ToThaiFullDate3()} เป็นเงิน {p.SalaryCondition} บาท"
+ },
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ชำนาญการ") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -2385,63 +3292,108 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 0 :
- p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year - 5, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ?
- p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year - 5, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount :
- p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount,
+ p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year - 5, 4, 29))
+ .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary
+ .Where(x => x.Date.Value <= new DateTime(period.Year - 5, 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ทวีติยาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ทวีติยาภรณ์ช้างเผือก"),
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,
+ 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
+ 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
})
- .ToList()
- .Where(p => p.SalaryCondition >= 22140)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้รับเงินเดือนไม่ต่ำกว่าขั้นต่ำของระดับชำนาญการพิเศษมาแล้วไม่น้อยกว่า 5 ปี (เงินเดือนก่อนวันที่ { (new DateTime(period.Year-5, 4, 29)).ToThaiFullDate3() } 22,140 บาท)",
- Result = $"เงินเดือนก่อนวันที่ { (new DateTime(period.Year-5, 4, 29)).ToThaiFullDate3() } เป็นเงิน { p.SalaryCondition } บาท"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.SalaryCondition >= 22140)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้รับเงินเดือนไม่ต่ำกว่าขั้นต่ำของระดับชำนาญการพิเศษมาแล้วไม่น้อยกว่า 5 ปี (เงินเดือนก่อนวันที่ {(new DateTime(period.Year - 5, 4, 29)).ToThaiFullDate3()} 22,140 บาท)",
+ Result =
+ $"เงินเดือนก่อนวันที่ {(new DateTime(period.Year - 5, 4, 29)).ToThaiFullDate3()} เป็นเงิน {p.SalaryCondition} บาท"
+ },
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -2515,7 +3467,8 @@ namespace BMA.EHR.Application.Repositories
/// The period identifier.
/// The oc identifier.
///
- public async Task> GetInsigniaCandidate_Type2_Level7(Guid periodId, Guid ocId)
+ public async Task> GetInsigniaCandidate_Type2_Level7(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -2524,25 +3477,32 @@ namespace BMA.EHR.Application.Repositories
if (period == null)
throw new Exception(GlobalMessages.CoinPeriodNotFound);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ชำนาญการพิเศษ") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -2550,78 +3510,127 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ทวีติยาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ทวีติยาภรณ์ช้างเผือก"),
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,
+ 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
+ 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
})
- .ToList()
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.เป็นระดับชำนาญการพิเศษ",
- Result = $"ตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition = $"1.เป็นระดับชำนาญการพิเศษ",
+ Result = $"ตำแหน่ง {p.Position} ประเภท {p.PositionType} ระดับ {p.PositionLevel}"
+ },
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ชำนาญการพิเศษ") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -2629,70 +3638,115 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ประถมาภรณ์มงกุฎไทย"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ประถมาภรณ์มงกุฎไทย"),
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,
+ 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
+ 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
})
- .ToList()
- .Where(p => p.SalaryCondition >= 58390)
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้รับเงินเดือนขั้นสูง (เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } 58,390 บาท)",
- Result = $"เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } เป็นเงิน { p.SalaryCondition } บาท"
- },
- new MatchingCondition
- {
- Condition = $"2.ได้ ท.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ท.ช. วันที่ { (new DateTime(period.Year-5, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
- Result = $"ได้รับ ท.ช. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
-
- }
- })
- .ToList();
-
+ .ToList()
+ .Where(p => p.SalaryCondition >= 58390)
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้รับเงินเดือนขั้นสูง (เงินเดือน ณ วันที่ {(new DateTime(period.Year, 4, 29)).ToThaiFullDate3()} 58,390 บาท)",
+ Result =
+ $"เงินเดือน ณ วันที่ {(new DateTime(period.Year, 4, 29)).ToThaiFullDate3()} เป็นเงิน {p.SalaryCondition} บาท"
+ },
+ new MatchingCondition
+ {
+ Condition =
+ $"2.ได้ ท.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ท.ช. วันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()} หรือก่อนหน้านั้น)",
+ Result = $"ได้รับ ท.ช. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -2747,7 +3801,8 @@ namespace BMA.EHR.Application.Repositories
/// The period identifier.
/// The oc identifier.
///
- public async Task> GetInsigniaCandidate_Type2_Level8(Guid periodId, Guid ocId)
+ public async Task> GetInsigniaCandidate_Type2_Level8(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -2756,25 +3811,32 @@ namespace BMA.EHR.Application.Repositories
if (period == null)
throw new Exception(GlobalMessages.CoinPeriodNotFound);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "เชี่ยวชาญ") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -2782,79 +3844,128 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ทวีติยาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ทวีติยาภรณ์ช้างเผือก"),
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,
+ 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
+ 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
})
- .ToList()
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.เป็นระดับเชี่ยวชาญ",
- Result = $"ตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition = $"1.เป็นระดับเชี่ยวชาญ",
+ Result = $"ตำแหน่ง {p.Position} ประเภท {p.PositionType} ระดับ {p.PositionLevel}"
+ },
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "เชี่ยวชาญ") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -2862,80 +3973,129 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ประถมาภรณ์มงกุฎไทย"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ประถมาภรณ์มงกุฎไทย"),
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,
+ 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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
-
- new MatchingCondition
- {
- Condition = $"1.ได้ ท.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ท.ช. ก่อนวันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() })",
- Result = $"ได้รับ ท.ช. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ท.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ท.ช. ก่อนวันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()})",
+ Result = $"ได้รับ ท.ช. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "เชี่ยวชาญ") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -2943,64 +4103,107 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ประถมาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ประถมาภรณ์ช้างเผือก"),
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,
+ 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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
-
- new MatchingCondition
- {
- Condition = $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ท.ช. ก่อนวันที่ { (new DateTime(period.Year-5, 7, 28)).ToThaiFullDate3() })",
- Result = $"ได้รับ ป.ม. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ท.ช. ก่อนวันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()})",
+ Result = $"ได้รับ ป.ม. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -3073,7 +4276,8 @@ namespace BMA.EHR.Application.Repositories
/// The period identifier.
/// The oc identifier.
///
- public async Task> GetInsigniaCandidate_Type2_Level9_1(Guid periodId, Guid ocId)
+ public async Task> GetInsigniaCandidate_Type2_Level9_1(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -3082,25 +4286,32 @@ namespace BMA.EHR.Application.Repositories
if (period == null)
throw new Exception(GlobalMessages.CoinPeriodNotFound);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -3108,85 +4319,138 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ประถมาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ประถมาภรณ์ช้างเผือก"),
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,
+ 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
+ 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
})
- .ToList()
- .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 3)
- .Where(x => x.SalaryPosition == 13000)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. ก่อนวันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() })",
- Result = $"ได้รับ ป.ม. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
- new MatchingCondition
- {
- Condition = $"ได้รับเงินประจำตำแหน่ง 13,000 บาท",
- Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition } บาท"
- }
- }
- })
- .ToList();
+ .ToList()
+ .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 3)
+ .Where(x => x.SalaryPosition == 13000)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. ก่อนวันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()})",
+ Result = $"ได้รับ ป.ม. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ new MatchingCondition
+ {
+ Condition = $"ได้รับเงินประจำตำแหน่ง 13,000 บาท",
+ Result = $"ได้รับเงินประจำตำแหน่ง {p.SalaryPosition} บาท"
+ }
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -3194,87 +4458,136 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 || 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,
+ 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 = 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,
- "มหาวชิรมงกุฎ"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "มหาวชิรมงกุฎ"),
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,
+ 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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
- .Where(p => p.SalaryPosition == 13000)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
-
- new MatchingCondition
- {
- Condition = $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ช. ก่อนวันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() })",
- Result = $"ได้รับ ป.ช. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
- new MatchingCondition
- {
- Condition = $"ได้รับเงินประจำตำแหน่ง 13,000 บาท",
- Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition } บาท"
- }
-
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
+ .Where(p => p.SalaryPosition == 13000)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ช. ก่อนวันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()})",
+ Result = $"ได้รับ ป.ช. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ new MatchingCondition
+ {
+ Condition = $"ได้รับเงินประจำตำแหน่ง 13,000 บาท",
+ Result = $"ได้รับเงินประจำตำแหน่ง {p.SalaryPosition} บาท"
+ }
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -3282,71 +4595,114 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "มหาปรมาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "มหาปรมาภรณ์ช้างเผือก"),
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,
+ 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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5)
- .Where(p => p.SalaryPosition == 13000)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
-
- new MatchingCondition
- {
- Condition = $"1.ได้ ม.ว.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ม.ว.ม. ก่อนวันที่ { (new DateTime(period.Year-5, 7, 28)).ToThaiFullDate3() })",
- Result = $"ได้รับ ม.ว.ม. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
- new MatchingCondition
- {
- Condition = $"ได้รับเงินประจำตำแหน่ง 13,000 บาท",
- Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition } บาท"
- }
-
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5)
+ .Where(p => p.SalaryPosition == 13000)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ม.ว.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ม.ว.ม. ก่อนวันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()})",
+ Result = $"ได้รับ ม.ว.ม. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ new MatchingCondition
+ {
+ Condition = $"ได้รับเงินประจำตำแหน่ง 13,000 บาท",
+ Result = $"ได้รับเงินประจำตำแหน่ง {p.SalaryPosition} บาท"
+ }
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -3418,7 +4774,8 @@ namespace BMA.EHR.Application.Repositories
/// The period identifier.
/// The oc identifier.
///
- public async Task> GetInsigniaCandidate_Type2_Level9_2(Guid periodId, Guid ocId)
+ public async Task> GetInsigniaCandidate_Type2_Level9_2(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -3427,25 +4784,32 @@ namespace BMA.EHR.Application.Repositories
if (period == null)
throw new Exception(GlobalMessages.CoinPeriodNotFound);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -3453,85 +4817,138 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ประถมาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ประถมาภรณ์ช้างเผือก"),
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,
+ 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
+ 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
})
- .ToList()
- .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 3)
- .Where(x => x.SalaryPosition == 15600)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. ก่อนวันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() })",
- Result = $"ได้รับ ป.ม. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
- new MatchingCondition
- {
- Condition = $"ได้รับเงินประจำตำแหน่ง 15,600 บาท",
- Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition } บาท"
- }
- }
- })
- .ToList();
+ .ToList()
+ .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 3)
+ .Where(x => x.SalaryPosition == 15600)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. ก่อนวันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()})",
+ Result = $"ได้รับ ป.ม. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ new MatchingCondition
+ {
+ Condition = $"ได้รับเงินประจำตำแหน่ง 15,600 บาท",
+ Result = $"ได้รับเงินประจำตำแหน่ง {p.SalaryPosition} บาท"
+ }
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -3539,86 +4956,138 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "มหาวชิรมงกุฎ"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "มหาวชิรมงกุฎ"),
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,
+ 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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
- .Where(p => p.SalaryPosition == 15600)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
-
- new MatchingCondition
- {
- Condition = $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ช. ก่อนวันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() })",
- Result = $"ได้รับ ป.ช. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
- new MatchingCondition
- {
- Condition = $"ได้รับเงินประจำตำแหน่ง 15,600 บาท",
- Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition } บาท"
- }
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
+ .Where(p => p.SalaryPosition == 15600)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ช. ก่อนวันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()})",
+ Result = $"ได้รับ ป.ช. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ new MatchingCondition
+ {
+ Condition = $"ได้รับเงินประจำตำแหน่ง 15,600 บาท",
+ Result = $"ได้รับเงินประจำตำแหน่ง {p.SalaryPosition} บาท"
+ }
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -3626,69 +5095,114 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "มหาปรมาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "มหาปรมาภรณ์ช้างเผือก"),
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,
+ 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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
- .Where(p => p.SalaryPosition == 15600)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้ ม.ว.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ม.ว.ม. ก่อนวันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() })",
- Result = $"ได้รับ ม.ว.ม. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
- new MatchingCondition
- {
- Condition = $"ได้รับเงินประจำตำแหน่ง 15,600 บาท",
- Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition } บาท"
- }
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
+ .Where(p => p.SalaryPosition == 15600)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ม.ว.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ม.ว.ม. ก่อนวันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()})",
+ Result = $"ได้รับ ม.ว.ม. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ new MatchingCondition
+ {
+ Condition = $"ได้รับเงินประจำตำแหน่ง 15,600 บาท",
+ Result = $"ได้รับเงินประจำตำแหน่ง {p.SalaryPosition} บาท"
+ }
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -3759,7 +5273,8 @@ namespace BMA.EHR.Application.Repositories
#region " อำนวยการ "
- public async Task> GetInsigniaCandidate_Type3_Level10(Guid periodId, Guid ocId)
+ public async Task> GetInsigniaCandidate_Type3_Level10(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -3768,25 +5283,32 @@ namespace BMA.EHR.Application.Repositories
if (period == null)
throw new Exception(GlobalMessages.CoinPeriodNotFound);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -3794,79 +5316,126 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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 = 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,
- "ทวีติยาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ทวีติยาภรณ์ช้างเผือก"),
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 == "ต้น" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null :
- p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ").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
+ 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
})
- .ToList()
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.เป็นระดับอำนวยการ/ต้น",
- Result = $"ตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition = $"1.เป็นระดับอำนวยการ/ต้น",
+ Result = $"ตำแหน่ง {p.Position} ประเภท {p.PositionType} ระดับ {p.PositionLevel}"
+ },
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -3874,71 +5443,118 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ประถมาภรณ์มงกุฎไทย"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ประถมาภรณ์มงกุฎไทย"),
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 == "ต้น" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null :
- p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ").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
+ 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
})
- .ToList()
- .Where(p => p.SalaryCondition >= 58390)
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้รับเงินเดือนขั้นสูง (เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } 58,390 บาท)",
- Result = $"เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } เป็นเงิน { p.SalaryCondition } บาท"
- },
- new MatchingCondition
- {
- Condition = $"2.ได้ ท.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ท.ช. วันที่ { (new DateTime(period.Year-5, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
- Result = $"ได้รับ ท.ช. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
-
- }
- })
- .ToList();
-
+ .ToList()
+ .Where(p => p.SalaryCondition >= 58390)
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้รับเงินเดือนขั้นสูง (เงินเดือน ณ วันที่ {(new DateTime(period.Year, 4, 29)).ToThaiFullDate3()} 58,390 บาท)",
+ Result =
+ $"เงินเดือน ณ วันที่ {(new DateTime(period.Year, 4, 29)).ToThaiFullDate3()} เป็นเงิน {p.SalaryCondition} บาท"
+ },
+ new MatchingCondition
+ {
+ Condition =
+ $"2.ได้ ท.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ท.ช. วันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()} หรือก่อนหน้านั้น)",
+ Result = $"ได้รับ ท.ช. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -3988,7 +5604,8 @@ namespace BMA.EHR.Application.Repositories
}
}
- public async Task> GetInsigniaCandidate_Type3_Level11(Guid periodId, Guid ocId)
+ public async Task> GetInsigniaCandidate_Type3_Level11(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -3997,25 +5614,32 @@ namespace BMA.EHR.Application.Repositories
if (period == null)
throw new Exception(GlobalMessages.CoinPeriodNotFound);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "สูง") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -4023,80 +5647,132 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ประถมาภรณ์มงกุฎไทย"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ประถมาภรณ์มงกุฎไทย"),
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 == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null :
- p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้ ท.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ท.ช. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
- Result = $"ได้รับ ท.ช. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ท.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ท.ช. วันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()} หรือก่อนหน้านั้น)",
+ Result = $"ได้รับ ท.ช. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "สูง") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -4104,81 +5780,133 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ประถมาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ประถมาภรณ์ช้างเผือก"),
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 == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null :
- p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
- Result = $"ได้รับ ป.ม. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. วันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()} หรือก่อนหน้านั้น)",
+ Result = $"ได้รับ ป.ม. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "สูง") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -4186,66 +5914,110 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "มหาวชิรมงกุฎ"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "มหาวชิรมงกุฎ"),
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 == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null :
- p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ป.ช. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
- Result = $"ได้รับ ป.ช. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
-
- }
- })
- .ToList();
-
-
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ป.ช. วันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()} หรือก่อนหน้านั้น)",
+ Result = $"ได้รับ ป.ช. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -4316,7 +6088,8 @@ namespace BMA.EHR.Application.Repositories
#region " บริหาร "
- public async Task> GetInsigniaCandidate_Type4_Level10(Guid periodId, Guid ocId)
+ public async Task> GetInsigniaCandidate_Type4_Level10(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -4325,25 +6098,32 @@ namespace BMA.EHR.Application.Repositories
if (period == null)
throw new Exception(GlobalMessages.CoinPeriodNotFound);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -4351,80 +6131,132 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ประถมาภรณ์มงกุฎไทย"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ประถมาภรณ์มงกุฎไทย"),
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 == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null :
- p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้ ท.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ท.ช. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
- Result = $"ได้รับ ท.ช. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ท.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ท.ช. วันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()} หรือก่อนหน้านั้น)",
+ Result = $"ได้รับ ท.ช. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -4432,80 +6264,132 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ประถมาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ประถมาภรณ์ช้างเผือก"),
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 == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null :
- p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
- Result = $"ได้รับ ป.ม. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. วันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()} หรือก่อนหน้านั้น)",
+ Result = $"ได้รับ ป.ม. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -4513,64 +6397,110 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "มหาวชิรมงกุฎ"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "มหาวชิรมงกุฎ"),
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 == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null :
- p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ป.ช. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
- Result = $"ได้รับ ป.ช. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
-
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ป.ช. วันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()} หรือก่อนหน้านั้น)",
+ Result = $"ได้รับ ป.ช. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -4612,7 +6542,8 @@ namespace BMA.EHR.Application.Repositories
}
}
- public async Task> GetInsigniaCandidate_Type4_Level11(Guid periodId, Guid ocId)
+ public async Task> GetInsigniaCandidate_Type4_Level11(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -4621,25 +6552,32 @@ namespace BMA.EHR.Application.Repositories
if (period == null)
throw new Exception(GlobalMessages.CoinPeriodNotFound);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ // var allProfilesByRoot =
+ // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
var CurrentRetireDate = new DateTime(period.Year, 9, 30);
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 &&
- x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "สูง") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -4647,85 +6585,138 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "ประถมาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "ประถมาภรณ์ช้างเผือก"),
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 == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null :
- p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
- .Where(x => x.SalaryPosition == 14500)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
- Result = $"ได้รับ ป.ม. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
- new MatchingCondition
- {
- Condition = $"ได้รับเงินประจำตำแหน่ง 14,500 บาท",
- Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition } บาท"
- }
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
+ .Where(x => x.SalaryPosition == 14500)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. วันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()} หรือก่อนหน้านั้น)",
+ Result = $"ได้รับ ป.ม. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ new MatchingCondition
+ {
+ Condition = $"ได้รับเงินประจำตำแหน่ง 14,500 บาท",
+ Result = $"ได้รับเงินประจำตำแหน่ง {p.SalaryPosition} บาท"
+ }
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "สูง") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -4733,85 +6724,138 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "มหาวชิรมงกุฎ"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "มหาวชิรมงกุฎ"),
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 == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null :
- p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
- .Where(x => x.SalaryPosition == 14500)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ช. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
- Result = $"ได้รับ ป.ช. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
- new MatchingCondition
- {
- Condition = $"ได้รับเงินประจำตำแหน่ง 14,500 บาท",
- Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition } บาท"
- }
- }
- })
- .ToList();
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3)
+ .Where(x => x.SalaryPosition == 14500)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ช. วันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()} หรือก่อนหน้านั้น)",
+ Result = $"ได้รับ ป.ช. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ new MatchingCondition
+ {
+ Condition = $"ได้รับเงินประจำตำแหน่ง 14,500 บาท",
+ Result = $"ได้รับเงินประจำตำแหน่ง {p.SalaryPosition} บาท"
+ }
+ }
+ })
+ .ToList();
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 &&
- x.InsigniaId.Value == GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id)
- .ToList()
- .Count() == 0)
+ && (p.PosLevel.PosLevelName == "สูง") // อาวุโส
+ && p.ProfileInsignia != null
+ && p.ProfileInsignia.Count > 0
+ && (p.ProfileInsignia.Where(x =>
+ x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id &&
+ x.InsigniaId.Value == GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id)
+ .ToList()
+ .Count() == 0)
//&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id)
// .OrderByDescending(x => x.Year)
// .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id
select new
{
ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
Prefix = p.Prefix == null ? null : p.Prefix,
FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}",
Position = p.Position == null ? null : p.Position,
@@ -4819,71 +6863,114 @@ namespace BMA.EHR.Application.Repositories
GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
ProfileDateAppoint = p.DateAppoint.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,
+ 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,
+ 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 ? 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,
+ 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,
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
Gender = p.Gender == null ? null : p.Gender,
- 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,
- "มหาปรมาภรณ์ช้างเผือก"),
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ PositionTypeId = p.PosType == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosType.Id,
+ PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName,
+ PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? 0
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount,
+ 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,
+ "มหาปรมาภรณ์ช้างเผือก"),
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 == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null :
- p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").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
+ 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
})
- .ToList()
- .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5)
- .Where(x => x.SalaryPosition == 14500)
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก"),
- Seq = 2,
- Gender = p.Gender,
- MatchingConditions = new List
- {
- new MatchingCondition
- {
- Condition = $"1.ได้ ม.ว.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ม.ว.ม. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
- Result = $"ได้รับ ม.ว.ม. ในปี { p.FirstRecvInsigniaYear.Value.ToThaiYear() }"
- },
- new MatchingCondition
- {
- Condition = $"ได้รับเงินประจำตำแหน่ง 14,500 บาท",
- Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition } บาท"
- }
- }
- })
- .ToList();
-
-
+ .ToList()
+ .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5)
+ .Where(x => x.SalaryPosition == 14500)
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ Prefix = p.Prefix,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก"),
+ Seq = 2,
+ Gender = p.Gender,
+ MatchingConditions = new List
+ {
+ new MatchingCondition
+ {
+ Condition =
+ $"1.ได้ ม.ว.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ม.ว.ม. วันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()} หรือก่อนหน้านั้น)",
+ Result = $"ได้รับ ม.ว.ม. ในปี {p.FirstRecvInsigniaYear.Value.ToThaiYear()}"
+ },
+ new MatchingCondition
+ {
+ Condition = $"ได้รับเงินประจำตำแหน่ง 14,500 บาท",
+ Result = $"ได้รับเงินประจำตำแหน่ง {p.SalaryPosition} บาท"
+ }
+ }
+ })
+ .ToList();
var result_candidate = new List();
@@ -4928,557 +7015,48 @@ namespace BMA.EHR.Application.Repositories
#endregion
-
#endregion
#region " Public "
///
- /// กรองรายชื่อผู้มิสิทธิ์ยื่นขอเครื่องราช
+ /// ประมวลผลรายชื่อผู้ได้รับเครื่องราชย์ของแต่ละหน่วยงาน
///
- /// รหัสของรอบการขอ
- /// รหัสโรงเรียน
+ ///
+ ///
///
- //public async Task> GetInsigniaCandidate(Guid periodId, Guid ocId)
- //{
- // try
- // {
- // var allOc = GetAllIdByRoot(ocId);
-
- // var period = await _dbContext.Set().FirstOrDefaultAsync(p => p.Id == periodId);
-
- // if (period == null)
- // throw new Exception(GlobalMessages.CoinPeriodNotFound);
-
- // var oc = await _dbContext.Set().FirstOrDefaultAsync(x => x.Id == ocId);
-
- // if (oc == null)
- // throw new Exception(GlobalMessages.OCNotFound);
-
- // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
-
- // var inst_profile = _dbContext.Set()
- // .Include(p => p.Prefix)
- // .Include(p => p.Position)
- // .Include(p => p.PosNo)
- // .Include(p => p.Insignias)
- // .ThenInclude(i => i.Insignia)
- // .Include(p => p.Salaries)
- // .Include(p => p.PositionLevel)
- // .Where(p =>
- // allOc.Contains(p.OcId == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OcId.Value) &&
- // p.IsActive == true &&
- // p.IsLeave == false &&
- // p.ProfileType == "officer" &&
- // p.DateAppoint != null
- // )
- // .Select(p => new
- // {
- // ProfileId = p.Id,
- // Prefix = p.Prefix == null ? null : p.Prefix.Name,
- // FullName = $"{(p.Prefix == null ? null : p.Prefix.Name)}{p.FirstName} {p.LastName}",
- // Position = p.Position == null ? null : p.Position.Name,
- // Rank = p.PositionLevel.Name,
- // ProfileDateAppoint = p.DateAppoint.Value,
- // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- // PosNo = p.PosNo == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosNo.Id,
- // Gender = p.Gender == null ? null : p.Gender.Name,
- // LastInsignia = p.Insignias.Count == 0 ? "" : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name,
- // LastInsigniaId = p.Insignias.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Id,
- // Salary = p.Salaries.Count() == 0 ? null : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // });
-
- // // check วันที่บรรจะต้องน้อยกว่า 29/5/ปี-5
- // var s1 = ((from p in inst_profile
- // where p.ProfileDateAppoint <= new DateTime(period.Year - 5, 5, 29)
- // && p.LastInsigniaId == Guid.Parse("00000000-0000-0000-0000-000000000000")
- // select p)
- // .ToList()
- // .Select(p => new InsigniaResultSet
- // {
- // ProfileId = p.ProfileId,
- // Prefix = p.Prefix,
- // FullName = p.FullName,
- // Position = p.Position,
- // PosNo = p.PosNo,
- // Rank = p.Rank,
- // GovAge = p.GovAge,
- // LastInsignia = p.LastInsignia,
- // LastInsigniaId = p.LastInsigniaId,
- // Salary = p.Salary,
- // RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย"),
- // Seq = 1,
- // Gender = p.Gender
- // })).ToList();
-
- // var s2 = (from p in _dbContext.Set()
- // .Include(p => p.Prefix)
- // .Include(p => p.Position)
- // .Include(p => p.PosNo)
- // .Include(p => p.Insignias)
- // .ThenInclude(i => i.Insignia)
- // .Include(p => p.Salaries)
- // .Include(p => p.PositionLevel)
- // where allOc.Contains(p.OcId == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OcId.Value)
- // && p.IsActive == true
- // && p.IsLeave == false
- // && p.DateAppoint != null
- // && p.PositionLevel.Name == "ชำนาญการ"
- // && p.ProfileType == "officer"
- // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("ตริตาภรณ์ช้างเผือก")
- // select new
- // {
- // ProfileId = p.Id,
- // Prefix = p.Prefix == null ? null : p.Prefix.Name,
- // FullName = $"{(p.Prefix == null ? null : p.Prefix.Name)}{p.FirstName} {p.LastName}",
- // Position = p.Position == null ? null : p.Position.Name,
- // Rank = p.PositionLevel.Name,
- // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- // LastInsignia = p.Insignias.Count == 0 ? "" : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name,
- // LastInsigniaId = p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Id,
- // Salary = p.Salaries.Count() == 0 ? null : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // SalaryCondition = p.Salaries.Count() == 0 ? null : p.Salaries.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // PosNo = p.PosNo == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosNo.Id,
- // Gender = p.Gender == null ? null : p.Gender.Name,
- // IsHigherLevel = IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก"),
- // })
- // .ToList()
- // .Where(x => x.SalaryCondition < 22140 && !x.IsHigherLevel)
- // .Select(p => new InsigniaResultSet
- // {
- // ProfileId = p.ProfileId,
- // Prefix = p.Prefix,
- // FullName = p.FullName,
- // Position = p.Position,
- // PosNo = p.PosNo,
- // Rank = p.Rank,
- // GovAge = p.GovAge,
- // LastInsignia = p.LastInsignia,
- // LastInsigniaId = p.LastInsigniaId,
- // Salary = p.Salary,
- // RequestInsignia = GetInsigniaByName("ตริตาภรณ์ช้างเผือก"),
- // Seq = 2,
- // Gender = p.Gender
- // })
- // .ToList();
-
- // // คศ2 ขอ ทม
- // var s3 = (from p in _dbContext.Set()
- // .Include(p => p.Prefix)
- // .Include(p => p.Position)
- // .Include(p => p.PosNo)
- // .Include(p => p.Insignias)
- // .ThenInclude(i => i.Insignia)
- // .Include(p => p.Salaries)
- // .Include(p => p.PositionLevel)
- // where p.IsActive == true
- // && allOc.Contains(p.OcId == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OcId.Value)
- // && p.IsLeave == false
- // && p.DateAppoint != null
- // && p.PositionLevel.Name == "ชำนาญการ"
- // && p.ProfileType == "officer"
- // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("ทวีติยาภรณ์มงกุฎไทย")
- // select new
- // {
- // ProfileId = p.Id,
- // Prefix = p.Prefix == null ? null : p.Prefix.Name,
- // FullName = $"{(p.Prefix == null ? null : p.Prefix.Name)}{p.FirstName} {p.LastName}",
- // Position = p.Position == null ? null : p.Position.Name,
- // Rank = p.PositionLevel.Name,
- // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- // LastInsignia = p.Insignias.Count == 0 ? "" : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name,
- // LastInsigniaId = p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Id,
- // Salary = p.Salaries.Count() == 0 ? null : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // SalaryCondition = p.Salaries.Count() == 0 ? null : p.Salaries.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // PosNo = p.PosNo == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosNo.Id,
- // Gender = p.Gender == null ? null : p.Gender.Name,
- // })
- // .ToList()
- // .Where(x => x.SalaryCondition >= 22140)
- // .Select(p => new InsigniaResultSet
- // {
- // ProfileId = p.ProfileId,
- // Prefix = p.Prefix,
- // FullName = p.FullName,
- // Position = p.Position,
- // PosNo = p.PosNo,
- // Rank = p.Rank,
- // GovAge = p.GovAge,
- // LastInsignia = p.LastInsignia,
- // LastInsigniaId = p.LastInsigniaId,
- // Salary = p.Salary,
- // RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย"),
- // Seq = 3,
- // Gender = p.Gender
- // })
- // .ToList();
-
- // // คศ2 ขอ ทช
- // var s4 = (from p in _dbContext.Set()
- // .Include(p => p.Prefix)
- // .Include(p => p.Position)
- // .Include(p => p.PosNo)
- // .Include(p => p.Insignias)
- // .ThenInclude(i => i.Insignia)
- // .Include(p => p.Salaries)
- // .Include(p => p.PositionLevel)
- // where p.IsActive == true
- // && allOc.Contains(p.OcId == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OcId.Value)
- // && p.IsLeave == false
- // && p.DateAppoint != null
- // && p.PositionLevel.Name == "ชำนาญการ"
- // && p.ProfileType == "officer"
- // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")
- // select new
- // {
- // ProfileId = p.Id,
- // Prefix = p.Prefix == null ? null : p.Prefix.Name,
- // FullName = $"{(p.Prefix == null ? null : p.Prefix.Name)}{p.FirstName} {p.LastName}",
- // Position = p.Position == null ? null : p.Position.Name,
- // Rank = p.PositionLevel.Name,
- // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- // LastInsignia = p.Insignias.Count == 0 ? "" : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name,
- // LastInsigniaId = p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Id,
- // Salary = p.Salaries.Count() == 0 ? null : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // SalaryCondition = p.Salaries.Count() == 0 ? null : p.Salaries.Where(x => x.Date < new DateTime(period.Year - 5, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // PosNo = p.PosNo == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosNo.Id,
- // Gender = p.Gender == null ? null : p.Gender.Name,
- // SalaryCondition2 = p.Salaries.Count() == 0 ? null : p.Salaries.Where(x => x.Date < new DateTime(period.Year - 5, 4, 29)).Select(x => new { order = x.Order, AsId = x.PositionLevel.Id, AsName = x.PositionLevel.Name, salary = x.Amount })
- // })
- // .ToList()
- // .Where(x => x.SalaryCondition2 != null && (x.SalaryCondition2.Where(x => x.AsName == "ชำนาญการ").Count() > 0 && x.SalaryCondition2.Where(x => x.AsName == "ชำนาญการ").OrderByDescending(x => x.order).FirstOrDefault().salary >= 22140))
- // .Select(p => new InsigniaResultSet
- // {
- // ProfileId = p.ProfileId,
- // Prefix = p.Prefix,
- // FullName = p.FullName,
- // Position = p.Position,
- // PosNo = p.PosNo,
- // Rank = p.Rank,
- // GovAge = p.GovAge,
- // LastInsignia = p.LastInsignia,
- // LastInsigniaId = p.LastInsigniaId,
- // Salary = p.Salary,
- // RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
- // Seq = 4,
- // Gender = p.Gender
- // })
- // .ToList();
-
- // // คศ3 ขอ ทช
- // var s5 = ((from p in _dbContext.Set()
- // .Include(p => p.Prefix)
- // .Include(p => p.Position)
- // .Include(p => p.PosNo)
- // .Include(p => p.Insignias)
- // .ThenInclude(i => i.Insignia)
- // .Include(p => p.Salaries)
- // .Include(p => p.PositionLevel)
- // where p.IsActive == true
- // && allOc.Contains(p.OcId == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OcId.Value)
- // && p.IsLeave == false
- // && p.DateAppoint != null
- // && p.ProfileType == "officer"
- // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")
- // select p)
- // .ToList()
- // .Select(p => new InsigniaResultSet
- // {
- // ProfileId = p.Id,
- // Prefix = p.Prefix == null ? null : p.Prefix.Name,
- // FullName = $"{(p.Prefix == null ? null : p.Prefix.Name)}{p.FirstName} {p.LastName}",
- // Position = p.Position == null ? null : p.Position.Name,
- // PosNo = p.PosNo == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosNo.Id,
- // Rank = p.PositionLevel == null ? null : p.PositionLevel.Name,
- // GovAge = p.PositionLevel == null ? null : p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- // LastInsignia = p.Insignias.Count == 0 ? "" : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name,
- // LastInsigniaId = p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).FirstOrDefault() == null ? null : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Id,
- // Salary = p.Salaries.Count() == 0 ? null : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
- // Seq = 4,
- // Gender = p.Gender == null ? null : p.Gender.Name,
- // }))
- // .ToList();
-
- // // คศ3 ขอ ปม
- // var s6 = (from p in _dbContext.Set()
- // .Include(p => p.Prefix)
- // .Include(p => p.Position)
- // .Include(p => p.PosNo)
- // .Include(p => p.Insignias)
- // .ThenInclude(i => i.Insignia)
- // .Include(p => p.Salaries)
- // .Include(p => p.PositionLevel)
- // where p.IsActive == true
- // && allOc.Contains(p.OcId == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OcId.Value)
- // && p.IsLeave == false
- // && p.DateAppoint != null
- // && p.PositionLevel.Name == "ชำนาญการพิเศษ"
- // && p.ProfileType == "officer"
- // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์มงกุฎไทย")
- // select new
- // {
- // ProfileId = p.Id,
- // Prefix = p.Prefix == null ? null : p.Prefix.Name,
- // FullName = $"{(p.Prefix == null ? null : p.Prefix.Name)}{p.FirstName} {p.LastName}",
- // Position = p.Position == null ? null : p.Position.Name,
- // Rank = p.PositionLevel.Name,
- // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- // LastInsignia = p.Insignias.Count == 0 ? "" : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name,
- // LastInsigniaId = p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Id,
- // Salary = p.Salaries.Count() == 0 ? null : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // SalaryCondition = p.Salaries.Count() == 0 ? null : p.Salaries.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // PosNo = p.PosNo == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosNo.Id,
- // Gender = p.Gender == null ? null : p.Gender.Name,
- // InsigniaConditionYear = p.Insignias.Where(x => x.Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")).Count() > 0 ? p.Insignias.Where(x => x.Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")).FirstOrDefault() != null ? p.Insignias.Where(x => x.Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")).FirstOrDefault().Year : 9999 : 9999,
- // RetireDate = p.BirthDate.CalculateRetireDate()
- // })
- // .ToList()
- // .Where(x => x.RetireDate == CurrentRetireDate && x.SalaryCondition >= 58390 && x.InsigniaConditionYear <= period.Year - 5)
- // .Select(p => new InsigniaResultSet
- // {
- // ProfileId = p.ProfileId,
- // Prefix = p.Prefix,
- // FullName = p.FullName,
- // Position = p.Position,
- // PosNo = p.PosNo,
- // Rank = p.Rank,
- // GovAge = p.GovAge,
- // LastInsignia = p.LastInsignia,
- // LastInsigniaId = p.LastInsigniaId,
- // Salary = p.Salary,
- // RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"),
- // Seq = 5,
- // Gender = p.Gender
- // })
- // .ToList();
-
- // // คศ4 ขอ ปม
- // var s7 = (from p in _dbContext.Set()
- // .Include(p => p.Prefix)
- // .Include(p => p.Position)
- // .Include(p => p.PosNo)
- // .Include(p => p.Insignias)
- // .ThenInclude(i => i.Insignia)
- // .Include(p => p.Salaries)
- // .Include(p => p.PositionLevel)
- // where p.IsActive == true
- // && allOc.Contains(p.OcId == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OcId.Value)
- // && p.IsLeave == false
- // && p.DateAppoint != null
- // && p.PositionLevel.Name == "เชี่ยวชาญ"
- // && p.ProfileType == "officer"
- // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์มงกุฎไทย")
- // select new
- // {
- // ProfileId = p.Id,
- // Prefix = p.Prefix == null ? null : p.Prefix.Name,
- // FullName = $"{(p.Prefix == null ? null : p.Prefix.Name)}{p.FirstName} {p.LastName}",
- // Position = p.Position == null ? null : p.Position.Name,
- // Rank = p.PositionLevel.Name,
- // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- // LastInsignia = p.Insignias.Count == 0 ? "" : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name,
- // LastInsigniaId = p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Id,
- // Salary = p.Salaries.Count() == 0 ? null : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // SalaryCondition = p.Salaries.Count() == 0 ? null : p.Salaries.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // PosNo = p.PosNo == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosNo.Id,
- // Gender = p.Gender == null ? null : p.Gender.Name,
- // InsigniaConditionYear = p.Insignias.Where(x => x.Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")).Count() > 0 ? p.Insignias.Where(x => x.Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")).FirstOrDefault() != null ? p.Insignias.Where(x => x.Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")).FirstOrDefault().Year : 9999 : 9999
- // })
- // .ToList()
- // .Where(x => x.InsigniaConditionYear <= period.Year - 3)
- // .Select(p => new InsigniaResultSet
- // {
- // ProfileId = p.ProfileId,
- // Prefix = p.Prefix,
- // FullName = p.FullName,
- // Position = p.Position,
- // PosNo = p.PosNo,
- // Rank = p.Rank,
- // GovAge = p.GovAge,
- // LastInsignia = p.LastInsignia,
- // LastInsigniaId = p.LastInsigniaId,
- // Salary = p.Salary,
- // RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"),
- // Seq = 5,
- // Gender = p.Gender
- // })
- // .ToList();
-
- // // คศ4 ขอ ปชa
- // var s8 = (from p in _dbContext.Set()
- // .Include(p => p.Prefix)
- // .Include(p => p.Position)
- // .Include(p => p.PosNo)
- // .Include(p => p.Insignias)
- // .ThenInclude(i => i.Insignia)
- // .Include(p => p.Salaries)
- // .Include(p => p.PositionLevel)
- // where p.IsActive == true
- // && allOc.Contains(p.OcId == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OcId.Value)
- // && p.IsLeave == false
- // && p.DateAppoint != null
- // && p.PositionLevel.Name == "เชี่ยวชาญ"
- // && p.ProfileType == "officer"
- // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์ช้างเผือก")
- // select new
- // {
- // ProfileId = p.Id,
- // Prefix = p.Prefix == null ? null : p.Prefix.Name,
- // FullName = $"{(p.Prefix == null ? null : p.Prefix.Name)}{p.FirstName} {p.LastName}",
- // Position = p.Position == null ? null : p.Position.Name,
- // Rank = p.PositionLevel.Name,
- // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- // LastInsignia = p.Insignias.Count == 0 ? "" : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name,
- // LastInsigniaId = p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Id,
- // Salary = p.Salaries.Count() == 0 ? null : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // SalaryCondition = p.Salaries.Count() == 0 ? null : p.Salaries.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // PosNo = p.PosNo == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosNo.Id,
- // Gender = p.Gender == null ? null : p.Gender.Name,
- // InsigniaConditionYear = p.Insignias.Where(x => x.Insignia.Name.Contains("ประถมาภรณ์มงกุฎไทย")).Count() > 0 ? p.Insignias.Where(x => x.Insignia.Name.Contains("ประถมาภรณ์มงกุฎไทย")).FirstOrDefault() != null ? p.Insignias.Where(x => x.Insignia.Name.Contains("ประถมาภรณ์มงกุฎไทย")).FirstOrDefault().Year : 9999 : 9999
- // })
- // .ToList()
- // .Where(x => x.InsigniaConditionYear <= period.Year - 3)
- // .Select(p => new InsigniaResultSet
- // {
- // ProfileId = p.ProfileId,
- // Prefix = p.Prefix,
- // FullName = p.FullName,
- // Position = p.Position,
- // PosNo = p.PosNo,
- // Rank = p.Rank,
- // GovAge = p.GovAge,
- // LastInsignia = p.LastInsignia,
- // LastInsigniaId = p.LastInsigniaId,
- // Salary = p.Salary,
- // RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"),
- // Seq = 6,
- // Gender = p.Gender
- // })
- // .ToList();
-
- // // คศ4 ขอ มวม
- // var s9 = (from p in _dbContext.Set()
- // .Include(p => p.Prefix)
- // .Include(p => p.Position)
- // .Include(p => p.PosNo)
- // .Include(p => p.Insignias)
- // .ThenInclude(i => i.Insignia)
- // .Include(p => p.Salaries)
- // .Include(p => p.PositionLevel)
- // where p.IsActive == true
- // && allOc.Contains(p.OcId == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OcId.Value)
- // && p.IsLeave == false
- // && p.DateAppoint != null
- // && p.PositionLevel.Name == "เชี่ยวชาญ"
- // && p.ProfileType == "officer"
- // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("มหาวชิรมงกุฎ")
- // select new
- // {
- // ProfileId = p.Id,
- // Prefix = p.Prefix == null ? null : p.Prefix.Name,
- // FullName = $"{(p.Prefix == null ? null : p.Prefix.Name)}{p.FirstName} {p.LastName}",
- // Position = p.Position == null ? null : p.Position.Name,
- // Rank = p.PositionLevel.Name,
- // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- // LastInsignia = p.Insignias.Count == 0 ? "" : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name,
- // LastInsigniaId = p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Id,
- // Salary = p.Salaries.Count() == 0 ? null : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // SalaryCondition = p.Salaries.Count() == 0 ? null : p.Salaries.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount,
- // PosNo = p.PosNo == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosNo.Id,
- // Gender = p.Gender == null ? null : p.Gender.Name,
- // InsigniaConditionYear = p.Insignias.Where(x => x.Insignia.Name.Contains("ประถมาภรณ์ช้างเผือก")).Count() > 0 ? p.Insignias.Where(x => x.Insignia.Name.Contains("ประถมาภรณ์ช้างเผือก")).FirstOrDefault() != null ? p.Insignias.Where(x => x.Insignia.Name.Contains("ประถมาภรณ์ช้างเผือก")).FirstOrDefault().Year : 9999 : 9999
-
- // })
- // .ToList()
- // .Where(x => x.InsigniaConditionYear <= period.Year - 5)
- // .Select(p => new InsigniaResultSet
- // {
- // ProfileId = p.ProfileId,
- // Prefix = p.Prefix,
- // FullName = p.FullName,
- // Position = p.Position,
- // PosNo = p.PosNo,
- // Rank = p.Rank,
- // GovAge = p.GovAge,
- // LastInsignia = p.LastInsignia,
- // LastInsigniaId = p.LastInsigniaId,
- // Salary = p.Salary,
- // RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"),
- // Seq = 7,
- // Gender = p.Gender
- // })
- // .ToList();
-
- // // คัดรายชื่อซ้ำออก
- // var s2_criteria = s4.Select(p => p.ProfileId).Union(s3.Select(p => p.ProfileId));
- // var s3_criteria = s4.Select(p => p.ProfileId).Union(s6.Select(p => p.ProfileId));
- // var s5_criteria = s4.Select(p => p.ProfileId);
- // var s7_criteria = s9.Select(p => p.ProfileId).Union(s8.Select(p => p.ProfileId));
- // var s8_criteria = s9.Select(p => p.ProfileId);
-
-
- // var s2_1 = s2.Where(x => s2_criteria.Contains(x.ProfileId)).ToList();
- // var s3_1 = s3.Where(x => s3_criteria.Contains(x.ProfileId)).ToList();
- // var s5_1 = s5.Where(x => s5_criteria.Contains(x.ProfileId)).ToList();
- // var s7_1 = s7.Where(x => s7_criteria.Contains(x.ProfileId)).ToList();
- // var s8_1 = s8.Where(x => s8_criteria.Contains(x.ProfileId)).ToList();
-
- // var ret = new List();
- // if (s1.Count() > 0)
- // ret.AddRange(s1);
- // if (s2_1.Count() > 0)
- // ret.AddRange(s2_1);
- // if (s3_1.Count() > 0)
- // ret.AddRange(s3_1);
- // if (s4.Count() > 0)
- // ret.AddRange(s4);
- // if (s5_1.Count() > 0)
- // ret.AddRange(s5_1);
- // if (s6.Count() > 0)
- // ret.AddRange(s6);
- // if (s7_1.Count() > 0)
- // ret.AddRange(s7_1);
- // if (s8_1.Count() > 0)
- // ret.AddRange(s8_1);
- // if (s9.Count() > 0)
- // ret.AddRange(s9);
-
- // return ret.OrderBy(x => x.Seq).ThenBy(x => x.Gender).ThenBy(x => x.ProfileId).ToList();
-
- // }
- // catch
- // {
- // throw;
- // }
- //}
-
public async Task> GetInsigniaCandidateBKK(Guid periodId, Guid ocId)
{
try
{
-
var result_candidate = new List();
- if (ocId != Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3")) return result_candidate;
+ //if (ocId != Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3")) return result_candidate;
- var type_coin = await GetCoinCandidate(periodId, ocId);
- var employee_type1 = await GetEmployeeInsignia_Type1(periodId, ocId);
- var employee_type2 = await GetEmployeeInsignia_Type2(periodId, ocId);
- var type1_level1 = await GetInsigniaCandidate_Type1_Level1(periodId, ocId);
- var type1_level2 = await GetInsigniaCandidate_Type1_Level2(periodId, ocId);
- var type1_level3 = await GetInsigniaCandidate_Type1_Level3(periodId, ocId);
- var type1_level4 = await GetInsigniaCandidate_Type1_Level4(periodId, ocId);
- var type2_level5 = await GetInsigniaCandidate_Type2_Level5(periodId, ocId);
- var type2_level6 = await GetInsigniaCandidate_Type2_Level6(periodId, ocId);
- var type2_level7 = await GetInsigniaCandidate_Type2_Level7(periodId, ocId);
- var type2_level8 = await GetInsigniaCandidate_Type2_Level8(periodId, ocId);
- var type2_level9_1 = await GetInsigniaCandidate_Type2_Level9_1(periodId, ocId);
- var type2_level9_2 = await GetInsigniaCandidate_Type2_Level9_2(periodId, ocId);
- var type3_level10 = await GetInsigniaCandidate_Type3_Level10(periodId, ocId);
- var type3_level11 = await GetInsigniaCandidate_Type3_Level11(periodId, ocId);
- var type4_level10 = await GetInsigniaCandidate_Type4_Level10(periodId, ocId);
- var type4_level11 = await GetInsigniaCandidate_Type4_Level11(periodId, ocId);
+ var allOfficerProfilesByRoot =
+ (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ var allEmployeeProfileByRoot =
+ (await _userProfileRepository.GetEmployeeProfileByRootIdAsync(ocId, AccessToken));
+
+ var type_coin = await GetCoinCandidate(periodId, ocId, allOfficerProfilesByRoot);
+ var employee_type1 = await GetEmployeeInsignia_Type1(periodId, ocId, allEmployeeProfileByRoot);
+ var employee_type2 = await GetEmployeeInsignia_Type2(periodId, ocId, allEmployeeProfileByRoot);
+ var type1_level1 = await GetInsigniaCandidate_Type1_Level1(periodId, ocId, allOfficerProfilesByRoot);
+ var type1_level2 = await GetInsigniaCandidate_Type1_Level2(periodId, ocId, allOfficerProfilesByRoot);
+ var type1_level3 = await GetInsigniaCandidate_Type1_Level3(periodId, ocId, allOfficerProfilesByRoot);
+ var type1_level4 = await GetInsigniaCandidate_Type1_Level4(periodId, ocId, allOfficerProfilesByRoot);
+ var type2_level5 = await GetInsigniaCandidate_Type2_Level5(periodId, ocId, allOfficerProfilesByRoot);
+ var type2_level6 = await GetInsigniaCandidate_Type2_Level6(periodId, ocId, allOfficerProfilesByRoot);
+ var type2_level7 = await GetInsigniaCandidate_Type2_Level7(periodId, ocId, allOfficerProfilesByRoot);
+ var type2_level8 = await GetInsigniaCandidate_Type2_Level8(periodId, ocId, allOfficerProfilesByRoot);
+ var type2_level9_1 =
+ await GetInsigniaCandidate_Type2_Level9_1(periodId, ocId, allOfficerProfilesByRoot);
+ var type2_level9_2 =
+ await GetInsigniaCandidate_Type2_Level9_2(periodId, ocId, allOfficerProfilesByRoot);
+ var type3_level10 = await GetInsigniaCandidate_Type3_Level10(periodId, ocId, allOfficerProfilesByRoot);
+ var type3_level11 = await GetInsigniaCandidate_Type3_Level11(periodId, ocId, allOfficerProfilesByRoot);
+ var type4_level10 = await GetInsigniaCandidate_Type4_Level10(periodId, ocId, allOfficerProfilesByRoot);
+ var type4_level11 = await GetInsigniaCandidate_Type4_Level11(periodId, ocId, allOfficerProfilesByRoot);
//var type = await GetInsigniaCandidate(periodId, ocId);
// union result
@@ -5488,96 +7066,112 @@ namespace BMA.EHR.Application.Repositories
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in type4_level11)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in type4_level10)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in type3_level11)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in type3_level10)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in type2_level9_2)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in type2_level9_1)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in type2_level8)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in type2_level7)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in type2_level6)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in type2_level5)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in type1_level4)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in type1_level3)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in type1_level2)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in type1_level1)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in employee_type2)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
}
+
foreach (var r in employee_type1)
{
var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
@@ -5599,39 +7193,41 @@ namespace BMA.EHR.Application.Repositories
}
}
- public async Task> GetEmployeeInsigniaCandidateBKK(Guid periodId, Guid ocId)
- {
- try
- {
- var result_candidate = new List();
-
- var type1 = await GetEmployeeInsignia_Type1(periodId, ocId);
- var type2 = await GetEmployeeInsignia_Type2(periodId, ocId);
-
- // union result
- foreach (var r in type2)
- {
- var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
- if (old == null)
- result_candidate.Add(r);
- }
- foreach (var r in type1)
- {
- var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
- if (old == null)
- result_candidate.Add(r);
- }
-
- return result_candidate.OrderBy(x => x.Seq).ThenBy(x => x.Gender).ThenBy(x => x.ProfileId).ToList();
- }
- catch
- {
- throw;
- }
- }
+ // public async Task> GetEmployeeInsigniaCandidateBKK(Guid periodId, Guid ocId)
+ // {
+ // try
+ // {
+ // var result_candidate = new List();
+ //
+ // var type1 = await GetEmployeeInsignia_Type1(periodId, ocId);
+ // var type2 = await GetEmployeeInsignia_Type2(periodId, ocId);
+ //
+ // // union result
+ // foreach (var r in type2)
+ // {
+ // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
+ // if (old == null)
+ // result_candidate.Add(r);
+ // }
+ //
+ // foreach (var r in type1)
+ // {
+ // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
+ // if (old == null)
+ // result_candidate.Add(r);
+ // }
+ //
+ // return result_candidate.OrderBy(x => x.Seq).ThenBy(x => x.Gender).ThenBy(x => x.ProfileId).ToList();
+ // }
+ // catch
+ // {
+ // throw;
+ // }
+ // }
//กรองรายชื่อผู้มิสิทธิ์ยื่นขอเหรียญจักรพรรดิมาลา
- public async Task> GetCoinCandidate(Guid periodId, Guid ocId)
+ public async Task> GetCoinCandidate(Guid periodId, Guid ocId,
+ List allProfilesByRoot)
{
try
{
@@ -5642,7 +7238,7 @@ namespace BMA.EHR.Application.Repositories
if (period == null)
throw new Exception(GlobalMessages.CoinPeriodNotFound);
- var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
+ //var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken));
//var inst_profile = _dbContext.Set()
@@ -5677,59 +7273,92 @@ namespace BMA.EHR.Application.Repositories
// });
var inst_profile = allProfilesByRoot.Where(x => x.DateAppoint != null)
- .Select(p => new
- {
- ProfileId = p.Id,
- Prefix = p.Prefix ?? "",
- FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}",
- Position = p.Position ?? "",
- Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
- ProfileDateAppoint = p.DateAppoint.Value,
- GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
- PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
- PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id,
- PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
- 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 ? "" :
- 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 :
- 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,
- });
+ .Select(p => new
+ {
+ ProfileId = p.Id,
+ p.CitizenId,
+ p.FirstName,
+ p.LastName,
+ p.BirthDate,
+ p.DateAppoint,
+
+ Prefix = p.Prefix ?? "",
+ FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}",
+ Position = p.Position ?? "",
+ Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ ProfileDateAppoint = p.DateAppoint.Value,
+ GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
+ PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0
+ ? ""
+ : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo,
+ PositionLevelId = p.PosLevel == null
+ ? Guid.Parse("00000000-0000-0000-0000-000000000000")
+ : p.PosLevel.Id,
+ PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName,
+ 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 ? "" :
+ 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 :
+ 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,
+ });
// check วันที่บรรจะต้องมากกว่า 25 ปี
var result = ((from p in inst_profile
where p.ProfileDateAppoint <= new DateTime(period.Year - 25, 5, 29)
select p)
- .ToList()
- .Select(p => new InsigniaResultSet
- {
- ProfileId = p.ProfileId,
- Prefix = p.Prefix,
- FullName = p.FullName,
- Position = p.Position,
- PosNo = p.PosNo,
- Rank = p.Rank,
- GovAge = p.GovAge,
- LastInsignia = p.LastInsignia,
- LastInsigniaId = p.LastInsigniaId,
- Salary = p.Salary,
- RequestInsignia = GetInsigniaByName("เหรียญจักรพรรดิมาลา"),
- Seq = 1,
- Gender = p.Gender,
- MatchingConditions = new List(),
- })).ToList();
+ .ToList()
+ .Select(p => new InsigniaResultSet
+ {
+ ProfileId = p.ProfileId,
+ CitizenId = p.CitizenId,
+ Prefix = p.Prefix,
+ FirstName = p.FirstName,
+ LastName = p.LastName,
+ PosLevelName = p.PositionLevelName,
+ PosTypeName = p.PositionTypeName,
+ PositionSalary = p.PostionSalaryAmount,
+ BirthDate = p.BirthDate,
+ DateAppoint = p.DateAppoint,
+ FullName = p.FullName,
+ Position = p.Position,
+ PosNo = p.PosNo,
+ Rank = p.Rank,
+ GovAge = p.GovAge,
+ LastInsignia = p.LastInsignia,
+ LastInsigniaId = p.LastInsigniaId,
+ Salary = p.Salary,
+ RequestInsignia = GetInsigniaByName("เหรียญจักรพรรดิมาลา"),
+ Seq = 1,
+ Gender = p.Gender,
+ MatchingConditions = new List(),
+ })).ToList();
var result_candidate = new List();
@@ -5780,8 +7409,8 @@ namespace BMA.EHR.Application.Repositories
try
{
var req = await _dbContext.Set()
- .Where(x => x.OrganizationId != null)
- .FirstOrDefaultAsync(x => x.Period.Id == period && x.OrganizationId == ocId);
+ .Where(x => x.OrganizationId != null)
+ .FirstOrDefaultAsync(x => x.Period.Id == period && x.OrganizationId == ocId);
if (req == null)
return null;
return req.Id;
@@ -5802,8 +7431,8 @@ namespace BMA.EHR.Application.Repositories
if (req != null)
{
var insigniaRequestProfiles = await _dbContext.Set()
- .Where(x => x.Request.Id == req)
- .ToListAsync();
+ .Where(x => x.Request.Id == req)
+ .ToListAsync();
foreach (var insigniaRequestProfile in insigniaRequestProfiles)
{
insigniaRequestProfile.IsApprove = true;
@@ -5824,25 +7453,25 @@ namespace BMA.EHR.Application.Repositories
try
{
var period = await _dbContext.Set()
- .Select(p => new
- {
- Id = p.Id,
- Name = p.Name,
- Round = p.Round,
- Year = p.Year,
- IsLock = p.IsLock,
- })
- .FirstOrDefaultAsync(x => x.Id == id);
+ .Select(p => new
+ {
+ Id = p.Id,
+ Name = p.Name,
+ Round = p.Round,
+ Year = p.Year,
+ IsLock = p.IsLock,
+ })
+ .FirstOrDefaultAsync(x => x.Id == id);
if (period == null)
return null;
else
{
var request = await _dbContext.Set()
- .Include(x => x.Document)
- //.Include(x => x.Organization)
- //.ThenInclude(x => x.OrganizationOrganization)
- .FirstOrDefaultAsync(x => x.Period.Id == period.Id && x.OrganizationId == ocId);
+ .Include(x => x.Document)
+ //.Include(x => x.Organization)
+ //.ThenInclude(x => x.OrganizationOrganization)
+ .FirstOrDefaultAsync(x => x.Period.Id == period.Id && x.OrganizationId == ocId);
var oc = _userProfileRepository.GetOc(ocId, 0, AccessToken);
@@ -5857,9 +7486,12 @@ namespace BMA.EHR.Application.Repositories
RequestNote = request == null ? "" : request.RequestNote,
RequestStatus = request == null ? null : request.RequestStatus,
OrganizationName = request == null ? "" : oc.Root,
- Document = request == null ? null : (request.Document == null ? null : await _documentService.ImagesPath(request.Document.Id)),
+ Document = request == null
+ ? null
+ : (request.Document == null
+ ? null
+ : await _documentService.ImagesPath(request.Document.Id)),
};
-
}
}
catch
@@ -5941,67 +7573,82 @@ namespace BMA.EHR.Application.Repositories
if (id != null)
{
var raw_result = _dbContext.Set()
- .Include(x => x.Request)
- .Include(x => x.RequestInsignia)
- .ThenInclude(x => x.InsigniaType)
+ .Include(x => x.Request)
+ .Include(x => x.RequestInsignia)
+ .ThenInclude(x => x.InsigniaType)
+ .Where(h => status.Trim().ToUpper() == "ALL"
+ ? h.Status != null
+ : h.Status == status.Trim().ToUpper())
+ .Where(h => h.Request.Id == id)
+ .ToList();
- .Where(h => status.Trim().ToUpper() == "ALL" ? h.Status != null : h.Status == status.Trim().ToUpper())
- .Where(h => h.Request.Id == id)
- .ToList();
+ var result = raw_result
+ .Select(h => new InsigniaRequestItem
+ {
+ Id = h.Id,
+ CitizenId = h.CitizenId,
+ ProfileId = h.ProfileId,
+ ProfileType = h.ProfileType,
+ FullName = $"{h.Prefix}{h.FirstName} {h.LastName}",
+ Position = h.Position,
+ PosNo = h.PosNo,
+ Rank = $"{h.PosTypeName}/{h.PosLevelName}",
+ Salary = h.Salary.ToString(),
+ LastInsignia = h.LastInsigniaName,
+ //Profile = _userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken),
+ RequestInsignia = h.RequestInsignia.Name,
+ RequestInsigniaShortName = h.RequestInsignia.ShortName,
+ Level = h.RequestInsignia.InsigniaType.Name,
+ IsApprove = h.IsApprove,
+ RequestDate = h.RequestDate,
+ Status = h.Status,
+ RequestNote = h.ReasonReject,
+ Reason = h.Reason,
+ MarkDiscipline = h.MarkDiscipline,
+ MarkLeave = h.MarkLeave,
+ MarkRate = h.MarkRate,
+ //Salary = h.Salary == null ? 0 : h.Salary.Value,
+ // Docs = GetDocFile(h.Profile.Id),
+ MatchingConditions = h.MatchingConditions == null || h.MatchingConditions == ""
+ ? null
+ : JsonConvert.DeserializeObject>(h.MatchingConditions)
+ })
+ .ToList();
- var pre_result = raw_result
- .Select(h => new
- {
- Id = h.Id,
- Profile = _userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken),
- RequestInsignia = h.RequestInsignia.Name,
- RequestInsigniaShortName = h.RequestInsignia.ShortName,
- Level = h.RequestInsignia.InsigniaType.Name,
- IsApprove = h.IsApprove,
- RequestDate = h.RequestDate,
- Status = h.Status,
- RequestNote = h.ReasonReject,
- Reason = h.Reason,
- MarkDiscipline = h.MarkDiscipline,
- MarkLeave = h.MarkLeave,
- MarkRate = h.MarkRate,
- Salary = h.Salary == null ? 0 : h.Salary.Value,
- // Docs = GetDocFile(h.Profile.Id),
- MatchingConditions = h.MatchingConditions == null || h.MatchingConditions == "" ? null : JsonConvert.DeserializeObject>(h.MatchingConditions)
- })
- .ToList();
-
- var result = (pre_result
- .Select(h => new InsigniaRequestItem
- {
- Id = h.Id,
- CitizenId = h.Profile.CitizenId,
- ProfileId = h.Profile.Id,
- ProfileType = "officer",
- //ProfileType = h.Profile.ProfileType,
- FullName = $"{h.Profile.Prefix}{h.Profile.FirstName} {h.Profile.LastName}",
- Position = h.Profile.Position,
- PosNo = h.Profile.ProfileSalary == null || h.Profile.ProfileSalary.Count == 0 ? "" :
- h.Profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PosNo,
- Rank = h.Profile.PosLevel.PosLevelName,
-
- Salary = h.Salary.ToString(),
- LastInsignia = h.Profile.ProfileInsignia == null || h.Profile.ProfileInsignia.Count == 0 ? "" :
- GetInsigniaById(h.Profile.ProfileInsignia.OrderByDescending(x => x.Year).FirstOrDefault().Id.Value).Name,
- RequestInsignia = h.RequestInsignia,
- RequestInsigniaShortName = h.RequestInsigniaShortName,
- Level = h.Level,
- IsApprove = h.IsApprove,
- RequestDate = h.RequestDate,
- Status = h.Status,
- RequestNote = h.RequestNote,
- Reason = h.Reason,
- MarkDiscipline = h.MarkDiscipline,
- MarkLeave = h.MarkLeave,
- MarkRate = h.MarkRate,
- // Docs = GetDocFile(h.Profile.Id),
- MatchingConditions = h.MatchingConditions
- })).ToList();
+ // var result = (pre_result
+ // .Select(h => new InsigniaRequestItem
+ // {
+ // Id = h.Id,
+ // CitizenId = h.Profile.CitizenId,
+ // ProfileId = h.Profile.Id,
+ // ProfileType = "officer",
+ // //ProfileType = h.Profile.ProfileType,
+ // FullName = $"{h.Profile.Prefix}{h.Profile.FirstName} {h.Profile.LastName}",
+ // Position = h.Profile.Position,
+ // PosNo = h.Profile.ProfileSalary == null || h.Profile.ProfileSalary.Count == 0
+ // ? ""
+ // : h.Profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PosNo,
+ // Rank = h.Profile.PosLevel.PosLevelName,
+ //
+ // Salary = h.Salary.ToString(),
+ // LastInsignia = h.Profile.ProfileInsignia == null || h.Profile.ProfileInsignia.Count == 0
+ // ? ""
+ // : GetInsigniaById(h.Profile.ProfileInsignia.OrderByDescending(x => x.Year)
+ // .FirstOrDefault().Id.Value).Name,
+ // RequestInsignia = h.RequestInsignia,
+ // RequestInsigniaShortName = h.RequestInsigniaShortName,
+ // Level = h.Level,
+ // IsApprove = h.IsApprove,
+ // RequestDate = h.RequestDate,
+ // Status = h.Status,
+ // RequestNote = h.RequestNote,
+ // Reason = h.Reason,
+ // MarkDiscipline = h.MarkDiscipline,
+ // MarkLeave = h.MarkLeave,
+ // MarkRate = h.MarkRate,
+ // // Docs = GetDocFile(h.Profile.Id),
+ // MatchingConditions = h.MatchingConditions
+ // })).ToList();
return result;
}
@@ -6009,7 +7656,6 @@ namespace BMA.EHR.Application.Repositories
{
return null;
}
-
}
catch
{
@@ -6122,10 +7768,12 @@ namespace BMA.EHR.Application.Repositories
var periodOlds = await _dbContext.Set().Where(p => p.Year == period.Year).ToListAsync();
foreach (var periodOld in periodOlds)
{
- var requestOlds = await _dbContext.Set().Where(p => p.Period == periodOld).ToListAsync();
+ var requestOlds = await _dbContext.Set().Where(p => p.Period == periodOld)
+ .ToListAsync();
foreach (var requestOld in requestOlds)
{
- var profileOlds = await _dbContext.Set().Where(p => p.Request == requestOld).Select(x => x.ProfileId).ToListAsync();
+ var profileOlds = await _dbContext.Set()
+ .Where(p => p.Request == requestOld).Select(x => x.ProfileId).ToListAsync();
items = items.Where(x => !profileOlds.Contains(x.ProfileId)).ToList();
}
}
@@ -6152,28 +7800,52 @@ namespace BMA.EHR.Application.Repositories
foreach (var item in items)
{
- //var pf = await _dbContext.Set().FirstOrDefaultAsync(p => p.Id == item.ProfileId);
- var pf = _userProfileRepository.GetOfficerProfileById(item.ProfileId, AccessToken);
- var req_insignia = await _dbContext.Set().FirstOrDefaultAsync(i => i.Id == item.RequestInsignia.Id);
+ //var pf = _userProfileRepository.GetOfficerProfileById(item.ProfileId, AccessToken);
- if (pf != null)
+ //if (pf == null) throw new Exception(GlobalMessages.InsigniaRequestProfileNotFound);
+
+ // var lastProfileSalary = pf.ProfileSalary == null || pf.ProfileSalary.Count == 0
+ // ? null
+ // : pf.ProfileSalary.MaxBy(x => x.Order);
+
+ var reqInsignia = await _dbContext.Set()
+ .FirstOrDefaultAsync(i => i.Id == item.RequestInsignia.Id);
+
+ if (reqInsignia == null) throw new Exception(GlobalMessages.InsigniaNotFound);
+
+ req.RequestProfiles.Add(new InsigniaRequestProfile
{
- req.RequestProfiles.Add(new InsigniaRequestProfile
- {
- Status = "PENDING",
- ProfileId = pf.Id,
- RequestInsignia = req_insignia,
- Salary = item.Salary == null ? null : item.Salary,
- RequestDate = DateTime.Now,
- MatchingConditions = System.Text.Json.JsonSerializer.Serialize(item.MatchingConditions), // serialize to string
- CreatedFullName = FullName ?? "System Administrator",
- CreatedUserId = UserId ?? "",
- CreatedAt = DateTime.Now,
- LastUpdateFullName = FullName ?? "System Administrator",
- LastUpdateUserId = UserId ?? "",
- LastUpdatedAt = DateTime.Now,
- });
- }
+ Status = "PENDING",
+ ProfileId = item.ProfileId,
+ RequestInsignia = reqInsignia,
+ Salary = item.Salary,
+ RequestDate = DateTime.Now,
+ MatchingConditions =
+ System.Text.Json.JsonSerializer.Serialize(item.MatchingConditions),
+ CreatedFullName = FullName ?? "System Administrator",
+ CreatedUserId = UserId ?? "",
+ CreatedAt = DateTime.Now,
+ LastUpdateFullName = FullName ?? "System Administrator",
+ LastUpdateUserId = UserId ?? "",
+ LastUpdatedAt = DateTime.Now,
+
+ // Add Information for reused in API Call
+ ProfileType = item.ProfileType ?? "officer",
+ Prefix = item.Prefix,
+ FirstName = item.FirstName,
+ LastName = item.LastName,
+ CitizenId = item.CitizenId,
+ BirthDate = item.BirthDate,
+ DateAppoint = item.DateAppoint,
+ Position = item.Position,
+ Gender = item.Gender,
+ PosTypeName = item.PosTypeName,
+ PosLevelName = item.PosLevelName,
+ PosNo = item.PosNo,
+ Amount = item.Salary,
+ PositionSalaryAmount = item.PositionSalary,
+ LastInsigniaName = item.LastInsignia
+ });
}
await _dbContext.Set().AddAsync(req);
@@ -6185,74 +7857,6 @@ namespace BMA.EHR.Application.Repositories
}
}
- // เช็คข้อมูลใน kp7insignia
- // public async ProfileInsignia ListKp7Insignia(string name, string profile, int year)
- // {
- // try
- // {
- // var item = await _dbContext.Set().AsQueryable()
- // .Include(x => x.Insignia)
- // .Include(x => x.Profile)
- // .FirstOrDefault(x => x.Profile.Id == profile &&
- // x.Year == year &&
- // x.Insignia.Name.Contains(name));
-
- // return item;
- // }
- // catch
- // {
- // throw;
- // }
- // }
-
- // บันทึกข้อมูลลง กพ.7
- // public async ProfileInsignia InsertKp7Insignia(InsigniaKp7Item kp7, InsigniaProfile profile)
- // {
- // try
- // {
- // var pf = await _dbContext.Set().FirstOrDefault(x => x.Id == profile.FkProfileId);
- // var insignia = await _dbContext.Set().FirstOrDefault(x => x.Name == profile.InsigniaName);
-
- // var kp7Insignia = new ProfileInsignia
- // {
- // Profile = pf,
- // Year = DateTime.Now.Year,
- // DateReceive = kp7.InsigniaDatereceive.Value,
- // Insignia = insignia,
- // Level = kp7.InsigniaLevel,
- // No = profile.InsigniaNo,
- // Issue = kp7.InsigniaIssue,
- // VolumeNo = kp7.InsigniaVolumeno.Value.ToString(),
- // Volume = kp7.InsigniaVolume,
- // Section = kp7.InsigniaSection,
- // DateStamp = DateTime.Now,
- // DateAnnounce = kp7.InsigniaDateannounce.Value,
- // Page = profile.InsigniaPage,
- // };
-
- // return kp7Insignia;
- // }
- // catch
- // {
- // throw;
- // }
- // }
-
- // update กพ.7
- // public async ProfileInsignia UpdateKp7Insignia(Guid id)
- // {
- // try
- // {
- // var item = await _dbContext.Set().FirstOrDefaultAsync(x => x.Id == id);
-
- // return item;
- // }
- // catch
- // {
- // throw;
- // }
- // }
-
#endregion
}
-}
+}
\ No newline at end of file
diff --git a/BMA.EHR.Application/Requests/InsigniaResultSet.cs b/BMA.EHR.Application/Requests/InsigniaResultSet.cs
index e83319ca..33b683e3 100644
--- a/BMA.EHR.Application/Requests/InsigniaResultSet.cs
+++ b/BMA.EHR.Application/Requests/InsigniaResultSet.cs
@@ -6,28 +6,46 @@ namespace BMA.EHR.Application.Requests
{
public Guid ProfileId { get; set; }
- public string Prefix { get; set; }
+ public string CitizenId { get; set; } = String.Empty;
- public string FullName { get; set; }
+ public string Prefix { get; set; } = String.Empty;
+
+ public string FirstName { get; set; } = String.Empty;
+
+ public string LastName { get; set; } = String.Empty;
+
+ public DateTime? BirthDate { get; set; }
+
+ public DateTime? DateAppoint { get; set; }
+
+ public string? ProfileType { get; set; }
+
+ public string? PosTypeName { get; set; }
+
+ public string? PosLevelName { get; set; }
- public string Position { get; set; }
+ public string FullName { get; set; } = String.Empty;
- public string Rank { get; set; }
+ public string Position { get; set; } = String.Empty;
- public string GovAge { get; set; }
+ public string Rank { get; set; } = String.Empty;
+
+ public string GovAge { get; set; } = String.Empty;
public double? Salary { get; set; }
+
+ public double? PositionSalary { get; set; }
- public string LastInsignia { get; set; }
+ public string LastInsignia { get; set; } = String.Empty;
public Guid? LastInsigniaId { get; set; }
//public Guid PosNo { get; set; }
- public string PosNo { get; set; }
+ public string PosNo { get; set; } = String.Empty;
- public InsigniaItem RequestInsignia { get; set; }
+ public InsigniaItem RequestInsignia { get; set; } = new();
- public string Gender { get; set; }
+ public string Gender { get; set; } = String.Empty;
public int Seq { get; set; }
@@ -40,4 +58,4 @@ namespace BMA.EHR.Application.Requests
public string Result { get; set; } = "";
}
-}
+}
\ No newline at end of file
diff --git a/BMA.EHR.Domain/Models/Insignias/InsigniaRequestProfile.cs b/BMA.EHR.Domain/Models/Insignias/InsigniaRequestProfile.cs
index dc32c98a..7953c16b 100644
--- a/BMA.EHR.Domain/Models/Insignias/InsigniaRequestProfile.cs
+++ b/BMA.EHR.Domain/Models/Insignias/InsigniaRequestProfile.cs
@@ -71,5 +71,7 @@ namespace BMA.EHR.Domain.Models.Insignias
public string? PosNo { get; set; }
public double? Amount { get; set; }
public double? PositionSalaryAmount { get; set; }
+
+ public string? LastInsigniaName { get; set; }
}
}
diff --git a/BMA.EHR.Infrastructure/BMA.EHR.Infrastructure.csproj b/BMA.EHR.Infrastructure/BMA.EHR.Infrastructure.csproj
index 5a47e960..9bae0b2e 100644
--- a/BMA.EHR.Infrastructure/BMA.EHR.Infrastructure.csproj
+++ b/BMA.EHR.Infrastructure/BMA.EHR.Infrastructure.csproj
@@ -25,6 +25,7 @@
+
diff --git a/BMA.EHR.Infrastructure/InfrastructureServiceRegistration.cs b/BMA.EHR.Infrastructure/InfrastructureServiceRegistration.cs
index d83b88df..85e8a23c 100644
--- a/BMA.EHR.Infrastructure/InfrastructureServiceRegistration.cs
+++ b/BMA.EHR.Infrastructure/InfrastructureServiceRegistration.cs
@@ -1,5 +1,6 @@
using BMA.EHR.Application.Common.Interfaces;
using BMA.EHR.Application.Repositories;
+using BMA.EHR.Infrastructure.MessageQueue;
using BMA.EHR.Infrastructure.Persistence;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
@@ -9,6 +10,15 @@ namespace BMA.EHR.Infrastructure
{
public static class InfrastructureServiceRegistration
{
+ public static IServiceCollection AddMessageQueue(this IServiceCollection services)
+ {
+ services.AddTransient();
+ services.AddTransient();
+ services.AddTransient();
+
+ return services;
+ }
+
public static IServiceCollection AddLeavePersistence(this IServiceCollection services,
IConfiguration configuration)
{
diff --git a/BMA.EHR.Infrastructure/MessageQueue/InsigniaRequestPeriod.cs b/BMA.EHR.Infrastructure/MessageQueue/InsigniaRequestPeriod.cs
new file mode 100644
index 00000000..6b7d2e5f
--- /dev/null
+++ b/BMA.EHR.Infrastructure/MessageQueue/InsigniaRequestPeriod.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace BMA.EHR.Infrastructure.MessageQueue
+{
+ public class InsigniaRequestPeriod
+ {
+ public Guid PeriodId { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/BMA.EHR.Infrastructure/MessageQueue/RabbitMQConnection.cs b/BMA.EHR.Infrastructure/MessageQueue/RabbitMQConnection.cs
new file mode 100644
index 00000000..2c69ece5
--- /dev/null
+++ b/BMA.EHR.Infrastructure/MessageQueue/RabbitMQConnection.cs
@@ -0,0 +1,45 @@
+using Microsoft.Extensions.Configuration;
+using RabbitMQ.Client;
+
+namespace BMA.EHR.Infrastructure.MessageQueue
+{
+ public class RabbitMQConnection
+ {
+ private readonly IConnection _connection;
+ private readonly IModel _channel;
+
+ private readonly IConfiguration _configuration;
+
+ ///
+ ///
+ ///
+ ///
+ public RabbitMQConnection(IConfiguration configuration)
+ {
+ _configuration = configuration;
+ var hostName = _configuration["RabbitMQ:URL"];
+ var userName = _configuration["RabbitMQ:UserName"];
+ var password = _configuration["RabbitMQ:Password"];
+
+
+ var factory = new ConnectionFactory() { HostName = hostName, UserName = userName, Password = password };
+ _connection = factory.CreateConnection();
+ _channel = _connection.CreateModel();
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public IModel GetChannel() => _channel;
+
+ ///
+ ///
+ ///
+ public void Dispose()
+ {
+ _channel?.Close();
+ _connection?.Close();
+ }
+ }
+}
\ No newline at end of file
diff --git a/BMA.EHR.Infrastructure/MessageQueue/RabbitMQConsumer.cs b/BMA.EHR.Infrastructure/MessageQueue/RabbitMQConsumer.cs
new file mode 100644
index 00000000..81b97c18
--- /dev/null
+++ b/BMA.EHR.Infrastructure/MessageQueue/RabbitMQConsumer.cs
@@ -0,0 +1,104 @@
+using System.Text;
+using BMA.EHR.Application.Repositories;
+using Microsoft.AspNetCore.Http;
+using Newtonsoft.Json;
+using RabbitMQ.Client.Events;
+
+namespace BMA.EHR.Infrastructure.MessageQueue
+{
+ public class RabbitMQConsumer
+ {
+ private readonly RabbitMQConnection _connection;
+ private readonly UserProfileRepository _userProfileRepository;
+ private readonly InsigniaPeriodsRepository _insigniaPeriodsRepository;
+
+ private readonly IHttpContextAccessor _httpContextAccessor;
+
+
+ private const string INSIGNIA_QUEUE = "bma_insignia_request";
+
+
+ public RabbitMQConsumer(RabbitMQConnection connection,
+ UserProfileRepository userProfileRepository,
+ InsigniaPeriodsRepository insigniaPeriodsRepository,
+ IHttpContextAccessor httpContextAccessor)
+ {
+ _connection = connection;
+ _userProfileRepository = userProfileRepository;
+ _insigniaPeriodsRepository = insigniaPeriodsRepository;
+ _httpContextAccessor = httpContextAccessor;
+ }
+
+ #region " Properties "
+
+ private bool? RoleAdmin => _httpContextAccessor?.HttpContext?.User?.IsInRole("admin");
+ private bool? RoleInsignia1 => _httpContextAccessor?.HttpContext?.User?.IsInRole("insignia1");
+ private bool? RoleInsignia2 => _httpContextAccessor?.HttpContext?.User?.IsInRole("insignia2");
+ private string? AccessToken => _httpContextAccessor?.HttpContext?.Request.Headers["Authorization"];
+
+ #endregion
+
+ private async Task CalculateInsigniaAsync(Guid periodId)
+ {
+ var organizations = await _userProfileRepository.GetActiveRootAsync(AccessToken);
+
+ foreach (var organization in organizations)
+ {
+ if (organization == null)
+ continue;
+
+ //if(organization.Id != Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3")) continue;
+
+ var result = await _insigniaPeriodsRepository.GetInsigniaRequest(periodId, organization.Id);
+ if (result != null)
+ {
+ Guid period = result.PeriodId;
+ string requestStatus = result.RequestStatus;
+ var candidate = await _insigniaPeriodsRepository.GetInsigniaCandidateBKK(periodId, organization.Id);
+ // ตรวจสอบว่ารายการอยู่ใน table insignia_request_new
+ if (requestStatus == null)
+ {
+ // บันทึกรายชื่อ
+ await _insigniaPeriodsRepository.InsertCandidate(period, organization.Id, candidate);
+ }
+ }
+ }
+ }
+
+ ///
+ ///
+ ///
+ public void StartReceiving()
+ {
+ var channel = _connection.GetChannel();
+ channel.QueueDeclare(queue: INSIGNIA_QUEUE,
+ durable: false,
+ exclusive: false,
+ autoDelete: false,
+ arguments: null);
+
+ var consumer = new EventingBasicConsumer(channel);
+ consumer.Received += (model, ea) =>
+ {
+ var body = ea.Body.ToArray();
+ var message = Encoding.UTF8.GetString(body);
+ //var request = JsonConvert.DeserializeObject(message);
+
+ Console.WriteLine(" [x] Received {0}", message);
+ var periodId = Guid.Parse(message);
+
+ // process insignia request while receive message
+ var res = CalculateInsigniaAsync(periodId);
+ Console.WriteLine(" [x] Success Calculate Period {0}", periodId);
+ };
+
+ channel.BasicConsume(queue: INSIGNIA_QUEUE,
+ autoAck: true,
+ consumer: consumer,
+ consumerTag: "",
+ noLocal: false,
+ exclusive: false,
+ arguments: null);
+ }
+ }
+}
\ No newline at end of file
diff --git a/BMA.EHR.Infrastructure/MessageQueue/RabbitMQProducer.cs b/BMA.EHR.Infrastructure/MessageQueue/RabbitMQProducer.cs
new file mode 100644
index 00000000..4c8ff2dc
--- /dev/null
+++ b/BMA.EHR.Infrastructure/MessageQueue/RabbitMQProducer.cs
@@ -0,0 +1,69 @@
+using System.Text;
+using Newtonsoft.Json;
+
+namespace BMA.EHR.Infrastructure.MessageQueue
+{
+ public class RabbitMQProducer
+ {
+ private readonly RabbitMQConnection _connection;
+
+ private const string INSIGNIA_QUEUE = "bma_insignia_request";
+
+ ///
+ ///
+ ///
+ ///
+ public RabbitMQProducer(RabbitMQConnection connection)
+ {
+ _connection = connection;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void SendMessage(string message)
+ {
+ var channel = _connection.GetChannel();
+ channel.QueueDeclare(queue: "myqueue",
+ durable: false,
+ exclusive: false,
+ autoDelete: false,
+ arguments: null);
+
+ var body = Encoding.UTF8.GetBytes(message);
+
+ channel.BasicPublish(exchange: "",
+ routingKey: "myqueue",
+ mandatory: false,
+ basicProperties: null,
+ body: body);
+ }
+
+ public void CalculateInsignia(Guid periodId)
+ {
+ var channel = _connection.GetChannel();
+
+ channel.QueueDeclare(queue: INSIGNIA_QUEUE,
+ durable: false,
+ exclusive: false,
+ autoDelete: false,
+ arguments: null);
+
+ // var req = new InsigniaRequestPeriod
+ // {
+ // PeriodId = periodId
+ // };
+
+ // var serializedObject = JsonConvert.SerializeObject(req);
+
+ var body = Encoding.UTF8.GetBytes(periodId.ToString("D"));
+
+ channel.BasicPublish(exchange: "",
+ routingKey: INSIGNIA_QUEUE,
+ mandatory: false,
+ basicProperties: null,
+ body: body);
+ }
+ }
+}
\ No newline at end of file
diff --git a/BMA.EHR.Infrastructure/Migrations/20240705100331_Add Last InsigniaName to Request.Designer.cs b/BMA.EHR.Infrastructure/Migrations/20240705100331_Add Last InsigniaName to Request.Designer.cs
new file mode 100644
index 00000000..5966fd75
--- /dev/null
+++ b/BMA.EHR.Infrastructure/Migrations/20240705100331_Add Last InsigniaName to Request.Designer.cs
@@ -0,0 +1,18103 @@
+//
+using System;
+using BMA.EHR.Infrastructure.Persistence;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace BMA.EHR.Infrastructure.Migrations
+{
+ [DbContext(typeof(ApplicationDBContext))]
+ [Migration("20240705100331_Add Last InsigniaName to Request")]
+ partial class AddLastInsigniaNametoRequest
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.9")
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.Command", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("AuthorizedPosition")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ตำแหน่งผู้มีอำนาจลงนาม");
+
+ b.Property("AuthorizedUserFullName")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasComment("ชื่อผู้มีอำนาจลงนาม");
+
+ b.Property("AuthorizedUserId")
+ .HasColumnType("char(36)")
+ .HasComment("รหัสอ้างอิงผู้มีอำนาจลงนาม");
+
+ b.Property("CaseFault")
+ .HasColumnType("longtext")
+ .HasComment("กรณีความผิด");
+
+ b.Property("ChairManFullName")
+ .HasColumnType("longtext")
+ .HasComment("ประธานคณะกรรมการ");
+
+ b.Property("CommandAffectDate")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันที่คำสั่งมีผล");
+
+ b.Property("CommandExcecuteDate")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันที่ออกคำสั่ง");
+
+ b.Property("CommandNo")
+ .IsRequired()
+ .HasMaxLength(10)
+ .HasColumnType("varchar(10)")
+ .HasComment("เลขที่คำสั่ง");
+
+ b.Property("CommandStatusId")
+ .HasColumnType("char(36)")
+ .HasComment("รหัสอ้างอิงสถานะคำสั่ง");
+
+ b.Property("CommandSubject")
+ .IsRequired()
+ .HasMaxLength(500)
+ .HasColumnType("varchar(500)")
+ .HasComment("คำสั่งเรื่อง");
+
+ b.Property("CommandTypeId")
+ .HasColumnType("char(36)")
+ .HasComment("รหัสอ้างอิงประเภทคำสั่ง");
+
+ b.Property("CommandYear")
+ .IsRequired()
+ .HasMaxLength(4)
+ .HasColumnType("varchar(4)")
+ .HasComment("ปีที่ออกคำสั่ง");
+
+ b.Property("ComplaintId")
+ .HasColumnType("char(36)")
+ .HasComment("Id เรื่องร้องเรียน");
+
+ b.Property("ConclusionFireDate")
+ .HasColumnType("datetime(6)")
+ .HasComment("ลงวันที่ (เรื่องการดำเนินการทางวินัย)");
+
+ b.Property("ConclusionFireNo")
+ .HasColumnType("longtext")
+ .HasComment("ครั้งที่ (เรื่องการดำเนินการทางวินัย)");
+
+ b.Property("ConclusionFireResolution")
+ .HasColumnType("longtext")
+ .HasComment("มติที่ประชุม (เรื่องการดำเนินการทางวินัย)");
+
+ b.Property("ConclusionMeetingDate")
+ .HasColumnType("datetime(6)")
+ .HasComment("การประชุม ลงวันที่");
+
+ b.Property("ConclusionMeetingNo")
+ .HasColumnType("longtext")
+ .HasComment("การประชุม ครั้งที่");
+
+ b.Property("ConclusionReceiveDate")
+ .HasColumnType("datetime(6)")
+ .HasComment("ลงวันที่ (การรับโอน)");
+
+ b.Property("ConclusionReceiveNo")
+ .HasColumnType("longtext")
+ .HasComment("มติ กก. ครั้งที่ (การรับโอน)");
+
+ b.Property("ConclusionRegisterDate")
+ .HasColumnType("datetime(6)")
+ .HasComment("ลงวันที่ (เรื่อง รับสมัครสอบฯ)");
+
+ b.Property("ConclusionRegisterNo")
+ .HasColumnType("longtext")
+ .HasComment("มติ กก. ครั้งที่ (เรื่อง รับสมัครสอบฯ)");
+
+ b.Property("ConclusionResultDate")
+ .HasColumnType("datetime(6)")
+ .HasComment("ลงวันที่ (เรื่อง ผลการสอบแข่งขัน)");
+
+ b.Property