include posno insignia

This commit is contained in:
Kittapath 2023-09-11 17:44:55 +07:00
parent 8f2c9841ef
commit 156e91f6e3
3 changed files with 122 additions and 5 deletions

View file

@ -4710,7 +4710,9 @@ namespace BMA.EHR.Application.Repositories
} }
foreach (var r in type_coin) foreach (var r in type_coin)
{ {
result_candidate.Add(r); var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId);
if (old == null)
result_candidate.Add(r);
} }
return result_candidate.OrderBy(x => x.Seq).ThenBy(x => x.Gender).ThenBy(x => x.ProfileId).ToList(); return result_candidate.OrderBy(x => x.Seq).ThenBy(x => x.Gender).ThenBy(x => x.ProfileId).ToList();
@ -4968,6 +4970,8 @@ namespace BMA.EHR.Application.Repositories
.Include(x => x.Profile) .Include(x => x.Profile)
.ThenInclude(x => x.Position) .ThenInclude(x => x.Position)
.Include(x => x.Profile) .Include(x => x.Profile)
.ThenInclude(x => x.PositionEmployeePosition)
.Include(x => x.Profile)
.ThenInclude(x => x.PosNo) .ThenInclude(x => x.PosNo)
.Include(x => x.Profile) .Include(x => x.Profile)
.ThenInclude(x => x.PositionLevel) .ThenInclude(x => x.PositionLevel)
@ -4990,9 +4994,9 @@ namespace BMA.EHR.Application.Repositories
ProfileId = h.Profile.Id, ProfileId = h.Profile.Id,
ProfileType = h.Profile.ProfileType, ProfileType = h.Profile.ProfileType,
FullName = $"{h.Profile.Prefix?.Name}{h.Profile.FirstName} {h.Profile.LastName}", FullName = $"{h.Profile.Prefix?.Name}{h.Profile.FirstName} {h.Profile.LastName}",
Position = h.Profile.Position.Name, Position = h.Profile.ProfileType == " officer" ? h.Profile.Position?.Name : h.Profile.PositionEmployeePosition?.Name,
PosNo = h.Profile.PosNo.Id, PosNo = h.Profile.ProfileType == " officer" ? h.Profile.PosNo?.Name : h.Profile.PosNoEmployee,
Rank = $"{h.Profile.PositionType.Name}/{h.Profile.PositionLevel.Name}", Rank = h.Profile.ProfileType == " officer" ? $"{h.Profile.PositionType?.Name}/{h.Profile.PositionLevel?.Name}" : $"-",
Salary = h.Salary.ToString(), Salary = h.Salary.ToString(),
LastInsignia = h.Profile.Insignias.Count == 0 ? "" : h.Profile.Insignias.OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, LastInsignia = h.Profile.Insignias.Count == 0 ? "" : h.Profile.Insignias.OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name,
RequestInsignia = h.RequestInsignia.Name, RequestInsignia = h.RequestInsignia.Name,

View file

