This commit is contained in:
2021-07-20 16:07:01 +00:00
parent d3dba0fb68
commit 89e3e96320

View File

@@ -207,7 +207,7 @@ namespace AyaNova.Biz
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
// GET // 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); var ret = await WorkOrderGetFullAsync(id);
@@ -414,6 +414,19 @@ namespace AyaNova.Biz
if (ayaEvent != AyaEvent.Created && ayaEvent != AyaEvent.Modified) if (ayaEvent != AyaEvent.Created && ayaEvent != AyaEvent.Modified)
return; 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 //CREATION ACTIONS
if (ayaEvent == AyaEvent.Created) if (ayaEvent == AyaEvent.Created)
{ {
@@ -421,7 +434,6 @@ namespace AyaNova.Biz
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 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 AutoSetCloseByDateAsync(newObj);
await AutoSetAddressAsync(newObj); await AutoSetAddressAsync(newObj);
return;
} }
//MODIFIED ACTIONS //MODIFIED ACTIONS
@@ -6490,31 +6502,50 @@ namespace AyaNova.Biz
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
//GET CURRENT STATUS FOR WORKORDER FROM RELATIVE //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) internal async Task<WorkOrderStatus> GetCurrentWorkOrderStatusFromRelatedAsync(AyaType ayaType, long id)
{ {
//instantiated method to save adding the context if (mCurrentWorkOrderStatus == null)
return await GetCurrentWorkOrderStatusFromRelatedAsync(ayaType, id, ct); {
} var wid = await GetWorkOrderIdFromRelativeAsync(ayaType, id, ct);
internal static async Task<WorkOrderStatus> GetCurrentWorkOrderStatusFromRelatedAsync(AyaType ayaType, long id, AyContext ct) var stat = await ct.WorkOrderState.AsNoTracking()
{ .Where(z => z.WorkOrderId == wid.WorkOrderId)
//static method .OrderByDescending(z => z.Created)
var wid = await GetWorkOrderIdFromRelativeAsync(ayaType, id, ct); .Take(1)
var stat = await ct.WorkOrderState.AsNoTracking() .FirstOrDefaultAsync();
.Where(z => z.WorkOrderId == wid.WorkOrderId)
.OrderByDescending(z => z.Created)
.Take(1)
.FirstOrDefaultAsync();
//no state set yet?
//no state set yet? if (stat == null)
if (stat == null) mCurrentWorkOrderStatus = new WorkOrderStatus() { Id = -1, Locked = false, Completed = false };
{ //default else
return new WorkOrderStatus() { Id = -1, Locked = false, Completed = false }; 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 #endregion utility