diff --git a/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs b/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs index cefd7326..cbe34be6 100644 --- a/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs +++ b/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs @@ -91,11 +91,66 @@ namespace BMA.EHR.Application.Repositories.Reports G3Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ประถมาภรณ์ช้างเผือก" ? 1 : 0), G4Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ประถมาภรณ์มงกุฎไทย" ? 1 : 0), G4Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ประถมาภรณ์มงกุฎไทย" ? 1 : 0), + G5Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0), + G5Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0), }).ToList(); return insignia; } + public async Task GetKhr1TotalReport(Guid id) + { + var period = await _dbContext.Set() + .FirstOrDefaultAsync(x => x.Id == id); + if (period == null) + throw new Exception(GlobalMessages.InsigniaPeriodNotFound); + + var data_insignia = await _dbContext.Set() + .Include(x => x.Profile) + .Where(x => x.Request.Period == period) + .Where(x => x.IsApprove == true) + .Where(x => x.RequestInsignia.InsigniaType != null) + .Where(x => x.RequestInsignia.InsigniaType.Name == "ชั้นสายสะพาย") + .Select(x => new + { + Gendor = x.Profile.Gender == null ? null : x.Profile.Gender.Name, + RequestInsigniaName = x.RequestInsignia.Name, + OcId = x.Request.Organization.Id + }) + .ToListAsync(); + + var insignia = (from r in data_insignia + group r by new { OcId = r.OcId } into g + select new + { + RowNo = 1, + DepartmentName = _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), + G1Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "มหาปรมาภรณ์ช้างเผือก" ? 1 : 0), + G1Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "มหาปรมาภรณ์ช้างเผือก" ? 1 : 0), + G2Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "มหาวชิรมงกุฎ" ? 1 : 0), + G2Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "มหาวชิรมงกุฎ" ? 1 : 0), + G3Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ประถมาภรณ์ช้างเผือก" ? 1 : 0), + G3Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ประถมาภรณ์ช้างเผือก" ? 1 : 0), + G4Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ประถมาภรณ์มงกุฎไทย" ? 1 : 0), + G4Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ประถมาภรณ์มงกุฎไทย" ? 1 : 0), + G5Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0), + G5Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0), + }).ToList(); + return new + { + G1Male = insignia.Sum(x => x.G1Male), + G1Female = insignia.Sum(x => x.G1Female), + G2Male = insignia.Sum(x => x.G2Male), + G2Female = insignia.Sum(x => x.G2Female), + G3Male = insignia.Sum(x => x.G3Male), + G3Female = insignia.Sum(x => x.G3Female), + G4Male = insignia.Sum(x => x.G4Male), + G4Female = insignia.Sum(x => x.G4Female), + G5Male = insignia.Sum(x => x.G5Male), + G5Female = insignia.Sum(x => x.G5Female), + }; + } + public async Task GetKhr2Report(Guid id) { var period = await _dbContext.Set() @@ -139,6 +194,78 @@ namespace BMA.EHR.Application.Repositories.Reports G7Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เบญจมาภรณ์ช้างเผือก" ? 1 : 0), G8Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เบญจมาภรณ์มงกุฎไทย" ? 1 : 0), G8Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เบญจมาภรณ์มงกุฎไทย" ? 1 : 0), + G9Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0), + G9Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0), + }).ToList(); + + return new + { + G1Male = insignia.Sum(x => x.G1Male), + G1Female = insignia.Sum(x => x.G1Female), + G2Male = insignia.Sum(x => x.G2Male), + G2Female = insignia.Sum(x => x.G2Female), + G3Male = insignia.Sum(x => x.G3Male), + G3Female = insignia.Sum(x => x.G3Female), + G4Male = insignia.Sum(x => x.G4Male), + G4Female = insignia.Sum(x => x.G4Female), + G5Male = insignia.Sum(x => x.G5Male), + G5Female = insignia.Sum(x => x.G5Female), + G6Male = insignia.Sum(x => x.G6Male), + G6Female = insignia.Sum(x => x.G6Female), + G7Male = insignia.Sum(x => x.G7Male), + G7Female = insignia.Sum(x => x.G7Female), + G8Male = insignia.Sum(x => x.G8Male), + G8Female = insignia.Sum(x => x.G8Female), + G9Male = insignia.Sum(x => x.G9Male), + G9Female = insignia.Sum(x => x.G9Female), + }; + } + + public async Task GetKhr2TotalReport(Guid id) + { + var period = await _dbContext.Set() + .FirstOrDefaultAsync(x => x.Id == id); + if (period == null) + throw new Exception(GlobalMessages.InsigniaPeriodNotFound); + + var data_insignia = await _dbContext.Set() + .Include(x => x.Profile) + .Where(x => x.Request.Period == period) + .Where(x => x.IsApprove == true) + .Where(x => x.RequestInsignia.InsigniaType != null) + .Where(x => x.RequestInsignia.InsigniaType.Name == "ชั้นต่ำกว่าสายสะพาย") + .Select(x => new + { + Gendor = x.Profile.Gender == null ? null : x.Profile.Gender.Name, + RequestInsigniaName = x.RequestInsignia.Name, + OcId = x.Request.Organization.Id + }) + .ToListAsync(); + + var insignia = (from r in data_insignia + group r by new { OcId = r.OcId } into g + select new + { + RowNo = 1, + DepartmentName = _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false), + G1Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ทวีติยาภรณ์ช้างเผือก" ? 1 : 0), + G1Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ทวีติยาภรณ์ช้างเผือก" ? 1 : 0), + G2Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ทวีติยาภรณ์มงกุฎไทย" ? 1 : 0), + G2Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ทวีติยาภรณ์มงกุฎไทย" ? 1 : 0), + G3Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ตริตาภรณ์ช้างเผือก" ? 1 : 0), + G3Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ตริตาภรณ์ช้างเผือก" ? 1 : 0), + G4Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "ตริตาภรณ์มงกุฎไทย" ? 1 : 0), + G4Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "ตริตาภรณ์มงกุฎไทย" ? 1 : 0), + G5Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "จัตุรถาภรณ์ช้างเผือก" ? 1 : 0), + G5Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "จัตุรถาภรณ์ช้างเผือก" ? 1 : 0), + G6Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "จัตุรถาภรณ์มงกุฎไทย" ? 1 : 0), + G6Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "จัตุรถาภรณ์มงกุฎไทย" ? 1 : 0), + G7Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เบญจมาภรณ์ช้างเผือก" ? 1 : 0), + G7Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เบญจมาภรณ์ช้างเผือก" ? 1 : 0), + G8Male = g.Sum(x => x.Gendor == "ชาย" && x.RequestInsigniaName == "เบญจมาภรณ์มงกุฎไทย" ? 1 : 0), + G8Female = g.Sum(x => x.Gendor == "หญิง" && x.RequestInsigniaName == "เบญจมาภรณ์มงกุฎไทย" ? 1 : 0), + G9Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0), + G9Female = g.Sum(x => x.Gendor == "หญิง" ? 1 : 0), }).ToList(); return insignia;