@ -477,6 +477,7 @@ namespace BMA.EHR.Application.Repositories.Reports
Male = 0, Male = 0,
Female = 0, Female = 0,
InsigniaId = ins.InsigniaId, InsigniaId = ins.InsigniaId,
// OCName = ""
OCName = tmpOC, OCName = tmpOC,
SumMale = sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName)!.SumMale, SumMale = sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName)!.SumMale,
SumFemale = sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName)!.SumFemale, SumFemale = sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName)!.SumFemale,
@ -484,8 +485,120 @@ namespace BMA.EHR.Application.Repositories.Reports
ret.Add(p); ret.Add(p);
} }
} }
return ret; return ret;
} }
public async Task<dynamic> GetKhr3ReportV2(Guid id)
{
var period = await _dbContext.Set<InsigniaPeriod>()
.FirstOrDefaultAsync(x => x.Id == id);
if (period == null)
throw new Exception(GlobalMessages.InsigniaPeriodNotFound);
var data = (from r in await _dbContext.Set<InsigniaRequestProfile>()
.Include(x => x.Profile)
.ThenInclude(x => x.Gender)
.Include(x => x.Profile)
.ThenInclude(x => x.Prefix)
.Include(x => x.Request)
.ThenInclude(x => x.Period)
.Include(x => x.Request)
.ThenInclude(x => x.Organization)
.Include(x => x.RequestInsignia)
.ThenInclude(x => x.InsigniaType)
.ToListAsync()
where r.Request.Period == period
&& r.IsApprove == true
&& r.RequestInsignia.InsigniaType != null
&& r.RequestInsignia.InsigniaType.Name != "เหรียญบำเหน็จในราชการ"
select new
{
InsigniaInitial = r.RequestInsignia.ShortName,
InsigniaName = r.RequestInsignia.Name,
ProfileId = r.Profile.Id,
FullName = $"{r.Profile.Prefix?.Name}{r.Profile.FirstName} {r.Profile.LastName}",
Gender = r.Profile.Gender == null ? null : r.Profile.Gender.Name,
Male = r.Profile.Gender == null ? 0 : (r.Profile.Gender.Name == "ชาย" ? 1 : 0),
Female = r.Profile.Gender == null ? 0 : (r.Profile.Gender.Name == "หญิง" ? 1 : 0),
InsigniaId = r.RequestInsignia.Id,
OCName = _organizationCommonRepository.GetOrganizationNameFullPath(r.Request.Organization.Id, false, false)
})
.Distinct()
.ToList();
// loop to add temp row with 50 rows per page
var insigniaList = data.Select(x => new { InsigniaId = x.InsigniaId, InsigniaInitial = x.InsigniaInitial, InsigniaName = x.InsigniaName })
.Distinct().ToList();
// var tmpOC = data.First().OCName;
// var sumData = (from x in data
// group x by x.InsigniaName into grp
// select new
// {
// InsigniaName = grp.Key,
// SumMale = grp.Sum(x => x.Male),
// SumFemale = grp.Sum(x => x.Female)
// }).ToList();
// var ret = new List<dynamic>();
// foreach (var item in data)
// {
// var p = new
// {
// InsigniaInitial = item.InsigniaInitial,
// InsigniaName = item.InsigniaName,
// ProfileId = item.ProfileId,
// FullName = item.FullName,
// Gender = item.Gender,
// Male = item.Male,
// Female = item.Female,
// InsigniaId = item.InsigniaId,
// OCName = item.OCName,
// SumMale = sumData.FirstOrDefault(x => x.InsigniaName == item.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == item.InsigniaName)!.SumMale,
// SumFemale = sumData.FirstOrDefault(x => x.InsigniaName == item.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == item.InsigniaName)!.SumFemale,
// };
// ret.Add(p);
// }
foreach (var ins in insigniaList)
{
var count = data.Where(x => x.InsigniaId == ins.InsigniaId).Count();
var mod_val = count <= 50 ? 50 - count : count % 50.0;
for (int i = 0; i < mod_val; i++)
{
var p = new
{
InsigniaInitial = ins.InsigniaInitial,
InsigniaName = ins.InsigniaName,
ProfileId = Guid.Parse("00000000-0000-0000-0000-000000000000"),
FullName = "",
Gender = "",
Male = 0,
Female = 0,
InsigniaId = ins.InsigniaId,
OCName = ""
// OCName = tmpOC,
// SumMale = sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName)!.SumMale,
// SumFemale = sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName) == null ? 0 : sumData.FirstOrDefault(x => x.InsigniaName == ins.InsigniaName)!.SumFemale,
};
data.Add(p);
}
}
var sumData = (from x in data
group x by x.InsigniaName into grp
select new
{
InsigniaName = grp.Key,
SumMale = grp.Sum(x => x.Male),
SumFemale = grp.Sum(x => x.Female),
Data = grp.ToList(),
}).ToList();
return sumData;
}
//42-แบบ ขร4 บัญชีแสดงคุณสมบัติของข้าราชการซึ่งเสนอขอเครื่องราชฯ //42-แบบ ขร4 บัญชีแสดงคุณสมบัติของข้าราชการซึ่งเสนอขอเครื่องราชฯ
public async Task<dynamic> GetKhr4Report(Guid id) public async Task<dynamic> GetKhr4Report(Guid id)

View file

@ -8,7 +8,7 @@
public Guid ProfileId { get; set; } public Guid ProfileId { get; set; }
public string FullName { get; set; } public string FullName { get; set; }
public string Position { get; set; } public string Position { get; set; }
public Guid PosNo { get; set; } public string PosNo { get; set; }
public string Rank { get; set; } public string Rank { get; set; }
public string Salary { get; set; } public string Salary { get; set; }
public string LastInsignia { get; set; } public string LastInsignia { get; set; }