This commit is contained in:
@@ -115,7 +115,7 @@ namespace AyaNova.Biz
|
||||
{
|
||||
await WorkOrderBizActionsAsync(AyaEvent.Created, newObject, null, null);
|
||||
newObject.Tags = TagBiz.NormalizeTags(newObject.Tags);
|
||||
newObject.CustomFields = JsonUtil.CompactJson(newObject.CustomFields);
|
||||
newObject.CustomFields = JsonUtil.CompactJson(newObject.CustomFields);
|
||||
await ct.WorkOrder.AddAsync(newObject);
|
||||
await ct.SaveChangesAsync();
|
||||
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, newObject.Id, BizType, AyaEvent.Created), ct);
|
||||
@@ -163,7 +163,7 @@ namespace AyaNova.Biz
|
||||
await transaction.CommitAsync();
|
||||
if (populateViz)
|
||||
await WorkOrderPopulateVizFields(newObject, true, false);
|
||||
|
||||
|
||||
await WorkOrderHandlePotentialNotificationEvent(AyaEvent.Created, newObject);
|
||||
return newObject;
|
||||
}
|
||||
@@ -207,7 +207,7 @@ namespace AyaNova.Biz
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// GET
|
||||
//
|
||||
internal async Task<WorkOrder> WorkOrderGetAsync(long id, bool populateDisplayFields, bool logTheGetEvent = true, bool populateForReporting=false)
|
||||
internal async Task<WorkOrder> WorkOrderGetAsync(long id, bool populateDisplayFields, bool logTheGetEvent = true, bool populateForReporting = false)
|
||||
{
|
||||
|
||||
var ret = await WorkOrderGetFullAsync(id);
|
||||
@@ -414,14 +414,26 @@ namespace AyaNova.Biz
|
||||
if (ayaEvent != AyaEvent.Created && ayaEvent != AyaEvent.Modified)
|
||||
return;
|
||||
|
||||
|
||||
//CREATED OR MODIFIED
|
||||
if(ayaEvent==AyaEvent.Created || ayaEvent==AyaEvent.Modified)
|
||||
{
|
||||
//Set duration to completed
|
||||
//Clear it if set and not completed state
|
||||
//or
|
||||
//Set it if not set and completed state
|
||||
|
||||
todo
|
||||
}
|
||||
|
||||
|
||||
//CREATION ACTIONS
|
||||
if (ayaEvent == AyaEvent.Created)
|
||||
{
|
||||
await AutoSetContractAsync(newObj);
|
||||
if (newObj.CompleteByDate == null)//need to account for a user manually selecting a specific close by date in advance indicating to ignore any auto sets
|
||||
await AutoSetCloseByDateAsync(newObj);
|
||||
await AutoSetAddressAsync(newObj);
|
||||
return;
|
||||
await AutoSetAddressAsync(newObj);
|
||||
}
|
||||
|
||||
//MODIFIED ACTIONS
|
||||
@@ -6490,31 +6502,50 @@ namespace AyaNova.Biz
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//GET CURRENT STATUS FOR WORKORDER FROM RELATIVE
|
||||
//
|
||||
|
||||
//cache the state to save repeatedly fetching it for this operation which could be called multiple times in a flowv
|
||||
internal WorkOrderStatus mCurrentWorkOrderStatus = null;
|
||||
|
||||
internal async Task<WorkOrderStatus> GetCurrentWorkOrderStatusFromRelatedAsync(AyaType ayaType, long id)
|
||||
{
|
||||
//instantiated method to save adding the context
|
||||
return await GetCurrentWorkOrderStatusFromRelatedAsync(ayaType, id, ct);
|
||||
}
|
||||
internal static async Task<WorkOrderStatus> GetCurrentWorkOrderStatusFromRelatedAsync(AyaType ayaType, long id, AyContext ct)
|
||||
{
|
||||
//static method
|
||||
var wid = await GetWorkOrderIdFromRelativeAsync(ayaType, id, ct);
|
||||
var stat = await ct.WorkOrderState.AsNoTracking()
|
||||
.Where(z => z.WorkOrderId == wid.WorkOrderId)
|
||||
.OrderByDescending(z => z.Created)
|
||||
.Take(1)
|
||||
.FirstOrDefaultAsync();
|
||||
if (mCurrentWorkOrderStatus == null)
|
||||
{
|
||||
var wid = await GetWorkOrderIdFromRelativeAsync(ayaType, id, ct);
|
||||
var stat = await ct.WorkOrderState.AsNoTracking()
|
||||
.Where(z => z.WorkOrderId == wid.WorkOrderId)
|
||||
.OrderByDescending(z => z.Created)
|
||||
.Take(1)
|
||||
.FirstOrDefaultAsync();
|
||||
|
||||
|
||||
//no state set yet?
|
||||
if (stat == null)
|
||||
{ //default
|
||||
return new WorkOrderStatus() { Id = -1, Locked = false, Completed = false };
|
||||
//no state set yet?
|
||||
if (stat == null)
|
||||
mCurrentWorkOrderStatus = new WorkOrderStatus() { Id = -1, Locked = false, Completed = false };
|
||||
else
|
||||
mCurrentWorkOrderStatus = await ct.WorkOrderStatus.AsNoTracking().Where(z => z.Id == stat.WorkOrderStatusId).FirstAsync();//this should never not be null
|
||||
}
|
||||
return await ct.WorkOrderStatus.AsNoTracking().Where(z => z.Id == stat.WorkOrderStatusId).FirstAsync();//this should never not be null
|
||||
|
||||
return mCurrentWorkOrderStatus;
|
||||
}
|
||||
|
||||
// internal static async Task<WorkOrderStatus> GetCurrentWorkOrderStatusFromRelatedAsync(AyaType ayaType, long id, AyContext ct)
|
||||
// {
|
||||
// //static method
|
||||
// var wid = await GetWorkOrderIdFromRelativeAsync(ayaType, id, ct);
|
||||
// var stat = await ct.WorkOrderState.AsNoTracking()
|
||||
// .Where(z => z.WorkOrderId == wid.WorkOrderId)
|
||||
// .OrderByDescending(z => z.Created)
|
||||
// .Take(1)
|
||||
// .FirstOrDefaultAsync();
|
||||
|
||||
|
||||
// //no state set yet?
|
||||
// if (stat == null)
|
||||
// { //default
|
||||
// return new WorkOrderStatus() { Id = -1, Locked = false, Completed = false };
|
||||
// }
|
||||
// return await ct.WorkOrderStatus.AsNoTracking().Where(z => z.Id == stat.WorkOrderStatusId).FirstAsync();//this should never not be null
|
||||
|
||||
// }
|
||||
|
||||
|
||||
|
||||
#endregion utility
|
||||
|
||||
Reference in New Issue
Block a user