This commit is contained in:
2021-07-20 23:57:01 +00:00
parent f663a61b38
commit 0c0e8c75a2

View File

@@ -443,22 +443,6 @@ namespace AyaNova.Biz
if (newObj.ContractId != oldObj.ContractId)
await AutoSetCloseByDateAsync(newObj);
//Set duration to completed
//Note that it's not practical to set this in the Created path because the header is saved *before* the state from the client for new work orders
//by necessity so if a user creates and closes a work order in one go then duration will not be set (or at least it will remain at zero which is actually accurate)
//Clear it if set and not completed state
//or
//Set it if not set and completed state
WorkOrderStatus currentStatus = await GetCurrentWorkOrderStatusFromRelatedAsync(AyaType.WorkOrder, newObj.Id);
if (currentStatus.Completed && newObj.DurationToCompleted == TimeSpan.Zero)
{
newObj.DurationToCompleted = DateTime.UtcNow - newObj.CreatedDate;
}
else if (newObj.DurationToCompleted != TimeSpan.Zero && !currentStatus.Completed)
{
newObj.DurationToCompleted = TimeSpan.Zero;
}
}
}
@@ -1585,9 +1569,21 @@ namespace AyaNova.Biz
{
await ct.WorkOrderState.AddAsync(newObject);
var wo = await ct.WorkOrder.FirstOrDefaultAsync(x => x.Id == newObject.WorkOrderId);
var newStatusInfo = await ct.WorkOrderStatus.AsNoTracking().FirstOrDefaultAsync(x => x.Id == newObject.WorkOrderStatusId);
//Set duration to completed in workorder header
//Clear it if set and not completed state
//or
//Set it if not set and completed state
if (newStatusInfo.Completed && wo.DurationToCompleted == TimeSpan.Zero)
wo.DurationToCompleted = DateTime.UtcNow - wo.CreatedDate;
else if (wo.DurationToCompleted != TimeSpan.Zero && !newStatusInfo.Completed)
wo.DurationToCompleted = TimeSpan.Zero;
wo.LastStatusId = newObject.WorkOrderStatusId;
await ct.SaveChangesAsync();
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, newObject.Id, AyaType.WorkOrderStatus, AyaEvent.Created), ct);
await StateHandlePotentialNotificationEvent(AyaEvent.Created, newObject);
return newObject;