This commit is contained in:
parent
da9ed437dc
commit
077d20a779
2 changed files with 182 additions and 18 deletions
|
|
@ -134,6 +134,26 @@ namespace BMA.EHR.Application.Repositories.Reports
|
|||
return thaiYear;
|
||||
}
|
||||
|
||||
public async Task<dynamic> GetNameInsigniaNote(Guid id)
|
||||
{
|
||||
var note = await _dbContext.Set<InsigniaNote>()
|
||||
.FirstOrDefaultAsync(x => x.Id == id);
|
||||
if (note == null)
|
||||
throw new Exception(GlobalMessages.InsigniaPeriodNotFound);
|
||||
string name = note.Name.ToString().ToThaiNumber();
|
||||
return name;
|
||||
}
|
||||
|
||||
public async Task<dynamic> GetYearInsigniaNote(Guid id)
|
||||
{
|
||||
var note = await _dbContext.Set<InsigniaNote>()
|
||||
.FirstOrDefaultAsync(x => x.Id == id);
|
||||
if (note == null)
|
||||
throw new Exception(GlobalMessages.InsigniaPeriodNotFound);
|
||||
string thaiYear = note.Year.ToThaiYear().ToString().ToThaiNumber();
|
||||
return thaiYear;
|
||||
}
|
||||
|
||||
public async Task<dynamic> Get2YearInsigniaPeriod(Guid id)
|
||||
{
|
||||
var period = await _dbContext.Set<InsigniaPeriod>()
|
||||
|
|
@ -1371,27 +1391,26 @@ namespace BMA.EHR.Application.Repositories.Reports
|
|||
}
|
||||
public async Task<dynamic> GetKhr5TotalReport(Guid id, string type = null, int node = -1, Guid nodeId = default)
|
||||
{
|
||||
var period = await _dbContext.Set<InsigniaPeriod>()
|
||||
var period = await _dbContext.Set<InsigniaNote>()
|
||||
.FirstOrDefaultAsync(x => x.Id == id);
|
||||
if (period == null)
|
||||
throw new Exception(GlobalMessages.InsigniaPeriodNotFound);
|
||||
|
||||
var data_insigniaQuery = _dbContext.Set<InsigniaRequestProfile>()
|
||||
.Include(x => x.Request)
|
||||
.Include(x => x.RequestInsignia)
|
||||
.ThenInclude(x => x.InsigniaType)
|
||||
.Where(x => x.Request.Period.Id == period.Id)
|
||||
.Where(x => x.IsApprove == true)
|
||||
.Where(x => x.Status == "PENDING")
|
||||
var data_insigniaQuery = _dbContext.Set<InsigniaNoteProfile>()
|
||||
.Include(x => x.RequestInsignia)
|
||||
.ThenInclude(x => x.InsigniaType)
|
||||
.Where(x => x.InsigniaNote.Id == period.Id)
|
||||
// .Where(x => x.IsApprove == true)
|
||||
.Where(x => x.Status == "DONE")
|
||||
.Where(x => x.RequestInsignia.InsigniaType != null);
|
||||
|
||||
if (type == "officer")
|
||||
{
|
||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType == "officer");
|
||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType.Trim().ToUpper() == "OFFICER");
|
||||
}
|
||||
else if (type == "employee")
|
||||
{
|
||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType == "employee");
|
||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType.Trim().ToUpper() == "EMPLOYEE");
|
||||
}
|
||||
|
||||
switch (node)
|
||||
|
|
@ -1426,14 +1445,14 @@ namespace BMA.EHR.Application.Repositories.Reports
|
|||
InsigniaTypeName = x.RequestInsignia.InsigniaType.Name,
|
||||
RequestInsigniaName = x.RequestInsignia.Name,
|
||||
InsigniaInitial = $"{x.RequestInsignia.Name}({x.RequestInsignia.ShortName})", // Insignia's full name and short name
|
||||
OcId = x.Request.OrganizationId
|
||||
OcId = x.Root
|
||||
}).ToListAsync();
|
||||
var insignia = (from r in data
|
||||
group r by new { OcId = r.OcId, r.InsigniaTypeName, r.RequestInsigniaName } into g
|
||||
select new
|
||||
{
|
||||
RowNo = 1,
|
||||
DepartmentName = _userProfileRepository.GetOc(g.Key.OcId, 0, AccessToken).Root,// _organizationCommonRepository.GetOrganizationNameFullPath(g.Key.OcId, false, false),
|
||||
DepartmentName = g.Key.OcId,
|
||||
InsigniaTypeName = g.Key.InsigniaTypeName,
|
||||
RequestInsigniaName = g.Key.RequestInsigniaName,
|
||||
Male = g.Sum(x => x.Gendor == "ชาย" ? 1 : 0),
|
||||
|
|
@ -1443,6 +1462,80 @@ namespace BMA.EHR.Application.Repositories.Reports
|
|||
|
||||
return insignia;
|
||||
}
|
||||
public async Task<dynamic> GetKhr6TotalReport(Guid id, string type = null, int node = -1, Guid nodeId = default)
|
||||
{
|
||||
var period = await _dbContext.Set<InsigniaNote>()
|
||||
.FirstOrDefaultAsync(x => x.Id == id);
|
||||
if (period == null)
|
||||
throw new Exception(GlobalMessages.InsigniaPeriodNotFound);
|
||||
|
||||
var data_insigniaQuery = _dbContext.Set<InsigniaNoteProfile>()
|
||||
.Include(x => x.RequestInsignia)
|
||||
.ThenInclude(x => x.InsigniaType)
|
||||
.Where(x => x.InsigniaNote.Id == period.Id)
|
||||
// .Where(x => x.IsApprove == true)
|
||||
.Where(x => x.Status == "DONE")
|
||||
.Where(x => x.RequestInsignia.InsigniaType != null);
|
||||
|
||||
if (type == "officer")
|
||||
{
|
||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType.Trim().ToUpper() == "OFFICER");
|
||||
}
|
||||
else if (type == "employee")
|
||||
{
|
||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType.Trim().ToUpper() == "EMPLOYEE");
|
||||
}
|
||||
|
||||
switch (node)
|
||||
{
|
||||
case 0:
|
||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.RootDnaId == nodeId);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.Child1DnaId == nodeId);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.Child2DnaId == nodeId);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.Child3DnaId == nodeId);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
data_insigniaQuery = data_insigniaQuery.Where(r => r.Child4DnaId == nodeId);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
var data = await data_insigniaQuery.Select(x => new
|
||||
{
|
||||
Gendor = x.Gender ?? "",
|
||||
InsigniaTypeName = x.RequestInsignia.InsigniaType.Name,
|
||||
RequestInsigniaName = x.RequestInsignia.Name,
|
||||
IsApprove = x.IsApprove,
|
||||
InsigniaInitial = $"{x.RequestInsignia.Name}({x.RequestInsignia.ShortName})", // Insignia's full name and short name
|
||||
OcId = x.Root
|
||||
}).ToListAsync();
|
||||
var insignia = (from r in data
|
||||
group r by new { OcId = r.OcId, r.InsigniaTypeName, r.RequestInsigniaName } into g
|
||||
select new
|
||||
{
|
||||
RowNo = 1,
|
||||
DepartmentName = g.Key.OcId,
|
||||
InsigniaTypeName = g.Key.InsigniaTypeName,
|
||||
RequestInsigniaName = g.Key.RequestInsigniaName,
|
||||
Pending = g.Sum(x => x.IsApprove == false ? 1 : 0),
|
||||
Done = g.Sum(x => x.IsApprove == true ? 1 : 0),
|
||||
Remark = "",
|
||||
}).ToList();
|
||||
|
||||
return insignia;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue