This commit is contained in:
@@ -443,22 +443,6 @@ namespace AyaNova.Biz
|
|||||||
|
|
||||||
if (newObj.ContractId != oldObj.ContractId)
|
if (newObj.ContractId != oldObj.ContractId)
|
||||||
await AutoSetCloseByDateAsync(newObj);
|
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);
|
await ct.WorkOrderState.AddAsync(newObject);
|
||||||
var wo = await ct.WorkOrder.FirstOrDefaultAsync(x => x.Id == newObject.WorkOrderId);
|
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;
|
wo.LastStatusId = newObject.WorkOrderStatusId;
|
||||||
|
|
||||||
await ct.SaveChangesAsync();
|
await ct.SaveChangesAsync();
|
||||||
|
|
||||||
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, newObject.Id, AyaType.WorkOrderStatus, AyaEvent.Created), ct);
|
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, newObject.Id, AyaType.WorkOrderStatus, AyaEvent.Created), ct);
|
||||||
await StateHandlePotentialNotificationEvent(AyaEvent.Created, newObject);
|
await StateHandlePotentialNotificationEvent(AyaEvent.Created, newObject);
|
||||||
return newObject;
|
return newObject;
|
||||||
|
|||||||
Reference in New Issue
Block a user