5268 lines
376 KiB
C#
5268 lines
376 KiB
C#
// 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;
|
|
// using BMA.EHR.Domain.Shared;
|
|
// using Microsoft.AspNetCore.Http;
|
|
// using Microsoft.EntityFrameworkCore;
|
|
// using Newtonsoft.Json;
|
|
|
|
// namespace BMA.EHR.Application.Repositories
|
|
// {
|
|
// public class InsigniaPeriodsRepository : GenericRepository<Guid, InsigniaPeriod>
|
|
// {
|
|
// private readonly IApplicationDBContext _dbContext;
|
|
// private readonly IHttpContextAccessor _httpContextAccessor;
|
|
// public InsigniaPeriodsRepository(IApplicationDBContext dbContext, IHttpContextAccessor httpContextAccessor) : base(dbContext, httpContextAccessor)
|
|
// {
|
|
// _dbContext = dbContext;
|
|
// _httpContextAccessor = httpContextAccessor;
|
|
// }
|
|
|
|
// public async Task<IEnumerable<InsigniaPeriod>> FindByNameAsync(string name)
|
|
// {
|
|
// var data = await _dbContext.Set<InsigniaPeriod>().Where(x => x.Name == name).ToListAsync();
|
|
|
|
// return data;
|
|
// }
|
|
|
|
// #region " Private "
|
|
|
|
// private async Task<InsigniaItem?> GetInsigniaByName(string name)
|
|
// {
|
|
// try
|
|
// {
|
|
// var insignia = await _dbContext.Set<Insignia>()
|
|
// .Include(x => x.InsigniaType)
|
|
// .Where(x => x.Name == name)
|
|
// .Select(i => new InsigniaItem
|
|
// {
|
|
// Id = i.Id,
|
|
// Name = i.Name,
|
|
// ShortName = i.ShortName,
|
|
// Level = i.InsigniaType.Name,
|
|
// LevelId = i.InsigniaType.Id
|
|
// })
|
|
// .FirstOrDefaultAsync();
|
|
|
|
// return insignia;
|
|
// }
|
|
// catch
|
|
// {
|
|
// throw;
|
|
// }
|
|
// }
|
|
|
|
// // private bool IsHigherLevel2(string last, string request)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var last_ins = await _dbContext.Set<Insignias>().FirstOrDefault(x => x.Name.ToLower().Trim() == last.ToLower().Trim());
|
|
|
|
// // if (last_ins == null)
|
|
// // return true;
|
|
|
|
// // var req_ins = await _dbContext.Set<Insignias>().FirstOrDefault(x => x.Name.ToLower().Trim() == request.ToLower().Trim());
|
|
|
|
// // if (req_ins == null)
|
|
// // throw new Exception("Invalid Request Insignia!!");
|
|
|
|
// // return req_ins.Level > last_ins.Level;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// private static bool IsHigherLevel(string last, string request)
|
|
// {
|
|
// if (request.Contains("ตริตาภรณ์ช้างเผือก"))
|
|
// return (last.Contains("ตริตาภรณ์มงกุฎไทย")) ? false : true;
|
|
// else if (request.Contains("ทวีติยาภรณ์มงกุฎไทย"))
|
|
// return (last.Contains("ตริตาภรณ์มงกุฎไทย") ||
|
|
// last.Contains("ตริตาภรณ์ช้างเผือก")) ? false : true;
|
|
// else if (request.Contains("ทวีติยาภรณ์ช้างเผือก"))
|
|
// return (last.Contains("ตริตาภรณ์มงกุฎไทย") ||
|
|
// last.Contains("ตริตาภรณ์ช้างเผือก") ||
|
|
// last.Contains("ทวีติยาภรณ์มงกุฎไทย")) ? false : true;
|
|
// else if (request.Contains("ประถมาภรณ์มงกุฎไทย"))
|
|
// return (last.Contains("ตริตาภรณ์มงกุฎไทย") ||
|
|
// last.Contains("ตริตาภรณ์ช้างเผือก") ||
|
|
// last.Contains("ทวีติยาภรณ์มงกุฎไทย") ||
|
|
// last.Contains("ทวีติยาภรณ์ช้างเผือก")) ? false : true;
|
|
// else if (request.Contains("ประถมาภรณ์ช้างเผือก"))
|
|
// return (last.Contains("ตริตาภรณ์มงกุฎไทย") ||
|
|
// last.Contains("ตริตาภรณ์ช้างเผือก") ||
|
|
// last.Contains("ทวีติยาภรณ์มงกุฎไทย") ||
|
|
// last.Contains("ทวีติยาภรณ์ช้างเผือก") ||
|
|
// last.Contains("ประถมาภรณ์มงกุฎไทย")) ? false : true;
|
|
// else if (request.Contains("มหาวชิรมงกุฎ"))
|
|
// return (last.Contains("ตริตาภรณ์มงกุฎไทย") ||
|
|
// last.Contains("ตริตาภรณ์ช้างเผือก") ||
|
|
// last.Contains("ทวีติยาภรณ์มงกุฎไทย") ||
|
|
// last.Contains("ทวีติยาภรณ์ช้างเผือก") ||
|
|
// last.Contains("ประถมาภรณ์มงกุฎไทย") ||
|
|
// last.Contains("ประถมาภรณ์ช้างเผือก")) ? false : true;
|
|
|
|
// else return false;
|
|
// }
|
|
|
|
// // private InsigniaItem GetNextInsignia(string name)
|
|
// // {
|
|
// // if (name.Contains("ตริตาภรณ์มงกุฎไทย"))
|
|
// // return GetInsigniaByName("ตริตาภรณ์ช้างเผือก");
|
|
// // else if (name.Contains("ตริตาภรณ์ช้างเผือก"))
|
|
// // return GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย");
|
|
// // else if (name.Contains("ทวีติยาภรณ์มงกุฎไทย"))
|
|
// // return GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก");
|
|
// // else if (name.Contains("ทวีติยาภรณ์ช้างเผือก"))
|
|
// // return GetInsigniaByName("ประถมาภรณ์มงกุฎไทย");
|
|
// // else if (name.Contains("ประถมาภรณ์มงกุฎไทย"))
|
|
// // return GetInsigniaByName("ประถมาภรณ์ช้างเผือก");
|
|
// // else if (name.Contains("ประถมาภรณ์ช้างเผือก"))
|
|
// // return GetInsigniaByName("มหาวชิรมงกุฎ");
|
|
// // else return null;
|
|
// // }
|
|
|
|
// // private async bool CanRequestInsignia(string profileId, int year)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var ce_year = year;
|
|
|
|
// // var insignia = await _dbContext.Set<ProfileInsignias>()
|
|
// // .Where(x => x.Profile.Id == profileId)
|
|
// // .Where(x => x.Year == ce_year - 1)
|
|
// // .FirstOrDefaultAsync();
|
|
|
|
// // if (insignia != null)
|
|
// // return false;
|
|
// // else
|
|
// // {
|
|
// // var prev_period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(x => x.Year == ce_year - 1);
|
|
|
|
// // if (prev_period == null)
|
|
// // return true;
|
|
// // else
|
|
// // {
|
|
// // var req = await _dbContext.Set<InsigniaRequestsProfiles>()
|
|
// // .FirstOrDefault(x => x.Request.Period.Id == prev_period.Id && x.Profile.Id == profileId);
|
|
|
|
// // if (req != null)
|
|
// // return false;
|
|
// // else
|
|
// // return true;
|
|
// // }
|
|
// // }
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// #region " ทั่วไป "
|
|
|
|
// /// <summary>
|
|
// /// Gets the insignia candidate ประเภททั่วไป ระดับปฎิบัติงาน.
|
|
// /// </summary>
|
|
// /// <param name="periodId">The period identifier.</param>
|
|
// /// <param name="ocId">The oc identifier.</param>
|
|
// /// <returns></returns>
|
|
// // public async List<InsigniaResultSet> GetInsigniaCandidate_Type1_Level1(int periodId, int ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// // var inst_profile = await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // .Where(p =>
|
|
// // allOc.Contains(p.OrganizationChart.OCId) &&
|
|
// // p.IsActive == true &&
|
|
// // p.IsLeave == false &&
|
|
// // p.DateAppoint != null &&
|
|
// // p.PositionType.Id == 1 // ประเภททั่วไป
|
|
// // )
|
|
// // .Select(p => new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // PositionLevelId = p.PositionLevel.Id,
|
|
// // PositionLevelName = p.PositionLevel.Name,
|
|
// // PositionTypeId = p.PositionType.Id,
|
|
// // PositionTypeName = p.PositionType.Name,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // 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 ? -1 : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Id,
|
|
// // Salary = p.Salaries.Count() == 0 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // PostionSalaryAmount = p.Salaries.Count() == 0 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // });
|
|
|
|
// // // check วันที่บรรจะต้องน้อยกว่า 29/5/ปี-5
|
|
// // var s1 = ((from p in inst_profile
|
|
// // //where p.CanRequestInsignia == true
|
|
// // where p.ProfileDateAppoint <= new DateTime(period.Year - 5, 5, 29)
|
|
// // && p.LastInsigniaId == -1
|
|
// // && p.PositionLevelId == 1 // ปฎิบัติงาน
|
|
// // 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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.รับราชการก่อน { new DateTime(period.Year - 5, 5, 29).ToThaiFullDate3() }",
|
|
// // Result = $"วันที่บรรจุเข้ารับราชการ { p.ProfileDateAppoint.ToThaiFullDate3() }"
|
|
// // }
|
|
// // }
|
|
// // })).ToList();
|
|
|
|
// // var s2 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 1 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 1 // ปฎิบัติงาน
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("เบญจมาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "เบญจมาภรณ์ช้างเผือก"),
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // 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 await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 1 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 1 // ปฎิบัติงาน
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("จัตุรถาภรณ์มงกุฎไทย")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "จัตุรถาภรณ์มงกุฎไทย"),
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้รับเงินเดือนไม่ต่ำกว่าขั้นต่ำของระดับชำนาญงาน (เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } 10,190 บาทขึ้นไป)",
|
|
// // Result = $"ได้รับเงินเดือน { p.SalaryCondition } บาท"
|
|
// // }
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s4 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 1 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 1 // ปฎิบัติงาน
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("จัตุรถาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "จัตุรถาภรณ์ช้างเผือก"),
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // 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<InsigniaResultSet>();
|
|
|
|
// // foreach (var r in s4)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s3)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s2)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s1)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // return result_candidate;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// /// <summary>
|
|
// /// Gets the insignia candidate ประเภททั่วไป ระดับชำนาญงาน.
|
|
// /// </summary>
|
|
// /// <param name="periodId">The period identifier.</param>
|
|
// /// <param name="ocId">The oc identifier.</param>
|
|
// /// <returns></returns>
|
|
// /// <exception cref="EHR.Bangkok.Models.Log.Exception"></exception>
|
|
// // public async List<InsigniaResultSet> GetInsigniaCandidate_Type1_Level2(int periodId, int ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// // var s1 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 1 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 2 // ชำนาญงาน
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ตริตาภรณ์มงกุฎไทย")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ตริตาภรณ์มงกุฎไทย"),
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.เป็นระดับชำนาญงาน",
|
|
// // Result = $"ตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s2 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // .ThenInclude(p => p.SalaryPositionLevel)
|
|
// // .ThenInclude(p => p.PositionLevel)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 1 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 2 // ชำนาญงาน
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ตริตาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ตริตาภรณ์ช้างเผือก"),
|
|
|
|
// // FirstPositonLevelDate = p.Salaries.Count == 0 ? null :
|
|
// // p.Salaries.Where(x => x.SalaryPositionLevel.PositionLevel.Id == 2).OrderBy(p => p.SalaryDateAnnounce).FirstOrDefault().SalaryDateAnnounce
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // 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<InsigniaResultSet>();
|
|
|
|
// // foreach (var r in s2)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s1)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // return result_candidate;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// /// <summary>
|
|
// /// Gets the insignia candidate ประเภททั่วไป ระดับอาวุโส.
|
|
// /// </summary>
|
|
// /// <param name="periodId">The period identifier.</param>
|
|
// /// <param name="ocId">The oc identifier.</param>
|
|
// /// <returns></returns>
|
|
// /// <exception cref="EHR.Bangkok.Models.Log.Exception"></exception>
|
|
// // public async List<InsigniaResultSet> GetInsigniaCandidate_Type1_Level3(int periodId, int ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// // var s1 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 1 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 3 // อาวุโส
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ทวีติยาภรณ์มงกุฎไทย")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ทวีติยาภรณ์มงกุฎไทย"),
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.เป็นระดับอาวุโส",
|
|
// // Result = $"ตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s2 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // .ThenInclude(p => p.SalaryPositionLevel)
|
|
// // .ThenInclude(p => p.PositionLevel)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 1 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 3 // อาวุโส
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ทวีติยาภรณ์ช้างเผือก"),
|
|
|
|
// // FirstPositonLevelDate = p.Salaries.Count == 0 ? null :
|
|
// // p.Salaries.Where(x => x.SalaryPositionLevel.PositionLevel.Id == 3).OrderBy(p => p.SalaryDateAnnounce).FirstOrDefault().SalaryDateAnnounce
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // 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<InsigniaResultSet>();
|
|
|
|
// // foreach (var r in s2)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s1)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // return result_candidate;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// /// <summary>
|
|
// /// Gets the insignia candidate ประเภททั่วไป ระดับทักษะพิเศษ.
|
|
// /// </summary>
|
|
// /// <param name="periodId">The period identifier.</param>
|
|
// /// <param name="ocId">The oc identifier.</param>
|
|
// /// <returns></returns>
|
|
// /// <exception cref="EHR.Bangkok.Models.Log.Exception"></exception>
|
|
// // public async List<InsigniaResultSet> GetInsigniaCandidate_Type1_Level4(int periodId, int ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// // var s1 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 1 // ทั่วไป
|
|
// // && (p.PositionLevel.Id == 3 || p.PositionLevel.Id == 13) // อาวุโส
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ทวีติยาภรณ์ช้างเผือก"),
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.เป็นระดับทักษะพิเศษ",
|
|
// // Result = $"ตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s2 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // .ThenInclude(p => p.SalaryPositionLevel)
|
|
// // .ThenInclude(p => p.PositionLevel)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 1 // ทั่วไป
|
|
// // && (p.PositionLevel.Id == 3 || p.PositionLevel.Id == 13) // อาวุโส
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์มงกุฎไทย")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ประถมาภรณ์มงกุฎไทย"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ทวีติยาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ทวีติยาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault().Year,
|
|
// // FirstPositonLevelDate = p.Salaries.Count == 0 ? null :
|
|
// // p.Salaries.Where(x => x.SalaryPositionLevel.PositionLevel.Id == 3).OrderBy(p => p.SalaryDateAnnounce).FirstOrDefault().SalaryDateAnnounce
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ท.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้รับ ท.ช. ก่อนวันที่ {(new DateTime(period.Year - 3, 7, 28)).ToThaiFullDate3()})",
|
|
// // Result = $"ได้รับ ท.ช. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s3 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // .ThenInclude(p => p.SalaryPositionLevel)
|
|
// // .ThenInclude(p => p.PositionLevel)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 1 // ทั่วไป
|
|
// // && (p.PositionLevel.Id == 3 || p.PositionLevel.Id == 13) // อาวุโส
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ประถมาภรณ์ช้างเผือก"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์มงกุฎไทย").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์มงกุฎไทย").OrderBy(x => x.Year).FirstOrDefault().Year,
|
|
// // FirstPositonLevelDate = p.Salaries.Count == 0 ? null :
|
|
// // p.Salaries.Where(x => x.SalaryPositionLevel.PositionLevel.Id == 3).OrderBy(p => p.SalaryDateAnnounce).FirstOrDefault().SalaryDateAnnounce
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้รับ ป.ม. ก่อนวันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()})",
|
|
// // Result = $"ได้รับ ป.ม. ในปี { p.FirstRecvInsigniaYear }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var result_candidate = new List<InsigniaResultSet>();
|
|
|
|
// // foreach (var r in s3)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s2)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s1)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // return result_candidate;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// #endregion
|
|
|
|
// #region " วิชาการ "
|
|
|
|
|
|
// /// <summary>
|
|
// /// Gets the insignia candidate ประเภทวิชาการ ระดับปฎิบัติการ.
|
|
// /// </summary>
|
|
// /// <param name="periodId">The period identifier.</param>
|
|
// /// <param name="ocId">The oc identifier.</param>
|
|
// /// <returns></returns>
|
|
// // public async List<InsigniaResultSet> GetInsigniaCandidate_Type2_Level5(int periodId, int ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// // var inst_profile = await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // .Where(p =>
|
|
// // allOc.Contains(p.OrganizationChart.OCId) &&
|
|
// // p.IsActive == true &&
|
|
// // p.IsLeave == false &&
|
|
// // p.DateAppoint != null &&
|
|
// // p.PositionType.Id == 2 // ประเภทวิชาการ
|
|
// // )
|
|
// // .Select(p => new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // PositionLevelId = p.PositionLevel.Id,
|
|
// // PositionLevelName = p.PositionLevel.Name,
|
|
// // PositionTypeId = p.PositionType.Id,
|
|
// // PositionTypeName = p.PositionType.Name,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // 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 ? -1 : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Id,
|
|
// // Salary = p.Salaries.Count() == 0 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // PostionSalaryAmount = p.Salaries.Count() == 0 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // });
|
|
|
|
// // // check วันที่บรรจะต้องน้อยกว่า 29/5/ปี-5
|
|
// // var s1 = ((from p in inst_profile
|
|
// // //where p.CanRequestInsignia == true
|
|
// // where p.ProfileDateAppoint <= new DateTime(period.Year - 5, 5, 29)
|
|
// // && p.LastInsigniaId == -1
|
|
// // && p.PositionLevelId == 5 // ปฎิบัติการ
|
|
// // 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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.รับราชการก่อน { new DateTime(period.Year - 5, 5, 29).ToThaiFullDate3() }",
|
|
// // Result = $"วันที่บรรจุเข้ารับราชการ { p.ProfileDateAppoint.ToThaiFullDate3() }"
|
|
// // }
|
|
// // }
|
|
// // })).ToList();
|
|
|
|
|
|
|
|
// // var result_candidate = new List<InsigniaResultSet>();
|
|
|
|
// // foreach (var r in s1)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // return result_candidate;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// /// <summary>
|
|
// /// Gets the insignia candidate ประเภทวิชาการ ระดับชำนาญการ.
|
|
// /// </summary>
|
|
// /// <param name="periodId">The period identifier.</param>
|
|
// /// <param name="ocId">The oc identifier.</param>
|
|
// /// <returns></returns>
|
|
// // public async List<InsigniaResultSet> GetInsigniaCandidate_Type2_Level6(int periodId, int ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// // var s1 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && p.PositionLevel.Id == 6 // ชำนาญการ
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ตริตาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ตริตาภรณ์ช้างเผือก"),
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.เป็นระดับชำนาญการ",
|
|
// // Result = $"ตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s2 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && p.PositionLevel.Id == 6 // ชำนาญการ
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ทวีติยาภรณ์มงกุฎไทย")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ทวีติยาภรณ์มงกุฎไทย"),
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้รับเงินเดือนไม่ต่ำกว่าขั้นต่ำของระดับชำนาญการพิเศษ (เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } 22,140 บาท)",
|
|
// // Result = $"เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } เป็นเงิน { p.SalaryCondition.ToNumericText() } บาท"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s3 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && p.PositionLevel.Id == 6 // ชำนาญการ
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate < new DateTime(period.Year - 5, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ทวีติยาภรณ์ช้างเผือก"),
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // 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.ToNumericText() } บาท"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var result_candidate = new List<InsigniaResultSet>();
|
|
|
|
// // foreach (var r in s3)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s2)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s1)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // return result_candidate;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
|
|
// /// <summary>
|
|
// /// Gets the insignia candidate ประเภทวิชาการ ระดับชำนาญการพิเศษ.
|
|
// /// </summary>
|
|
// /// <param name="periodId">The period identifier.</param>
|
|
// /// <param name="ocId">The oc identifier.</param>
|
|
// /// <returns></returns>
|
|
// // public async List<InsigniaResultSet> GetInsigniaCandidate_Type2_Level7(int periodId, int ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// // var s1 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && p.PositionLevel.Id == 7 // ชำนาญการพิเศษ
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ทวีติยาภรณ์ช้างเผือก"),
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.เป็นระดับชำนาญการพิเศษ",
|
|
// // Result = $"ตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s2 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && p.PositionLevel.Id == 7 // ชำนาญการพิเศษ
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์มงกุฎไทย")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ประถมาภรณ์มงกุฎไทย"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ทวีติยาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ทวีติยาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault().Year
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้รับเงินเดือนขั้นสูง (เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } 58,390 บาท)",
|
|
// // Result = $"เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } เป็นเงิน { p.SalaryCondition.ToNumericText() } บาท"
|
|
// // },
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"2.ได้ ท.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ท.ช. วันที่ { (new DateTime(period.Year-5, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
|
|
// // Result = $"ได้รับ ท.ช. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
|
|
|
|
// // var result_candidate = new List<InsigniaResultSet>();
|
|
|
|
// // foreach (var r in s2)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s1)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // return result_candidate;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// /// <summary>
|
|
// /// Gets the insignia candidate ประเภทวิชาการ ระดับเชี่ยวชาญ.
|
|
// /// </summary>
|
|
// /// <param name="periodId">The period identifier.</param>
|
|
// /// <param name="ocId">The oc identifier.</param>
|
|
// /// <returns></returns>
|
|
// // public async List<InsigniaResultSet> GetInsigniaCandidate_Type2_Level8(int periodId, int ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// // var s1 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && p.PositionLevel.Id == 8 // เชี่ยวชสญ
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ทวีติยาภรณ์ช้างเผือก"),
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.เป็นระดับเชี่ยวชาญ",
|
|
// // Result = $"ตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s2 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && p.PositionLevel.Id == 8 // เชี่ยวชาญ
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์มงกุฎไทย")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ประถมาภรณ์มงกุฎไทย"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ทวีติยาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ทวีติยาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault().Year
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ท.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ท.ช. ก่อนวันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() })",
|
|
// // Result = $"ได้รับ ท.ช. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s3 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && p.PositionLevel.Id == 8 // เชี่ยวชาญ
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ประถมาภรณ์ช้างเผือก"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์มงกุฎไทย").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์มงกุฎไทย").OrderBy(x => x.Year).FirstOrDefault().Year
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ท.ช. ก่อนวันที่ { (new DateTime(period.Year-5, 7, 28)).ToThaiFullDate3() })",
|
|
// // Result = $"ได้รับ ป.ม. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
|
|
// // var result_candidate = new List<InsigniaResultSet>();
|
|
|
|
// // foreach (var r in s3)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s2)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s1)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // return result_candidate;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// /// <summary>
|
|
// /// Gets the insignia candidate ประเภทวิชาการ ระดับทรงคุณวุฒิ ได้เงินตำแหน้ง 13000.
|
|
// /// </summary>
|
|
// /// <param name="periodId">The period identifier.</param>
|
|
// /// <param name="ocId">The oc identifier.</param>
|
|
// /// <returns></returns>
|
|
// // public async List<InsigniaResultSet> GetInsigniaCandidate_Type2_Level9_1(int periodId, int ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// // var s1 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && (p.PositionLevel.Id == 9 || p.PositionLevel.Id == 12) // ทรงคุณวุฒิ
|
|
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ประถมาภรณ์ช้างเผือก"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์มงกุฎไทย").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์มงกุฎไทย").OrderBy(x => x.Year).FirstOrDefault().Year,
|
|
// // SalaryPosition = p.Salaries.Count == 0 ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount == null ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount.ToInteger()
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. ก่อนวันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() })",
|
|
// // Result = $"ได้รับ ป.ม. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"ได้รับเงินประจำตำแหน่ง 13,000 บาท",
|
|
// // Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition.ToNumericText() } บาท"
|
|
// // }
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s2 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && (p.PositionLevel.Id == 9 || p.PositionLevel.Id == 12) // ทรงคุณวุฒิ
|
|
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("มหาวชิรมงกุฎ")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "มหาวชิรมงกุฎ"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault().Year,
|
|
// // SalaryPosition = p.Salaries.Count == 0 ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount == null ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount.ToInteger()
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ช. ก่อนวันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() })",
|
|
// // Result = $"ได้รับ ป.ช. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"ได้รับเงินประจำตำแหน่ง 13,000 บาท",
|
|
// // Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition.ToNumericText() } บาท"
|
|
// // }
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s3 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && (p.PositionLevel.Id == 9 || p.PositionLevel.Id == 12) // ทรงคุณวุฒิ
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("มหาปรมาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "มหาปรมาภรณ์ช้างเผือก"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "มหาวชิรมงกุฎ").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "มหาวชิรมงกุฎ").OrderBy(x => x.Year).FirstOrDefault().Year,
|
|
// // SalaryPosition = p.Salaries.Count == 0 ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount == null ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount.ToInteger()
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ม.ว.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ม.ว.ม. ก่อนวันที่ { (new DateTime(period.Year-5, 7, 28)).ToThaiFullDate3() })",
|
|
// // Result = $"ได้รับ ม.ว.ม. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"ได้รับเงินประจำตำแหน่ง 13,000 บาท",
|
|
// // Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition.ToNumericText() } บาท"
|
|
// // }
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
|
|
// // var result_candidate = new List<InsigniaResultSet>();
|
|
|
|
// // foreach (var r in s3)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s2)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s1)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // return result_candidate;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// /// <summary>
|
|
// /// Gets the insignia candidate ประเภทวิชาการ ระดับทรงคุณวุฒิ ได้เงินตำแหน้ง 15600.
|
|
// /// </summary>
|
|
// /// <param name="periodId">The period identifier.</param>
|
|
// /// <param name="ocId">The oc identifier.</param>
|
|
// /// <returns></returns>
|
|
// // public async List<InsigniaResultSet> GetInsigniaCandidate_Type2_Level9_2(int periodId, int ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// // var s1 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && (p.PositionLevel.Id == 9 || p.PositionLevel.Id == 12) // ทรงคุณวุฒิ
|
|
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ประถมาภรณ์ช้างเผือก"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์มงกุฎไทย").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์มงกุฎไทย").OrderBy(x => x.Year).FirstOrDefault().Year,
|
|
// // SalaryPosition = p.Salaries.Count == 0 ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount == null ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount.ToInteger()
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. ก่อนวันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() })",
|
|
// // Result = $"ได้รับ ป.ม. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"ได้รับเงินประจำตำแหน่ง 15,600 บาท",
|
|
// // Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition.ToNumericText() } บาท"
|
|
// // }
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s2 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && (p.PositionLevel.Id == 9 || p.PositionLevel.Id == 12) // ทรงคุณวุฒิ
|
|
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("มหาวชิรมงกุฎ")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "มหาวชิรมงกุฎ"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault().Year,
|
|
// // SalaryPosition = p.Salaries.Count == 0 ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount == null ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount.ToInteger()
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ช. ก่อนวันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() })",
|
|
// // Result = $"ได้รับ ป.ช. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"ได้รับเงินประจำตำแหน่ง 15,600 บาท",
|
|
// // Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition.ToNumericText() } บาท"
|
|
// // }
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s3 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && (p.PositionLevel.Id == 9 || p.PositionLevel.Id == 12) // ทรงคุณวุฒิ
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("มหาปรมาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "มหาปรมาภรณ์ช้างเผือก"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "มหาวชิรมงกุฎ").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "มหาวชิรมงกุฎ").OrderBy(x => x.Year).FirstOrDefault().Year,
|
|
// // SalaryPosition = p.Salaries.Count == 0 ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount == null ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount.ToInteger()
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ม.ว.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ม.ว.ม. ก่อนวันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() })",
|
|
// // Result = $"ได้รับ ม.ว.ม. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"ได้รับเงินประจำตำแหน่ง 15,600 บาท",
|
|
// // Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition.ToNumericText() } บาท"
|
|
// // }
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
|
|
// // var result_candidate = new List<InsigniaResultSet>();
|
|
|
|
// // foreach (var r in s3)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s2)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s1)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // return result_candidate;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// #endregion
|
|
|
|
// #region " อำนวยการ "
|
|
|
|
// // public async List<InsigniaResultSet> GetInsigniaCandidate_Type3_Level10(int periodId, int ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// // var s1 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 3 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 10 // ระดับต้น
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ทวีติยาภรณ์ช้างเผือก"),
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.เป็นระดับอำนวยการ/ต้น",
|
|
// // Result = $"ตำแหน่ง { p.Position } ประเภท { p.PositionType } ระดับ { p.PositionLevel }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s2 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 2 // วิชาการ
|
|
// // && p.PositionLevel.Id == 7 // ชำนาญการพิเศษ
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์มงกุฎไทย")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ประถมาภรณ์มงกุฎไทย"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ทวีติยาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ทวีติยาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault().Year
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้รับเงินเดือนขั้นสูง (เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } 58,390 บาท)",
|
|
// // Result = $"เงินเดือน ณ วันที่ { (new DateTime(period.Year, 4, 29)).ToThaiFullDate3() } เป็นเงิน { p.SalaryCondition.ToNumericText() } บาท"
|
|
// // },
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"2.ได้ ท.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ท.ช. วันที่ { (new DateTime(period.Year-5, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
|
|
// // Result = $"ได้รับ ท.ช. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var result_candidate = new List<InsigniaResultSet>();
|
|
|
|
|
|
// // foreach (var r in s2)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s1)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // return result_candidate;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// // public async List<InsigniaResultSet> GetInsigniaCandidate_Type3_Level11(int periodId, int ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// // var s1 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 3 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 11 // ระดับสูง
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์มงกุฎไทย")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ประถมาภรณ์มงกุฎไทย"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ทวีติยาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ทวีติยาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault().Year
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ท.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ท.ช. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
|
|
// // Result = $"ได้รับ ท.ช. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s2 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 3 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 11 // ระดับสูง
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ประถมาภรณ์ช้างเผือก"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์มงกุฎไทย").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์มงกุฎไทย").OrderBy(x => x.Year).FirstOrDefault().Year
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
|
|
// // Result = $"ได้รับ ป.ม. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s3 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 3 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 11 // ระดับสูง
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("มหาวชิรมงกุฎ")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "มหาวชิรมงกุฎ"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault().Year
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ป.ช. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
|
|
// // Result = $"ได้รับ ป.ช. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
|
|
|
|
// // var result_candidate = new List<InsigniaResultSet>();
|
|
|
|
// // foreach (var r in s3)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s2)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s1)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // // Check ได้รับหรือเคยยื่นขอไปในปีที่แล้วหรือไม่?
|
|
// // if (!CanRequestInsignia(r.ProfileId, period.Year))
|
|
// // continue;
|
|
|
|
// // // Check ว่าชั้นที่ขอสูงกว่าชั้นที่เคยได้รับแล้วหรือไม่?
|
|
// // if (!IsHigherLevel2(r.LastInsignia, r.RequestInsignia.Name))
|
|
// // continue;
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // return result_candidate;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// #endregion
|
|
|
|
// #region " บริหาร "
|
|
|
|
// // public async List<InsigniaResultSet> GetInsigniaCandidate_Type4_Level10(int periodId, int ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// // var s1 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 4 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 10 // ระดับสูง
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์มงกุฎไทย")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ประถมาภรณ์มงกุฎไทย"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ทวีติยาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ทวีติยาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault().Year
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ท.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ท.ช. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
|
|
// // Result = $"ได้รับ ท.ช. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s2 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 4 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 10 // ระดับสูง
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ประถมาภรณ์ช้างเผือก"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์มงกุฎไทย").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์มงกุฎไทย").OrderBy(x => x.Year).FirstOrDefault().Year
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
|
|
// // Result = $"ได้รับ ป.ม. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s3 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 4 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 10 // ระดับสูง
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("มหาวชิรมงกุฎ")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "มหาวชิรมงกุฎ"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault().Year
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ป.ช. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
|
|
// // Result = $"ได้รับ ป.ช. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
|
|
|
|
// // var result_candidate = new List<InsigniaResultSet>();
|
|
|
|
// // foreach (var r in s3)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s2)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s1)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // return result_candidate;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// // public async List<InsigniaResultSet> GetInsigniaCandidate_Type4_Level11(int periodId, int ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// // var s1 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 4 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 11 // ระดับสูง
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "ประถมาภรณ์ช้างเผือก"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์มงกุฎไทย").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์มงกุฎไทย").OrderBy(x => x.Year).FirstOrDefault().Year,
|
|
// // SalaryPosition = p.Salaries.Count == 0 ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount == null ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount.ToInteger()
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ป.ม. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ม. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
|
|
// // Result = $"ได้รับ ป.ม. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"ได้รับเงินประจำตำแหน่ง 14,500 บาท",
|
|
// // Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition.ToNumericText() } บาท"
|
|
// // }
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s2 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 4 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 11 // ระดับสูง
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("มหาวชิรมงกุฎ")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "มหาวชิรมงกุฎ"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "ประถมาภรณ์ช้างเผือก").OrderBy(x => x.Year).FirstOrDefault().Year,
|
|
// // SalaryPosition = p.Salaries.Count == 0 ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount == null ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount.ToInteger()
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ป.ช. มาแล้วไม่น้อยกว่า 3 ปี บริบูรณ์ (ได้ ป.ช. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
|
|
// // Result = $"ได้รับ ป.ช. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"ได้รับเงินประจำตำแหน่ง 14,500 บาท",
|
|
// // Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition.ToNumericText() } บาท"
|
|
// // }
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // var s3 = (from p in await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.PositionType)
|
|
// // .Include(p => p.PositionLevel)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // where p.OrganizationChart != null
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsActive == true
|
|
// // && p.IsLeave == false
|
|
// // && p.DateAppoint != null
|
|
// // && p.PositionType.Id == 4 // ทั่วไป
|
|
// // && p.PositionLevel.Id == 11 // ระดับสูง
|
|
// // && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name.Contains("มหาปรมาภรณ์ช้างเผือก")
|
|
// // //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// // //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // select new
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // PositionLevel = p.PositionLevel.Name,
|
|
// // PositionType = p.PositionType.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // ProfileDateAppoint = p.DateAppoint.Value,
|
|
// // 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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// // IsHigherLevel = InsigniaService.IsHigherLevel(p.Insignias
|
|
// // .Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา"))
|
|
// // .OrderByDescending(x => x.Year)
|
|
// // .FirstOrDefault().Insignia.Name,
|
|
// // "มหาปรมาภรณ์ช้างเผือก"),
|
|
// // FirstRecvInsigniaYear = p.Insignias.Count == 0 ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "มหาวชิรมงกุฎ").OrderBy(x => x.Year).FirstOrDefault() == null ? 0 :
|
|
// // p.Insignias.Where(x => x.Insignia.Name == "มหาวชิรมงกุฎ").OrderBy(x => x.Year).FirstOrDefault().Year,
|
|
// // SalaryPosition = p.Salaries.Count == 0 ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount == null ? 0 :
|
|
// // p.Salaries.AsQueryable().OrderBy(x => x.Order).LastOrDefault().PositionSalaryAmount.ToInteger()
|
|
// // //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// // //RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย")
|
|
// // })
|
|
// // .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<MatchingCondition>
|
|
// // {
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"1.ได้ ม.ว.ม. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้ ม.ว.ม. วันที่ { (new DateTime(period.Year-3, 7, 28)).ToThaiFullDate3() } หรือก่อนหน้านั้น)",
|
|
// // Result = $"ได้รับ ม.ว.ม. ในปี { p.FirstRecvInsigniaYear.ToThaiYear() }"
|
|
// // },
|
|
// // new MatchingCondition
|
|
// // {
|
|
// // Condition = $"ได้รับเงินประจำตำแหน่ง 14,500 บาท",
|
|
// // Result = $"ได้รับเงินประจำตำแหน่ง { p.SalaryPosition.ToNumericText() } บาท"
|
|
// // }
|
|
// // }
|
|
// // })
|
|
// // .ToList();
|
|
|
|
|
|
// // var result_candidate = new List<InsigniaResultSet>();
|
|
|
|
// // foreach (var r in s3)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s2)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // foreach (var r in s1)
|
|
// // {
|
|
// // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
|
|
|
|
// // if (old == null)
|
|
// // {
|
|
// // result_candidate.Add(r);
|
|
// // }
|
|
// // }
|
|
|
|
// // return result_candidate;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// #endregion
|
|
|
|
|
|
// #endregion
|
|
|
|
// #region " Public "
|
|
|
|
// /// <summary>
|
|
// /// กรองรายชื่อผู้มิสิทธิ์ยื่นขอเครื่องราช
|
|
// /// </summary>
|
|
// /// <param name="periodId">รหัสของรอบการขอ</param>
|
|
// /// <param name="ocId">รหัสโรงเรียน</param>
|
|
// /// <returns></returns>
|
|
// public async Task<List<InsigniaResultSet>> GetInsigniaCandidate(Guid periodId, Guid ocId)
|
|
// {
|
|
// try
|
|
// {
|
|
// var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// var period = await _dbContext.Set<InsigniaPeriod>().FirstOrDefaultAsync(p => p.Id == periodId);
|
|
|
|
// if (period == null)
|
|
// throw new Exception(GlobalMessages.DataNotFound);
|
|
|
|
// var oc = await _dbContext.Set<OrganizationOrganization>().FirstOrDefaultAsync(x => x.Id == ocId);
|
|
|
|
// if (oc == null)
|
|
// throw new Exception(GlobalMessages.DataNotFound);
|
|
|
|
// var CurrentRetireDate = new DateTime(period.Year, 9, 30);
|
|
|
|
// var inst_profile = await _dbContext.Set<Profile>()
|
|
// .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// .Include(p => p.Insignias)
|
|
// .ThenInclude(i => i.Insignia)
|
|
// .Include(p => p.Salaries)
|
|
// .Where(p =>
|
|
// // allOc.Contains(p.OrganizationOrganization.Id) &&
|
|
// p.IsActive == true &&
|
|
// p.IsLeave == false &&
|
|
// p.DateAppoint != null
|
|
// )
|
|
// .Select(p => new
|
|
// {
|
|
// ProfileId = p.Id,
|
|
// Prefix = p.Prefix,
|
|
// FullName = $"{p.FirstName} {p.LastName}",
|
|
// Position = p.Position.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// ProfileDateAppoint = p.DateAppoint.Value,
|
|
// GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// 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 ? -1 : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Id,
|
|
// Salary = p.Salaries.Count() == 0 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// //CanRequestInsignia = CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// });
|
|
|
|
// // check วันที่บรรจะต้องน้อยกว่า 29/5/ปี-5
|
|
// var s1 = ((from p in inst_profile
|
|
// //where p.CanRequestInsignia == true
|
|
// where p.ProfileDateAppoint <= new DateTime(period.Year - 5, 5, 29)
|
|
// && p.LastInsigniaId == -1
|
|
// 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 = await GetInsigniaByName("ตริตาภรณ์มงกุฎไทย"),
|
|
// Seq = 1,
|
|
// Gender = p.Gender
|
|
// })).ToList();
|
|
|
|
// var s2 = (from p in _dbContext.Set<Profile>()
|
|
// .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// .Include(p => p.Insignias)
|
|
// .ThenInclude(i => i.Insignia)
|
|
// .Include(p => p.Salaries)
|
|
// where p.OrganizationOrganization != null
|
|
// // && allOc.Contains(p.OrganizationOrganization.Id)
|
|
// && p.IsActive == true
|
|
// && p.IsLeave == false
|
|
// && p.DateAppoint != null
|
|
// // && p.AcademicStanding.Name == "ชำนาญการ"
|
|
// && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("ตริตาภรณ์ช้างเผือก")
|
|
// //&& !IsHigherLevel(p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, "ตริตาภรณ์ช้างเผือก")
|
|
// //&& CanRequestInsignia(p.Id, period.Year.ToString())
|
|
// select new
|
|
// {
|
|
// ProfileId = p.Id,
|
|
// Prefix = p.Prefix,
|
|
// FullName = $"{p.FirstName} {p.LastName}",
|
|
// Position = p.Position.Name,
|
|
// Rank = p.AcademicStanding.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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// PosNo = p.PositionNumber.Id,
|
|
// Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// IsHigherLevel = InsigniaService.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<Profile>()
|
|
// .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// .Include(p => p.Insignias)
|
|
// .ThenInclude(i => i.Insignia)
|
|
// .Include(p => p.Salaries)
|
|
// where p.IsActive == true
|
|
// // && allOc.Contains(p.OrganizationChart.OCId)
|
|
// && p.IsLeave == false
|
|
// && p.DateAppoint != null
|
|
// // && p.AcademicStanding.Name == "ชำนาญการ"
|
|
// && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("ทวีติยาภรณ์มงกุฎไทย")
|
|
// select new
|
|
// {
|
|
// ProfileId = p.Id,
|
|
// Prefix = p.Prefix,
|
|
// FullName = $"{p.FirstName} {p.LastName}",
|
|
// Position = p.Position.Name,
|
|
// Rank = p.AcademicStanding.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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// PosNo = p.PositionNumber.Id,
|
|
// Gender = p.Gendor.IsNull("") == "male" ? "1" : "2"
|
|
// })
|
|
// .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<Profile>()
|
|
// .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// .Include(p => p.Insignias)
|
|
// .ThenInclude(i => i.Insignia)
|
|
// .Include(p => p.Salaries)
|
|
// where p.IsActive == true
|
|
// // && allOc.Contains(p.OrganizationOrganization.OCId)
|
|
// && p.IsLeave == false
|
|
// && p.DateAppoint != null
|
|
// && p.AcademicStanding.Name == "ชำนาญการ"
|
|
// && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("ทวีติยาภรณ์ช้างเผือก")
|
|
// select new
|
|
// {
|
|
// ProfileId = p.Id,
|
|
// Prefix = p.Prefix,
|
|
// FullName = $"{p.FirstName} {p.LastName}",
|
|
// Position = p.Position.Name,
|
|
// Rank = p.AcademicStanding.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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate < new DateTime(period.Year - 5, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// PosNo = p.PositionNumber.Id,
|
|
// Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// SalaryCondition2 = p.Salaries.Count() == 0 ? null : p.Salaries.Where(x => x.SalaryDate < new DateTime(period.Year - 5, 4, 29)).Select(x => new { order = x.Order, AsId = x.SalaryAcademicStanding.Id, salary = x.Amount.Replace(".00", "").Replace(",", "").ToInteger() })
|
|
// })
|
|
// .ToList()
|
|
// .Where(x => x.SalaryCondition2 != null && (x.SalaryCondition2.Where(x => x.AsId == 1).Count() > 0 && x.SalaryCondition2.Where(x => x.AsId == 1).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<Profile>()
|
|
// .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// .Include(p => p.Insignias)
|
|
// .ThenInclude(i => i.Insignia)
|
|
// .Include(p => p.Salaries)
|
|
// where p.IsActive == true
|
|
// // && allOc.Contains(p.OrganizationOrganization.OCId)
|
|
// && p.IsLeave == false
|
|
// && p.DateAppoint != null
|
|
// && !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,
|
|
// FullName = $"{p.FirstName} {p.LastName}",
|
|
// Position = p.Position.Name,
|
|
// PosNo = p.PositionNumber.Id,
|
|
// Rank = p.AcademicStanding.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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"),
|
|
// Seq = 4,
|
|
// Gender = p.Gendor.IsNull("") == "male" ? "1" : "2"
|
|
// }))
|
|
// .ToList();
|
|
|
|
// // คศ3 ขอ ปม
|
|
// var s6 = (from p in _dbContext.Set<Profile>()
|
|
// .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// .Include(p => p.Insignias)
|
|
// .ThenInclude(i => i.Insignia)
|
|
// .Include(p => p.Salaries)
|
|
// where p.IsActive == true
|
|
// // && allOc.Contains(p.OrganizationOrganization.OCId)
|
|
// && p.IsLeave == false
|
|
// && p.DateAppoint != null
|
|
// // && p.AcademicStanding.Name == "ชำนาญการพิเศษ"
|
|
// && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์มงกุฎไทย")
|
|
// select new
|
|
// {
|
|
// ProfileId = p.Id,
|
|
// Prefix = p.Prefix,
|
|
// FullName = $"{p.FirstName} {p.LastName}",
|
|
// Position = p.Position.Name,
|
|
// Rank = p.AcademicStanding.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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// PosNo = p.PositionNumber.Id,
|
|
// Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// 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<Profile>()
|
|
// .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// .Include(p => p.Insignias)
|
|
// .ThenInclude(i => i.Insignia)
|
|
// .Include(p => p.Salaries)
|
|
// where p.IsActive == true
|
|
// // && allOc.Contains(p.OrganizationOrganization.OCId)
|
|
// && p.IsLeave == false
|
|
// && p.DateAppoint != null
|
|
// // && p.AcademicStanding.Name == "เชี่ยวชาญ"
|
|
// && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์มงกุฎไทย")
|
|
// select new
|
|
// {
|
|
// ProfileId = p.Id,
|
|
// Prefix = p.Prefix,
|
|
// FullName = $"{p.FirstName} {p.LastName}",
|
|
// Position = p.Position.Name,
|
|
// Rank = p.AcademicStanding.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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// PosNo = p.PositionNumber.Id,
|
|
// Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// 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<Profile>()
|
|
// .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// .Include(p => p.Insignias)
|
|
// .ThenInclude(i => i.Insignia)
|
|
// .Include(p => p.Salaries)
|
|
// where p.IsActive == true
|
|
// // && allOc.Contains(p.OrganizationOrganization.OCId)
|
|
// && p.IsLeave == false
|
|
// && p.DateAppoint != null
|
|
// // && p.AcademicStanding.Name == "เชี่ยวชาญ"
|
|
// && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("ประถมาภรณ์ช้างเผือก")
|
|
// select new
|
|
// {
|
|
// ProfileId = p.Id,
|
|
// Prefix = p.Prefix,
|
|
// FullName = $"{p.FirstName} {p.LastName}",
|
|
// Position = p.Position.Name,
|
|
// Rank = p.AcademicStanding.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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// PosNo = p.PositionNumber.Id,
|
|
// Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// 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<Profile>()
|
|
// .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// .Include(p => p.Insignias)
|
|
// .ThenInclude(i => i.Insignia)
|
|
// .Include(p => p.Salaries)
|
|
// where p.IsActive == true
|
|
// // && allOc.Contains(p.OrganizationOrganization.OCId)
|
|
// && p.IsLeave == false
|
|
// && p.DateAppoint != null
|
|
// // && p.AcademicStanding.Name == "เชี่ยวชาญ"
|
|
// && !p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name.Contains("มหาวชิรมงกุฎ")
|
|
// select new
|
|
// {
|
|
// ProfileId = p.Id,
|
|
// Prefix = p.Prefix,
|
|
// FullName = $"{p.FirstName} {p.LastName}",
|
|
// Position = p.Position.Name,
|
|
// Rank = p.AcademicStanding.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 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// SalaryCondition = p.Salaries.Count() == 0 ? 0 : p.Salaries.Where(x => x.SalaryDate <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount.Replace(".00", "").Replace(",", "").ToInteger(),
|
|
// PosNo = p.PositionNumber.Id,
|
|
// Gender = p.Gendor.IsNull("") == "male" ? "1" : "2",
|
|
// 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<InsigniaResultSet>();
|
|
// 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<List<InsigniaResultSet>> GetInsigniaCandidateBKK(Guid periodId, Guid ocId)
|
|
// {
|
|
// try
|
|
// {
|
|
// var result_candidate = new List<InsigniaResultSet>();
|
|
|
|
// var type1_level1 = GetInsigniaCandidate_Type1_Level1(periodId, ocId);
|
|
// var type1_level2 = GetInsigniaCandidate_Type1_Level2(periodId, ocId);
|
|
// var type1_level3 = GetInsigniaCandidate_Type1_Level3(periodId, ocId);
|
|
// var type1_level4 = GetInsigniaCandidate_Type1_Level4(periodId, ocId);
|
|
// var type2_level5 = GetInsigniaCandidate_Type2_Level5(periodId, ocId);
|
|
// var type2_level6 = GetInsigniaCandidate_Type2_Level6(periodId, ocId);
|
|
// var type2_level7 = GetInsigniaCandidate_Type2_Level7(periodId, ocId);
|
|
// var type2_level8 = GetInsigniaCandidate_Type2_Level8(periodId, ocId);
|
|
// var type2_level9_1 = GetInsigniaCandidate_Type2_Level9_1(periodId, ocId);
|
|
// var type2_level9_2 = GetInsigniaCandidate_Type2_Level9_2(periodId, ocId);
|
|
// var type3_level10 = GetInsigniaCandidate_Type3_Level10(periodId, ocId);
|
|
// var type3_level11 = GetInsigniaCandidate_Type3_Level11(periodId, ocId);
|
|
// var type4_level10 = GetInsigniaCandidate_Type4_Level10(periodId, ocId);
|
|
// var type4_level11 = GetInsigniaCandidate_Type4_Level11(periodId, ocId);
|
|
|
|
|
|
// // union result
|
|
// result_candidate.AddRange(type1_level1);
|
|
// result_candidate.AddRange(type1_level2);
|
|
// result_candidate.AddRange(type1_level3);
|
|
// result_candidate.AddRange(type1_level4);
|
|
// result_candidate.AddRange(type2_level5);
|
|
// result_candidate.AddRange(type2_level6);
|
|
// result_candidate.AddRange(type2_level7);
|
|
// result_candidate.AddRange(type2_level8);
|
|
// result_candidate.AddRange(type2_level9_1);
|
|
// result_candidate.AddRange(type2_level9_2);
|
|
// result_candidate.AddRange(type3_level10);
|
|
// result_candidate.AddRange(type3_level11);
|
|
// result_candidate.AddRange(type4_level10);
|
|
// result_candidate.AddRange(type4_level11);
|
|
|
|
// return result_candidate.OrderBy(x => x.Seq).ThenBy(x => x.Gender).ThenBy(x => x.ProfileId).ToList();
|
|
// }
|
|
// catch
|
|
// {
|
|
// throw;
|
|
// }
|
|
// }
|
|
|
|
|
|
// // <summary>
|
|
// /// กรองรายชื่อผู้มิสิทธิ์ยื่นขอเหรียญจักรพรรดิมาลา
|
|
// /// </summary>
|
|
// /// <param name="periodId">รหัสของรอบการขอ</param>
|
|
// /// <param name="ocId">รหัสโรงเรียน</param>
|
|
// /// <returns></returns>
|
|
// // public async List<InsigniaResultSet> GetCoinCandidate(Guid periodId, Guid ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
|
|
// // var allOc = profileService.GetAllIdByRoot(ocId);
|
|
|
|
// // var period = await _dbContext.Set<InsigniaPeriods>().FirstOrDefault(p => p.Id == periodId);
|
|
|
|
// // if (period == null)
|
|
// // throw new Exception(GlobalMessages.InvalidCoinPeriod);
|
|
|
|
// // var oc = await _dbContext.Set<OrganizationCharts>().FirstOrDefault(x => x.OCId == ocId);
|
|
|
|
// // if (oc == null)
|
|
// // throw new Exception(GlobalMessages.InvalidOC);
|
|
|
|
// // var result = await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(p => p.Position)
|
|
// // .Include(p => p.PositionNumber)
|
|
// // .Include(p => p.AcademicStanding)
|
|
// // .Include(p => p.Insignias)
|
|
// // .ThenInclude(i => i.Insignia)
|
|
// // .Include(p => p.Salaries)
|
|
// // .Where(p => allOc.Contains(p.OrganizationChart.OCId)
|
|
// // && p.IsLeave == false
|
|
// // && p.IsActive == true
|
|
// // && p.DateAppoint != null
|
|
// // && p.DateAppoint.Value.CalculateGovAgeInYear(0, 0).ToInteger() >= 25)
|
|
// // .Select(p => new InsigniaResultSet
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0),
|
|
// // LastInsignia = p.Insignias.Count == 0 ? "" : p.Insignias.OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name,
|
|
// // Salary = p.Salaries.Count() == 0 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // RequestInsignia = GetInsigniaByName("เหรียญจักรพรรดิมาลา")
|
|
// // });
|
|
|
|
// // result = result.Where(x => !x.LastInsignia.Contains("เหรียญจักรพรรดิมาลา"));
|
|
|
|
// // return result.ToList();
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// #endregion
|
|
|
|
// #region " From Ming "
|
|
|
|
// // คำนวณระยะเวลาของรอบการยืนขอ
|
|
// // public async string CalStatusByDate(DateTime start, DateTime end, string year)
|
|
// // {
|
|
// // var nowDate = DateTime.Now;
|
|
|
|
// // if (nowDate.Year < Int32.Parse(year) || nowDate.Year > Int32.Parse(year)) return "ไม่ใช้งาน";
|
|
|
|
// // if (nowDate.Date >= start.Date && nowDate.Date <= end.Date) return "ใช้งาน";
|
|
|
|
// // return "ไม่ใช้งาน";
|
|
// // }
|
|
|
|
// public async Task<Guid?> GetRequestId(Guid period, Guid ocId)
|
|
// {
|
|
// try
|
|
// {
|
|
// var req = await _dbContext.Set<InsigniaRequest>()
|
|
// .Where(x => x.OrganizationOrganization != null)
|
|
// .FirstOrDefaultAsync(x => x.Period.Id == period && x.OrganizationOrganization.Id == ocId);
|
|
// if (req == null)
|
|
// return null;
|
|
// return req.Id;
|
|
// }
|
|
// catch
|
|
// {
|
|
// throw;
|
|
// }
|
|
// }
|
|
|
|
// // Save Aprove
|
|
// public async Task SaveAprove(Guid period, Guid ocId, InsigniaApproveRequest prm)
|
|
// {
|
|
// try
|
|
// {
|
|
// var req = await GetRequestId(period, ocId);
|
|
|
|
// if (req != null)
|
|
// {
|
|
// foreach (var item in prm.Items)
|
|
// {
|
|
// var approve = await _dbContext.Set<InsigniaRequestProfile>()
|
|
// .FirstOrDefaultAsync(x => x.Profile.Id == item.ProfileId && x.Request.Id == req);
|
|
// approve.IsApprove = item.IsApprove;
|
|
// }
|
|
// }
|
|
|
|
// // await _dbContext.Set < SaveChanges();
|
|
// }
|
|
// catch
|
|
// {
|
|
// throw;
|
|
// }
|
|
// }
|
|
|
|
// // เช็คข้อมูล ใน table insignia_request_new
|
|
// public async Task<InsigniaResults?> GetInsigniaRequest(string type, Guid ocId)
|
|
// {
|
|
// try
|
|
// {
|
|
// var period = await _dbContext.Set<InsigniaPeriod>()
|
|
// .Select(p => new
|
|
// {
|
|
// Id = p.Id,
|
|
// Name = p.Name,
|
|
// Type = p.Type,
|
|
// Year = p.Year,
|
|
// //Status = CalStatusByDate(p.StartDate.Date, p.EndDate.Date, p.Year.ToString())
|
|
// })
|
|
// .FirstOrDefaultAsync(x => x.Type == type && x.Year == DateTime.Now.Year + 1);
|
|
|
|
// if (period == null)
|
|
// return null;
|
|
// else
|
|
// {
|
|
// var request = await _dbContext.Set<InsigniaRequest>()
|
|
// .Include(x => x.OrganizationOrganization)
|
|
// .Where(x => x.OrganizationOrganization != null)
|
|
// .FirstOrDefaultAsync(x => x.Period.Id == period.Id && x.OrganizationOrganization.Id == ocId);
|
|
|
|
// return new InsigniaResults
|
|
// {
|
|
// PeriodId = period.Id,
|
|
// Year = period.Year.ToString(),
|
|
// Name = period.Name,
|
|
// RequestStatus = request != null ? request.RequestStatus : null,
|
|
// OrganizationName = request == null ? "" : request.OrganizationOrganization.Name
|
|
// };
|
|
|
|
// }
|
|
// }
|
|
// catch
|
|
// {
|
|
// throw;
|
|
// }
|
|
// }
|
|
|
|
// // public async InsigniaItem GetInsigniaLast(Guid? id)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var insignia = await _dbContext.Set<Insignias>().AsQueryable()
|
|
// // .Include(x => x.InsigniaType)
|
|
// // .Where(x => id != null ? x.Id == id : x.Name.Contains("ตริตาภรณ์มงกุฎไทย"))
|
|
// // .Select(i => new InsigniaItem
|
|
// // {
|
|
// // Id = i.Id,
|
|
// // Name = i.Name,
|
|
// // ShortName = i.ShortName,
|
|
// // Level = i.InsigniaType.Description,
|
|
// // LevelId = i.InsigniaType.Id
|
|
// // }).FirstOrDefault();
|
|
|
|
// // return insignia;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// // ดึงข้อมูลเอกสารแนบ
|
|
// // TODO: return empty for POC Only.
|
|
// // public async List<InsigniaRequestDoc> GetDocFile(string profile)
|
|
// // {
|
|
// // // return empty for POC Only.
|
|
// // return new List<InsigniaRequestDoc>();
|
|
// // }
|
|
|
|
// // Get Profile
|
|
// // public async List<InsigniaProfileResult> GetProfileByInstitute(Guid ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var profiles = (await _dbContext.Set<Profiles>().AsQueryable()
|
|
// // .Include(x => x.Salaries)
|
|
// // .Include(x => x.AcademicStanding)
|
|
// // .Include(x => x.Position)
|
|
// // .Include(x => x.PositionNumber)
|
|
// // .Include(x => x.OrganizationChart)
|
|
// // .Where(x => x.OrganizationChart.OCId == ocId)
|
|
// // .Select(p => new InsigniaProfileResult
|
|
// // {
|
|
// // ProfileId = p.Id,
|
|
// // Prefix = p.Prefix,
|
|
// // FullName = $"{p.Prefix}{p.FirstName} {p.LastName}",
|
|
// // Position = p.Position.Name,
|
|
// // Rank = p.AcademicStanding.Name,
|
|
// // Salary = p.Salaries.Count() == 0 ? "0" : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
|
|
// // PosNo = p.PositionNumber.Id,
|
|
// // Organization = p.OrganizationChart.OrganizationName
|
|
// // })).ToList();
|
|
|
|
// // return profiles;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// // Get Data Table insignai_has_profile
|
|
// public async Task<List<InsigniaRequestItem>> InsigniaHasProfile(Guid period, Guid ocId)
|
|
// {
|
|
// try
|
|
// {
|
|
// var id = await GetRequestId(period, ocId);
|
|
// if (id != null)
|
|
// {
|
|
// var result = (_dbContext.Set<InsigniaRequestProfile>()
|
|
// .Include(x => x.Request)
|
|
// .Include(x => x.RequestInsignia)
|
|
// .ThenInclude(x => x.InsigniaType)
|
|
// .Include(x => x.Profile)
|
|
// .ThenInclude(x => x.Salaries)
|
|
// .Include(x => x.Profile)
|
|
// .ThenInclude(x => x.Position)
|
|
// .Include(x => x.Profile)
|
|
// // .ThenInclude(x => x.PositionNumber)
|
|
// .Include(x => x.Profile)
|
|
// .ThenInclude(x => x.PositionLevel)
|
|
// .Include(x => x.Profile)
|
|
// .ThenInclude(x => x.PositionType)
|
|
// .Include(x => x.Profile)
|
|
// .ThenInclude(x => x.OrganizationOrganization)
|
|
// .Include(x => x.Profile)
|
|
// // .ThenInclude(x => x.AcademicStanding)
|
|
// .Include(x => x.Profile)
|
|
// .ThenInclude(x => x.Insignias)
|
|
// .ThenInclude(x => x.Insignia)
|
|
// .Where(h => h.Request.Id == id)
|
|
// .ToList()
|
|
// .Select(h => new InsigniaRequestItem
|
|
// {
|
|
// ProfileId = h.Profile.Id,
|
|
// FullName = $"{h.Profile.FirstName} {h.Profile.LastName}",
|
|
// // Position = h.Profile.Position.Name,
|
|
// // PosNo = h.Profile.PositionNumber.Id,
|
|
// // Rank = $"{h.Profile.PositionType.Name}/{h.Profile.PositionLevel.Name}",
|
|
// Salary = h.Salary.ToString(),
|
|
// // LastInsignia = h.Profile.Insignias.Count == 0 ? "" : h.Profile.Insignias.OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name,
|
|
// RequestInsignia = h.RequestInsignia.Name,
|
|
// RequestInsigniaShortName = h.RequestInsignia.ShortName,
|
|
// Level = h.RequestInsignia.InsigniaType.Name,
|
|
// IsApprove = h.IsApprove,
|
|
// RequestDate = h.RequestDate,
|
|
// RequestNote = "",
|
|
// // Docs = GetDocFile(h.Profile.Id),
|
|
// MatchingConditions = JsonConvert.DeserializeObject<List<MatchingCondition>>(h.MatchingConditions)
|
|
// })).ToList();
|
|
|
|
// return result;
|
|
// }
|
|
// else
|
|
// {
|
|
// return null;
|
|
// }
|
|
|
|
// }
|
|
// catch
|
|
// {
|
|
// throw;
|
|
// }
|
|
// }
|
|
|
|
// // เช็คข้อมูลนำเข้า กับข้อมูลที่อยู่ใน database
|
|
// // public async List<InsigniaRequestProfile> GetDuplicate(List<InsigniaRequestProfile> income, Guid period, Guid ocId, bool Duplicate = false)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var id = GetRequestId(period, ocId);
|
|
|
|
// // var req = await _dbContext.Set<InsigniaRequests>().FirstOrDefault(x => x.Id == id);
|
|
|
|
// // if (req == null)
|
|
// // throw new Exception(GlobalMessages.InvalidInsigniaRequest);
|
|
|
|
// // var profile = await _dbContext.Set<InsigniaRequestsProfiles>().AsQueryable()
|
|
// // .Include(x => x.RequestInsignia)
|
|
// // .ThenInclude(x => x.InsigniaType)
|
|
// // .Include(x => x.Profile)
|
|
// // .ThenInclude(x => x.Insignias)
|
|
// // .Where(x => x.Request.Id == id)
|
|
// // .Select(h => new DuplicateProfile
|
|
// // {
|
|
// // ProfileId = h.Profile.Id,
|
|
// // IsApprove = h.IsApprove,
|
|
// // RequestQualificationStatus = h.QualificationStatus,
|
|
// // RequestDocumentStatus = h.DocumentStatus,
|
|
// // Special = h.Special
|
|
// // });
|
|
|
|
// // var newIncome = income.GroupJoin(profile,
|
|
// // pdb => pdb.Profile.Id,
|
|
// // dp => dp.ProfileId,
|
|
// // (pdb, dp) => new
|
|
// // {
|
|
// // Profile = pdb.Profile,
|
|
// // pdb.Profile.Insignias,
|
|
// // pdb.RequestInsignia,
|
|
// // //pdb.RequestInsignia.InsigniaType,
|
|
// // pdb.Salary,
|
|
// // pdb.RequestDate,
|
|
// // ProfileDB = dp
|
|
// // })
|
|
// // .ToList()
|
|
// // .Where(d => !Duplicate ? d.ProfileDB.Count() == 0 : d.ProfileDB.Count() != 0)
|
|
// // .Select(d => !Duplicate ? new InsigniaRequestProfile
|
|
// // {
|
|
// // Request = req,
|
|
// // Profile = d.Profile,
|
|
// // RequestInsignia = d.RequestInsignia,
|
|
// // Salary = d.Salary,
|
|
// // RequestDate = d.RequestDate,
|
|
// // } : new InsigniaRequestProfile
|
|
// // {
|
|
// // Request = req,
|
|
// // Profile = d.Profile,
|
|
// // RequestInsignia = d.RequestInsignia,
|
|
// // Salary = d.Salary,
|
|
// // RequestDate = d.RequestDate,
|
|
// // IsApprove = d.ProfileDB.First().IsApprove,
|
|
// // QualificationStatus = d.ProfileDB.First().RequestQualificationStatus,
|
|
// // DocumentStatus = d.ProfileDB.First().RequestDocumentStatus,
|
|
// // Special = d.ProfileDB.First().Special
|
|
// // })
|
|
// // .ToList();
|
|
|
|
// // return newIncome;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// // ลบข้อมูลใน db ที่ไม่เท่ากับ income
|
|
// // public async List<InsigniaRequestProfile> DeleteProfile(List<InsigniaRequestProfile> income, Guid period, Guid ocId)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var id = GetRequestId(period, ocId);
|
|
|
|
// // var incomProfileId = income.Select(i => i.Profile.Id).ToList();
|
|
|
|
// // var arrayData = await _dbContext.Set<InsigniaRequestsProfiles>().AsQueryable()
|
|
// // .Where(i => !(incomProfileId.Contains(i.Profile.Id)) && i.Request.Id == id)
|
|
// // .ToList();
|
|
|
|
// // return arrayData;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// // insert candidate list
|
|
// public async Task InsertCandidate(Guid periodId, Guid ocId, List<InsigniaResultSet> items)
|
|
// {
|
|
// try
|
|
// {
|
|
// var period = await _dbContext.Set<InsigniaPeriod>().FirstOrDefaultAsync(x => x.Id == periodId);
|
|
|
|
// if (period == null)
|
|
// throw new Exception(GlobalMessages.InvalidInsigniaPeriod);
|
|
|
|
// var oc = await _dbContext.Set<OrganizationOrganization>().FirstOrDefaultAsync(x => x.Id == ocId);
|
|
|
|
// if (oc == null)
|
|
// throw new Exception(GlobalMessages.DataNotFound);
|
|
|
|
// var req = new InsigniaRequest
|
|
// {
|
|
// Period = period,
|
|
// OrganizationOrganization = oc,
|
|
// RequestStatus = "st1"
|
|
// };
|
|
|
|
// foreach (var item in items)
|
|
// {
|
|
// var pf = await _dbContext.Set<Profile>().FirstOrDefaultAsync(p => p.Id == item.ProfileId);
|
|
// var req_insignia = await _dbContext.Set<Insignia>().FirstOrDefaultAsync(i => i.Id == item.RequestInsignia.Id);
|
|
|
|
// if (pf != null)
|
|
// {
|
|
// req.RequestProfiles.Add(new InsigniaRequestProfile
|
|
// {
|
|
// Profile = pf,
|
|
// RequestInsignia = req_insignia,
|
|
// Salary = item.Salary == null ? 0 : Decimal.Parse(item.Salary),
|
|
// RequestDate = DateTime.Now,
|
|
// MatchingConditions = System.Text.Json.JsonSerializer.Serialize(item.MatchingConditions) // serialize to string
|
|
|
|
// });
|
|
// }
|
|
// }
|
|
|
|
// await _dbContext.Set<InsigniaRequest>().AddAsync(req);
|
|
// await _dbContext.SaveChangesAsync();
|
|
// }
|
|
// catch
|
|
// {
|
|
// throw;
|
|
// }
|
|
// }
|
|
|
|
// // เช็คข้อมูลใน kp7insignia
|
|
// // public async ProfileInsignia ListKp7Insignia(string name, string profile, int year)
|
|
// // {
|
|
// // try
|
|
// // {
|
|
// // var item = await _dbContext.Set<ProfileInsignias>().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<Profiles>().FirstOrDefault(x => x.Id == profile.FkProfileId);
|
|
// // var insignia = await _dbContext.Set<Insignias>().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<ProfileInsignias>().FirstOrDefaultAsync(x => x.Id == id);
|
|
|
|
// // return item;
|
|
// // }
|
|
// // catch
|
|
// // {
|
|
// // throw;
|
|
// // }
|
|
// // }
|
|
|
|
// #endregion
|
|
// }
|
|
// }
|