This commit is contained in:
2021-07-20 00:04:41 +00:00
parent 1ac224c43f
commit 9d5321c4e3
2 changed files with 43 additions and 24 deletions

View File

@@ -162,7 +162,7 @@ namespace AyaNova.Biz
}
await transaction.CommitAsync();
if (populateViz)
await WorkOrderPopulateVizFields(newObject, true);
await WorkOrderPopulateVizFields(newObject, true, false);
await WorkOrderHandlePotentialNotificationEvent(AyaEvent.Created, newObject);
return newObject;
@@ -282,7 +282,7 @@ namespace AyaNova.Biz
}
if (populateDisplayFields)
await WorkOrderPopulateVizFields(ret, false);
await WorkOrderPopulateVizFields(ret, false, false);
if (logTheGetEvent && ret != null)
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, id, BizType, AyaEvent.Retrieved), ct);
@@ -344,7 +344,7 @@ namespace AyaNova.Biz
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, BizType, AyaEvent.Modified), ct);
await WorkOrderSearchIndexAsync(putObject, false);
await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, putObject.Tags, dbObject.Tags);
await WorkOrderPopulateVizFields(putObject, true);//doing this here ahead of notification because notification may require the viz field lookup anyway and afaict no harm in it
await WorkOrderPopulateVizFields(putObject, true, false);//doing this here ahead of notification because notification may require the viz field lookup anyway and afaict no harm in it
await WorkOrderHandlePotentialNotificationEvent(AyaEvent.Modified, putObject, dbObject);
return putObject;
}
@@ -864,7 +864,7 @@ namespace AyaNova.Biz
// (returns workorder consisting only of the path from child or grandchild up to header populated
// with display data for reporting)
//
internal async Task<WorkOrder> WorkOrderGetPartialAsync(AyaType ayaType, long id, bool includeWoItemDescendants)
internal async Task<WorkOrder> WorkOrderGetPartialAsync(AyaType ayaType, long id, bool includeWoItemDescendants, bool populateForReporting)
{
//if it's the entire workorder just get, populate and return as normal
if (ayaType == AyaType.WorkOrder)
@@ -904,12 +904,6 @@ namespace AyaNova.Biz
else
{
//get the single workorder item required
woitem = await ct.WorkOrderItem.AsNoTracking().SingleOrDefaultAsync(x => x.Id == wid.WorkOrderItemId);
@@ -951,7 +945,7 @@ namespace AyaNova.Biz
if (woitem != null)
ret.Items.Add(woitem);
await WorkOrderPopulateVizFields(ret, false);
await WorkOrderPopulateVizFields(ret, false, populateForReporting);
return ret;
}
@@ -973,7 +967,7 @@ namespace AyaNova.Biz
idList = idList.Skip(IReportAbleObject.REPORT_DATA_BATCH_SIZE).ToArray();
List<WorkOrder> batchResults = new List<WorkOrder>();
foreach (long batchId in batch)
batchResults.Add(await WorkOrderGetPartialAsync(dataListSelectedRequest.AType, batchId, dataListSelectedRequest.IncludeWoItemDescendants));
batchResults.Add(await WorkOrderGetPartialAsync(dataListSelectedRequest.AType, batchId, dataListSelectedRequest.IncludeWoItemDescendants, true));
#region unnecessary shit removed
//This is unnecessary because the re-ordering bit is only needed when the records are fetched in batches directly from the sql server as they
@@ -1064,7 +1058,7 @@ namespace AyaNova.Biz
////////////////////////////////////////////////////////////////////////////////////////////////
//VIZ POPULATE
//
private async Task WorkOrderPopulateVizFields(WorkOrder o, bool headerOnly)
private async Task WorkOrderPopulateVizFields(WorkOrder o, bool headerOnly, bool populateForReporting)
{
@@ -1081,7 +1075,7 @@ namespace AyaNova.Biz
foreach (var v in o.States)
await StatePopulateVizFields(v);
foreach (var v in o.Items)
await ItemPopulateVizFields(v);
await ItemPopulateVizFields(v, populateForReporting);
}
//popup Alert notes
@@ -1946,7 +1940,7 @@ namespace AyaNova.Biz
await ItemSearchIndexAsync(newObject, true);
await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, newObject.Tags, null);
await ItemHandlePotentialNotificationEvent(AyaEvent.Created, newObject);
await ItemPopulateVizFields(newObject);
await ItemPopulateVizFields(newObject, false);
return newObject;
}
}
@@ -2036,7 +2030,7 @@ namespace AyaNova.Biz
await ItemSearchIndexAsync(putObject, false);
await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, putObject.Tags, dbObject.Tags);
await ItemHandlePotentialNotificationEvent(AyaEvent.Modified, putObject, dbObject);
await ItemPopulateVizFields(putObject);
await ItemPopulateVizFields(putObject, false);
return putObject;
}
@@ -2148,7 +2142,7 @@ namespace AyaNova.Biz
////////////////////////////////////////////////////////////////////////////////////////////////
//VIZ POPULATE
//
private async Task ItemPopulateVizFields(WorkOrderItem o)
private async Task ItemPopulateVizFields(WorkOrderItem o, bool populateForReporting)
{
// if (o.WorkOrderOverseerId != null)
// o.WorkOrderOverseerViz = await ct.User.AsNoTracking().Where(x => x.Id == o.WorkOrderOverseerId).Select(x => x.Name).FirstOrDefaultAsync();
@@ -2172,7 +2166,7 @@ namespace AyaNova.Biz
foreach (var v in o.Travels)
await TravelPopulateVizFields(v);
foreach (var v in o.Units)
await UnitPopulateVizFields(v);
await UnitPopulateVizFields(v, populateForReporting);
}
@@ -5971,7 +5965,7 @@ namespace AyaNova.Biz
await UnitSearchIndexAsync(newObject, true);
await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, newObject.Tags, null);
await UnitHandlePotentialNotificationEvent(AyaEvent.Created, newObject);
await UnitPopulateVizFields(newObject);
await UnitPopulateVizFields(newObject, false);
return newObject;
}
@@ -6030,9 +6024,9 @@ namespace AyaNova.Biz
await UnitSearchIndexAsync(putObject, false);
await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, putObject.Tags, dbObject.Tags);
await UnitHandlePotentialNotificationEvent(AyaEvent.Modified, putObject, dbObject);
await UnitPopulateVizFields(putObject);
await UnitPopulateVizFields(putObject, false);
return putObject;
}
@@ -6131,12 +6125,25 @@ namespace AyaNova.Biz
////////////////////////////////////////////////////////////////////////////////////////////////
//VIZ POPULATE
//
private async Task UnitPopulateVizFields(WorkOrderItemUnit o)
private async Task UnitPopulateVizFields(WorkOrderItemUnit o, bool populateForReporting)
{
var unitInfo = await ct.Unit.AsNoTracking().Where(x => x.Id == o.UnitId).Select(x => new { x.Serial, x.Description, x.UnitModelId }).FirstOrDefaultAsync();
var unitInfo = await ct.Unit.AsNoTracking()
.Where(x => x.Id == o.UnitId)
.Select(x => new { x.Serial, x.Description, x.UnitModelId, x.Address, x.City, x.Region, x.Country, x.Latitude, x.Longitude })
.FirstOrDefaultAsync();
o.UnitViz = unitInfo.Serial;
o.UnitDescriptionViz = unitInfo.Description;
if (populateForReporting)
{
o.AddressViz = unitInfo.Address;
o.CityViz = unitInfo.City;
o.RegionViz = unitInfo.Region;
o.CountryViz = unitInfo.Country;
o.LatitudeViz = unitInfo.Latitude;
o.LongitudeViz = unitInfo.Longitude;
}
if (unitInfo.UnitModelId != null)
{
var unitModelInfo = await ct.UnitModel.AsNoTracking().Where(x => x.Id == unitInfo.UnitModelId).Select(x => new { x.Name, x.VendorId, x.Number }).FirstOrDefaultAsync();

View File

@@ -34,7 +34,19 @@ namespace AyaNova.Models
[NotMapped]
public string UnitDescriptionViz { get; set; }
//PHYSICAL ADDRESS
[NotMapped]
public string AddressViz { get; set; }
[NotMapped]
public string CityViz { get; set; }
[NotMapped]
public string RegionViz { get; set; }
[NotMapped]
public string CountryViz { get; set; }
[NotMapped]
public decimal? LatitudeViz { get; set; }
[NotMapped]
public decimal? LongitudeViz { get; set; }
//workaround for notification
[NotMapped, JsonIgnore]