fix
This commit is contained in:
parent
fd25873348
commit
9483d537ce
2 changed files with 259 additions and 1 deletions
|
|
@ -8974,6 +8974,100 @@ namespace BMA.EHR.Application.Repositories
|
|||
// }
|
||||
|
||||
// insert candidate list
|
||||
|
||||
public async Task UpdateCandidateAsync(Guid periodId, Guid ocId, string oc, List<InsigniaResultSet> items)
|
||||
{
|
||||
try
|
||||
{
|
||||
var period = await _dbContext.Set<InsigniaPeriod>().FirstOrDefaultAsync(p => p.Id == periodId);
|
||||
|
||||
if (period == null)
|
||||
throw new Exception(GlobalMessages.InsigniaPeriodNotFound);
|
||||
|
||||
var req = await _dbContext.Set<InsigniaRequest>()
|
||||
.Include(x => x.RequestProfiles)
|
||||
.Include(x => x.Period)
|
||||
.Where(x => x.Period.Id == periodId)
|
||||
.Where(x => x.OrganizationId == ocId)
|
||||
.FirstOrDefaultAsync();
|
||||
|
||||
if (req != null)
|
||||
{
|
||||
foreach (var item in items)
|
||||
{
|
||||
var reqInsignia = await _dbContext.Set<Insignia>()
|
||||
.FirstOrDefaultAsync(i => i.Id == item.RequestInsignia.Id);
|
||||
|
||||
if (reqInsignia == null) throw new Exception(GlobalMessages.InsigniaNotFound);
|
||||
|
||||
var pf = req.RequestProfiles.FirstOrDefault(x => x.ProfileId == item.ProfileId);
|
||||
if (pf != null) continue; // มีอยู่แล้วข้ามไป
|
||||
|
||||
req.RequestProfiles.Add(new InsigniaRequestProfile
|
||||
{
|
||||
Status = "PENDING",
|
||||
ProfileId = item.ProfileId,
|
||||
RequestInsignia = reqInsignia,
|
||||
Salary = item.Salary,
|
||||
RequestDate = DateTime.Now,
|
||||
MatchingConditions =
|
||||
System.Text.Json.JsonSerializer.Serialize(item.MatchingConditions),
|
||||
CreatedFullName = FullName ?? "System Administrator",
|
||||
CreatedUserId = UserId ?? "",
|
||||
CreatedAt = DateTime.Now,
|
||||
LastUpdateFullName = FullName ?? "System Administrator",
|
||||
LastUpdateUserId = UserId ?? "",
|
||||
LastUpdatedAt = DateTime.Now,
|
||||
|
||||
// Add Information for reused in API Call
|
||||
ProfileType = item.ProfileType ?? "officer",
|
||||
Prefix = item.Prefix,
|
||||
FirstName = item.FirstName,
|
||||
LastName = item.LastName,
|
||||
CitizenId = item.CitizenId,
|
||||
BirthDate = item.BirthDate,
|
||||
DateAppoint = item.DateAppoint,
|
||||
Position = item.Position,
|
||||
Gender = item.Gender,
|
||||
PosTypeName = item.PosTypeName,
|
||||
PosLevelName = item.PosLevelName,
|
||||
PosNo = item.PosNo,
|
||||
Amount = item.Salary,
|
||||
PositionSalaryAmount = item.PositionSalary,
|
||||
LastInsigniaName = item.LastInsignia,
|
||||
Root = item.Root,
|
||||
RootId = item.RootId,
|
||||
RootDnaId = item.RootDnaId,
|
||||
Child1 = item.Child1,
|
||||
Child1Id = item.Child1Id,
|
||||
Child1DnaId = item.Child1DnaId,
|
||||
Child2 = item.Child2,
|
||||
Child2Id = item.Child2Id,
|
||||
Child2DnaId = item.Child2DnaId,
|
||||
Child3 = item.Child3,
|
||||
Child3Id = item.Child3Id,
|
||||
Child3DnaId = item.Child3DnaId,
|
||||
Child4 = item.Child4,
|
||||
Child4Id = item.Child4Id,
|
||||
Child4DnaId = item.Child4DnaId,
|
||||
|
||||
MarkDiscipline = item.MarkDiscipline,
|
||||
MarkInsignia = item.MarkInsignia,
|
||||
MarkLeave = item.MarkLeave,
|
||||
MarkRate = item.MarkRate
|
||||
});
|
||||
}
|
||||
|
||||
await _dbContext.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public async Task InsertCandidate(Guid periodId, Guid ocId, string oc, List<InsigniaResultSet> items)
|
||||
{
|
||||
try
|
||||
|
|
@ -8981,7 +9075,7 @@ namespace BMA.EHR.Application.Repositories
|
|||
var period = await _dbContext.Set<InsigniaPeriod>().FirstOrDefaultAsync(p => p.Id == periodId);
|
||||
|
||||
if (period == null)
|
||||
throw new Exception(GlobalMessages.CoinPeriodNotFound);
|
||||
throw new Exception(GlobalMessages.InsigniaPeriodNotFound);
|
||||
|
||||
var periodOlds = await _dbContext.Set<InsigniaPeriod>().Where(p => p.Year == period.Year).ToListAsync();
|
||||
foreach (var periodOld in periodOlds)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue