This commit is contained in:
@@ -193,7 +193,6 @@ namespace AyaNova.Biz
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
batchResults = null;
|
||||
|
||||
foreach (CustomerNote w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -219,7 +218,6 @@ namespace AyaNova.Biz
|
||||
o.UserViz = vc.Get("user", o.UserId);
|
||||
|
||||
}
|
||||
|
||||
private VizCache vc = new VizCache();
|
||||
|
||||
|
||||
|
||||
@@ -318,7 +318,6 @@ namespace AyaNova.Biz
|
||||
vc.Clear();
|
||||
return ReportData;
|
||||
}
|
||||
|
||||
private VizCache vc = new VizCache();
|
||||
|
||||
//populate viz fields from provided object
|
||||
|
||||
@@ -6,7 +6,6 @@ using AyaNova.Util;
|
||||
using AyaNova.Api.ControllerHelpers;
|
||||
using AyaNova.Models;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AyaNova.Biz
|
||||
{
|
||||
@@ -48,18 +47,14 @@ namespace AyaNova.Biz
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.PartInventoryId select z;
|
||||
|
||||
//cache frequent viz data
|
||||
var AyaTypesEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
|
||||
StringUtil.TrimTypeName(typeof(AyaType).ToString()),
|
||||
UserTranslationId,
|
||||
CurrentUserRoles);
|
||||
|
||||
batchResults = null;
|
||||
foreach (ViewPartInventoryList w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
var jo = JObject.FromObject(w);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList = null;
|
||||
}
|
||||
return ReportData;
|
||||
}
|
||||
|
||||
@@ -47,13 +47,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.ViewPartInventoryRequestList.AsNoTracking().Where(z => batch.Contains(z.RequestId)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.RequestId select z;
|
||||
|
||||
//cache frequent viz data
|
||||
var AyaTypesEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
|
||||
StringUtil.TrimTypeName(typeof(AyaType).ToString()),
|
||||
UserTranslationId,
|
||||
CurrentUserRoles);
|
||||
|
||||
batchResults=null;
|
||||
foreach (ViewPartInventoryRequestList w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -61,7 +55,7 @@ namespace AyaNova.Biz
|
||||
var jo = JObject.FromObject(w);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
|
||||
orderedList=null;
|
||||
}
|
||||
return ReportData;
|
||||
}
|
||||
|
||||
@@ -297,6 +297,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.PartWarehouse.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
batchResults=null;
|
||||
foreach (PartWarehouse w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -305,6 +306,7 @@ namespace AyaNova.Biz
|
||||
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList=null;
|
||||
}
|
||||
return ReportData;
|
||||
}
|
||||
|
||||
@@ -286,6 +286,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.Project.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
batchResults = null;
|
||||
foreach (Project w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -295,16 +296,23 @@ namespace AyaNova.Biz
|
||||
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList = null;
|
||||
}
|
||||
vc.Clear();
|
||||
return ReportData;
|
||||
}
|
||||
private VizCache vc = new VizCache();
|
||||
|
||||
|
||||
//populate viz fields from provided object
|
||||
private async Task PopulateVizFields(Project o)
|
||||
{
|
||||
if (o.ProjectOverseerId != null)
|
||||
o.ProjectOverseerViz = await ct.User.AsNoTracking().Where(x => x.Id == o.ProjectOverseerId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
{
|
||||
if (!vc.Has("user", o.ProjectOverseerId))
|
||||
vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == o.ProjectOverseerId).Select(x => x.Name).FirstOrDefaultAsync(), "user", o.ProjectOverseerId);
|
||||
o.ProjectOverseerViz = vc.Get("user", o.ProjectOverseerId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ namespace AyaNova.Biz
|
||||
await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, newObject.Tags, null);
|
||||
await HandlePotentialNotificationEvent(AyaEvent.Created, newObject);
|
||||
if (populateDisplayFields)
|
||||
await SetDisplayFields(newObject, false);
|
||||
await PopulateVizFields(newObject, false);
|
||||
return newObject;
|
||||
}
|
||||
}
|
||||
@@ -84,7 +84,7 @@ namespace AyaNova.Biz
|
||||
{
|
||||
var ret = await ct.PurchaseOrder.Include(z => z.Items).AsNoTracking().SingleOrDefaultAsync(z => z.Id == id);
|
||||
if (populateDisplayFields)
|
||||
await SetDisplayFields(ret, false);
|
||||
await PopulateVizFields(ret, false);
|
||||
|
||||
if (logTheGetEvent && ret != null)
|
||||
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, id, BizType, AyaEvent.Retrieved), ct);
|
||||
@@ -94,7 +94,7 @@ namespace AyaNova.Biz
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//DISPLAY FIELDS
|
||||
//
|
||||
private async Task SetDisplayFields(PurchaseOrder po, bool forReporting)
|
||||
private async Task PopulateVizFields(PurchaseOrder po, bool forReporting)
|
||||
{
|
||||
//NOTE: This expects to run AFTER bizActions have been performed
|
||||
if (po == null) return;
|
||||
@@ -112,60 +112,112 @@ namespace AyaNova.Biz
|
||||
|
||||
if (po.DropShipToCustomerId != null)
|
||||
{
|
||||
var ds = await ct.Customer.AsNoTracking().Where(x => x.Id == po.DropShipToCustomerId).FirstOrDefaultAsync();
|
||||
var pid = po.DropShipToCustomerId;
|
||||
if (!vc.Has("custname", po.DropShipToCustomerId))
|
||||
{
|
||||
var ds = await ct.Customer.AsNoTracking().Where(x => x.Id == pid).FirstOrDefaultAsync();
|
||||
vc.Add(ds.Name, "custname", pid);
|
||||
vc.Add(ds.Address, "custaddr", pid);
|
||||
vc.Add(ds.City, "custcity", pid);
|
||||
vc.Add(ds.Region, "custregion", pid);
|
||||
vc.Add(ds.Country, "custcountry", pid);
|
||||
vc.Add(ds.Latitude.ToString(), "custlat", pid);
|
||||
vc.Add(ds.Longitude.ToString(), "custlong", pid);
|
||||
vc.Add(ds.PostAddress, "custpostaddr", pid);
|
||||
vc.Add(ds.PostCity, "custpostcity", pid);
|
||||
vc.Add(ds.PostRegion, "custpostregion", pid);
|
||||
vc.Add(ds.PostCountry, "custpostcountry", pid);
|
||||
vc.Add(ds.PostCode, "custpostcode", pid);
|
||||
vc.Add(ds.Phone1, "custp1", pid);
|
||||
vc.Add(ds.Phone2, "custp2", pid);
|
||||
vc.Add(ds.Phone3, "custp3", pid);
|
||||
vc.Add(ds.Phone4, "custp4", pid);
|
||||
vc.Add(ds.Phone5, "custp5", pid);
|
||||
vc.Add(ds.EmailAddress, "custemail", pid);
|
||||
}
|
||||
|
||||
po.DropShipToCustomerViz = ds.Name;
|
||||
po.DropShipToCustomerViz = vc.Get("custname", pid);
|
||||
if (forReporting)
|
||||
{
|
||||
po.DropShipToCustomerAddressViz = ds.Address;
|
||||
po.DropShipToCustomerCityViz = ds.City;
|
||||
po.DropShipToCustomerRegionViz = ds.Region;
|
||||
po.DropShipToCustomerCountryViz = ds.Country;
|
||||
po.DropShipToCustomerLatitudeViz = ds.Latitude;
|
||||
po.DropShipToCustomerLongitudeViz = ds.Longitude;
|
||||
po.DropShipToCustomerPostAddressViz = ds.PostAddress;
|
||||
po.DropShipToCustomerPostCityViz = ds.PostCity;
|
||||
po.DropShipToCustomerPostRegionViz = ds.PostRegion;
|
||||
po.DropShipToCustomerPostCountryViz = ds.PostCountry;
|
||||
po.DropShipToCustomerPostCodeViz = ds.PostCode;
|
||||
po.DropShipToCustomerPhone1Viz = ds.Phone1;
|
||||
po.DropShipToCustomerPhone2Viz = ds.Phone2;
|
||||
po.DropShipToCustomerPhone3Viz = ds.Phone3;
|
||||
po.DropShipToCustomerPhone4Viz = ds.Phone4;
|
||||
po.DropShipToCustomerPhone5Viz = ds.Phone5;
|
||||
po.DropShipToCustomerEmailAddressViz = ds.EmailAddress;
|
||||
po.DropShipToCustomerAddressViz = vc.Get("custaddr", pid);
|
||||
po.DropShipToCustomerCityViz = vc.Get("custcity", pid);
|
||||
po.DropShipToCustomerRegionViz = vc.Get("custregion", pid);
|
||||
po.DropShipToCustomerCountryViz = vc.Get("custcountry", pid);
|
||||
po.DropShipToCustomerLatitudeViz = vc.GetAsDecimal("custlat", pid);
|
||||
po.DropShipToCustomerLongitudeViz = vc.GetAsDecimal("custlong", pid);
|
||||
po.DropShipToCustomerPostAddressViz = vc.Get("custpostaddr", pid);
|
||||
po.DropShipToCustomerPostCityViz = vc.Get("custpostcity", pid);
|
||||
po.DropShipToCustomerPostRegionViz = vc.Get("custpostregion", pid);
|
||||
po.DropShipToCustomerPostCountryViz = vc.Get("custpostcountry", pid);
|
||||
po.DropShipToCustomerPostCodeViz = vc.Get("custpostcode", pid);
|
||||
po.DropShipToCustomerPhone1Viz = vc.Get("custp1", pid);
|
||||
po.DropShipToCustomerPhone2Viz = vc.Get("custp2", pid);
|
||||
po.DropShipToCustomerPhone3Viz = vc.Get("custp3", pid);
|
||||
po.DropShipToCustomerPhone4Viz = vc.Get("custp4", pid);
|
||||
po.DropShipToCustomerPhone5Viz = vc.Get("custp5", pid);
|
||||
po.DropShipToCustomerEmailAddressViz = vc.Get("custemail", pid);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
var vnd = await ct.Vendor.AsNoTracking().Where(x => x.Id == po.VendorId).FirstOrDefaultAsync();
|
||||
|
||||
po.VendorViz = vnd.Name;
|
||||
po.VendorAlertNotesViz = vnd.AlertNotes;
|
||||
var vid = po.VendorId;
|
||||
if (!vc.Has("vndname", vid))
|
||||
{
|
||||
var vnd = await ct.Vendor.AsNoTracking().Where(x => x.Id == vid).FirstOrDefaultAsync();
|
||||
vc.Add(vnd.Name, "vndname", vid);
|
||||
vc.Add(vnd.AlertNotes, "vndalert", vid);
|
||||
if (forReporting)
|
||||
{
|
||||
po.VendorAddressViz = vnd.Address;
|
||||
po.VendorCityViz = vnd.City;
|
||||
po.VendorRegionViz = vnd.Region;
|
||||
po.VendorCountryViz = vnd.Country;
|
||||
po.VendorLatitudeViz = vnd.Latitude;
|
||||
po.VendorLongitudeViz = vnd.Longitude;
|
||||
po.VendorPostAddressViz = vnd.PostAddress;
|
||||
po.VendorPostCityViz = vnd.PostCity;
|
||||
po.VendorPostRegionViz = vnd.PostRegion;
|
||||
po.VendorPostCountryViz = vnd.PostCountry;
|
||||
po.VendorPostCodeViz = vnd.PostCode;
|
||||
po.VendorPhone1Viz = vnd.Phone1;
|
||||
po.VendorPhone2Viz = vnd.Phone2;
|
||||
po.VendorPhone3Viz = vnd.Phone3;
|
||||
po.VendorPhone4Viz = vnd.Phone4;
|
||||
po.VendorPhone5Viz = vnd.Phone5;
|
||||
po.VendorEmailAddressViz = vnd.EmailAddress;
|
||||
po.VendorContactViz = vnd.Contact;
|
||||
po.VendorContactNotesViz = vnd.ContactNotes;
|
||||
po.VendorAccountNumberViz = vnd.AccountNumber;
|
||||
var PoStatusEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
|
||||
vc.Add(vnd.Address, "vndaddr", vid);
|
||||
vc.Add(vnd.City, "vndcity", vid);
|
||||
vc.Add(vnd.Region, "vndregion", vid);
|
||||
vc.Add(vnd.Country, "vndcountry", vid);
|
||||
vc.Add(vnd.Latitude.ToString(), "vndlat", vid);
|
||||
vc.Add(vnd.Longitude.ToString(), "vndlong", vid);
|
||||
vc.Add(vnd.PostAddress, "vndpostaddr", vid);
|
||||
vc.Add(vnd.PostCity, "vndpostcity", vid);
|
||||
vc.Add(vnd.PostRegion, "vndpostregion", vid);
|
||||
vc.Add(vnd.PostCountry, "vndpostcountry", vid);
|
||||
vc.Add(vnd.PostCode, "vndpostcode", vid);
|
||||
vc.Add(vnd.Phone1, "vndp1", vid);
|
||||
vc.Add(vnd.Phone2, "vndp2", vid);
|
||||
vc.Add(vnd.Phone3, "vndp3", vid);
|
||||
vc.Add(vnd.Phone4, "vndp4", vid);
|
||||
vc.Add(vnd.Phone5, "vndp5", vid);
|
||||
vc.Add(vnd.EmailAddress, "vndemail", vid);
|
||||
vc.Add(vnd.Contact, "vndcontact", vid);
|
||||
vc.Add(vnd.ContactNotes, "vndcontactnotes", vid);
|
||||
vc.Add(vnd.AccountNumber, "vndacct", vid);
|
||||
}
|
||||
}
|
||||
po.VendorViz = vc.Get("vndname", vid);
|
||||
po.VendorAlertNotesViz = vc.Get("vndalert", vid);
|
||||
if (forReporting)
|
||||
{
|
||||
po.VendorAddressViz = vc.Get("vndaddr", vid);
|
||||
po.VendorCityViz = vc.Get("vndcity", vid);
|
||||
po.VendorRegionViz = vc.Get("vndregion", vid);
|
||||
po.VendorCountryViz = vc.Get("vndcountry", vid);
|
||||
po.VendorLatitudeViz = vc.GetAsDecimal("vndlat", vid);
|
||||
po.VendorLongitudeViz = vc.GetAsDecimal("vndlong", vid);
|
||||
po.VendorPostAddressViz = vc.Get("vndpostaddr", vid);
|
||||
po.VendorPostCityViz = vc.Get("vndpostcity", vid);
|
||||
po.VendorPostRegionViz = vc.Get("vndpostregion", vid);
|
||||
po.VendorPostCountryViz = vc.Get("vndpostcountry", vid);
|
||||
po.VendorPostCodeViz = vc.Get("vndpostcode", vid);
|
||||
po.VendorPhone1Viz = vc.Get("vndp1", vid);
|
||||
po.VendorPhone2Viz = vc.Get("vndp2", vid);
|
||||
po.VendorPhone3Viz = vc.Get("vndp3", vid);
|
||||
po.VendorPhone4Viz = vc.Get("vndp4", vid);
|
||||
po.VendorPhone5Viz = vc.Get("vndp5", vid);
|
||||
po.VendorEmailAddressViz = vc.Get("vndemail", vid);
|
||||
po.VendorContactViz = vc.Get("vndcontact", vid);
|
||||
po.VendorContactNotesViz = vc.Get("vndcontactnotes", vid);
|
||||
po.VendorAccountNumberViz = vc.Get("vndacct", vid);
|
||||
|
||||
if (PoStatusEnumList == null)
|
||||
PoStatusEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
|
||||
StringUtil.TrimTypeName(typeof(PurchaseOrderStatus).ToString()),
|
||||
UserTranslationId,
|
||||
CurrentUserRoles);
|
||||
@@ -176,33 +228,73 @@ namespace AyaNova.Biz
|
||||
if (po.ProjectId != null)
|
||||
po.ProjectViz = await ct.Project.AsNoTracking().Where(x => x.Id == po.ProjectId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
|
||||
if (po.ProjectId != null)
|
||||
{
|
||||
if (!vc.Has("projname", po.ProjectId))
|
||||
vc.Add(await ct.Project.AsNoTracking().Where(x => x.Id == po.ProjectId).Select(x => x.Name).FirstOrDefaultAsync(), "projname", po.ProjectId);
|
||||
po.ProjectViz = vc.Get("projname", po.ProjectId);
|
||||
}
|
||||
|
||||
|
||||
foreach (PurchaseOrderItem item in po.Items)
|
||||
{
|
||||
|
||||
if (!vc.Has("partname", item.PartId))
|
||||
{
|
||||
var partInfo = await ct.Part.AsNoTracking().Where(x => x.Id == item.PartId).Select(x => new { x.Description, x.Name, x.UPC, x.UnitOfMeasure, x.ManufacturerNumber }).FirstOrDefaultAsync();
|
||||
vc.Add(partInfo.Name, "partname", item.PartId);
|
||||
vc.Add(partInfo.Description, "partdescription", item.PartId);
|
||||
vc.Add(partInfo.UPC, "partupc", item.PartId);
|
||||
vc.Add(partInfo.UnitOfMeasure, "partuofm", item.PartId);
|
||||
vc.Add(partInfo.ManufacturerNumber, "partmanunum", item.PartId);
|
||||
}
|
||||
item.PartDescriptionViz = vc.Get("partdescription", item.PartId);
|
||||
item.PartNameViz = vc.Get("partname", item.PartId);
|
||||
item.UpcViz = vc.Get("partupc", item.PartId);
|
||||
item.PartUnitOfMeasureViz = vc.Get("partuofm", item.PartId);
|
||||
item.PartManufacturerNumberViz = vc.Get("partmanunum", item.PartId);
|
||||
|
||||
if (item.PartWarehouseId != 0)
|
||||
{
|
||||
if (!vc.Has("partwarehouse", item.PartWarehouseId))
|
||||
vc.Add(await ct.PartWarehouse.AsNoTracking().Where(x => x.Id == item.PartWarehouseId).Select(x => x.Name).FirstOrDefaultAsync(), "partwarehouse", item.PartWarehouseId);
|
||||
item.WarehouseViz = vc.Get("partwarehouse", item.PartWarehouseId);
|
||||
}
|
||||
|
||||
|
||||
var partInfo = await ct.Part.AsNoTracking().Where(x => x.Id == item.PartId).Select(x => new { PartDescriptionViz = x.Description, partNameViz = x.Name, partUPCViz=x.UPC, partunitofmeasureviz = x.UnitOfMeasure, partmanufacturernumber = x.ManufacturerNumber }).FirstOrDefaultAsync();
|
||||
item.PartDescriptionViz = partInfo.PartDescriptionViz;
|
||||
item.PartNameViz = partInfo.partNameViz;
|
||||
item.UpcViz=partInfo.partUPCViz;
|
||||
item.PartUnitOfMeasureViz = partInfo.partunitofmeasureviz;
|
||||
item.PartManufacturerNumberViz = partInfo.partmanufacturernumber;
|
||||
item.WarehouseViz = await ct.PartWarehouse.AsNoTracking().Where(x => x.Id == item.PartWarehouseId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
if (item.WorkOrderItemPartRequestId != null)
|
||||
{
|
||||
po.HasPartRequest = true;
|
||||
|
||||
item.WorkOrderItemPartRequestViz = (await WorkOrderBiz.GetWorkOrderSerialFromRelativeAsync(AyaType.WorkOrderItemPartRequest, (long)item.WorkOrderItemPartRequestId, ct)).ToString();
|
||||
|
||||
if (!vc.Has("woserial", item.WorkOrderItemPartRequestId))
|
||||
vc.Add((await WorkOrderBiz.GetWorkOrderSerialFromRelativeAsync(AyaType.WorkOrderItemPartRequest, (long)item.WorkOrderItemPartRequestId, ct)).ToString(), "woserial", item.WorkOrderItemPartRequestId);
|
||||
item.WorkOrderItemPartRequestViz = vc.Get("woserial", item.WorkOrderItemPartRequestId);
|
||||
|
||||
if (item.PartRequestedById != null)
|
||||
item.PartRequestedByViz = await ct.User.AsNoTracking().Where(x => x.Id == item.PartRequestedById).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
{
|
||||
if (!vc.Has("user", item.PartRequestedById))
|
||||
vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == item.PartRequestedById).Select(x => x.Name).FirstOrDefaultAsync(), "user", item.PartRequestedById);
|
||||
item.PartRequestedByViz = vc.Get("user", item.PartRequestedById);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
TaxCode tax = null;
|
||||
if (item.PurchaseTaxCodeId != null)
|
||||
{
|
||||
tax = await ct.TaxCode.AsNoTracking().Where(x => x.Id == item.PurchaseTaxCodeId).FirstOrDefaultAsync();
|
||||
if (!oc.Has("tax", item.PurchaseTaxCodeId))
|
||||
{
|
||||
tax = await ct.TaxCode.AsNoTracking().FirstOrDefaultAsync(z => z.Id == item.PurchaseTaxCodeId);
|
||||
oc.Add(tax, "tax", item.PurchaseTaxCodeId);
|
||||
}
|
||||
tax = (TaxCode)oc.Get("tax", item.PurchaseTaxCodeId);
|
||||
item.PurchaseTaxCodeViz = tax.Name;
|
||||
po.HasTaxes = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(item.VendorPartNumber))
|
||||
po.HasVendorNumber = true;
|
||||
|
||||
@@ -237,6 +329,9 @@ namespace AyaNova.Biz
|
||||
}
|
||||
}
|
||||
}
|
||||
List<NameIdItem> PoStatusEnumList = null;
|
||||
private VizCache vc = new VizCache();
|
||||
private ObjectCache oc = new ObjectCache();
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -289,7 +384,7 @@ namespace AyaNova.Biz
|
||||
await SearchIndexAsync(putObject, false);
|
||||
await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, putObject.Tags, dbObject.Tags);
|
||||
await HandlePotentialNotificationEvent(AyaEvent.Modified, putObject, dbObject);
|
||||
await SetDisplayFields(putObject, false);
|
||||
await PopulateVizFields(putObject, false);
|
||||
return putObject;
|
||||
}
|
||||
}
|
||||
@@ -790,16 +885,20 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.PurchaseOrder.Include(x => x.Items).AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
batchResults = null;
|
||||
foreach (PurchaseOrder w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
await SetDisplayFields(w, true);
|
||||
await PopulateVizFields(w, true);
|
||||
var jo = JObject.FromObject(w);
|
||||
if (!JsonUtil.JTokenIsNullOrEmpty(jo["CustomFields"]))
|
||||
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList = null;
|
||||
}
|
||||
vc.Clear();
|
||||
oc.Clear();
|
||||
return ReportData;
|
||||
}
|
||||
|
||||
|
||||
@@ -289,6 +289,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.Reminder.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
batchResults = null;
|
||||
foreach (Reminder w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -298,14 +299,19 @@ namespace AyaNova.Biz
|
||||
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList = null;
|
||||
}
|
||||
vc.Clear();
|
||||
return ReportData;
|
||||
}
|
||||
private VizCache vc = new VizCache();
|
||||
|
||||
//populate viz fields from provided object
|
||||
private async Task PopulateVizFields(Reminder o)
|
||||
{
|
||||
o.UserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.UserId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
if (!vc.Has("user", o.UserId))
|
||||
vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == o.UserId).Select(x => x.Name).FirstOrDefaultAsync(), "user", o.UserId);
|
||||
o.UserViz = vc.Get("user", o.UserId);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -347,6 +347,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.Review.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
batchResults = null;
|
||||
foreach (Review w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -356,21 +357,34 @@ namespace AyaNova.Biz
|
||||
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList = null;
|
||||
}
|
||||
vc.Clear();
|
||||
return ReportData;
|
||||
}
|
||||
private VizCache vc = new VizCache();
|
||||
|
||||
//populate viz fields from provided object
|
||||
public async Task PopulateVizFields(Review o)
|
||||
{
|
||||
o.UserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.UserId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
o.AssignedByUserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.AssignedByUserId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
o.ReviewObjectViz = BizObjectNameFetcherDirect.Name(o.AType, o.ObjectId, UserTranslationId, ct);
|
||||
if (!vc.Has("user", o.UserId))
|
||||
vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == o.UserId).Select(x => x.Name).FirstOrDefaultAsync(), "user", o.UserId);
|
||||
o.UserViz = vc.Get("user", o.UserId);
|
||||
|
||||
if (!vc.Has("user", o.AssignedByUserId))
|
||||
vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == o.AssignedByUserId).Select(x => x.Name).FirstOrDefaultAsync(), "user", o.AssignedByUserId);
|
||||
o.AssignedByUserViz = vc.Get("user", o.AssignedByUserId);
|
||||
|
||||
if (!vc.Has($"b{o.AType}{o.ObjectId}"))
|
||||
vc.Add(BizObjectNameFetcherDirect.Name((AyaType)o.AType, (long)o.ObjectId, UserTranslationId, ct), $"b{o.AType}{o.ObjectId}");
|
||||
o.ReviewObjectViz = vc.Get($"b{o.AType}{o.ObjectId}");
|
||||
|
||||
if (o.ReviewObjectViz.StartsWith("LT:"))
|
||||
{
|
||||
o.ReviewObjectViz = await Translate(o.ReviewObjectViz);
|
||||
if (!vc.Has(o.ReviewObjectViz))
|
||||
vc.Add(await Translate(o.ReviewObjectViz), o.ReviewObjectViz);
|
||||
o.ReviewObjectViz = vc.Get(o.ReviewObjectViz);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -314,6 +314,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.ServiceRate.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
batchResults=null;
|
||||
foreach (ServiceRate w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -322,6 +323,7 @@ namespace AyaNova.Biz
|
||||
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList=null;
|
||||
}
|
||||
return ReportData;
|
||||
}
|
||||
|
||||
@@ -298,6 +298,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.TaskGroup.AsNoTracking().Include(z => z.Items).Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
batchResults=null;
|
||||
foreach (TaskGroup w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -306,6 +307,7 @@ namespace AyaNova.Biz
|
||||
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList=null;
|
||||
}
|
||||
return ReportData;
|
||||
}
|
||||
|
||||
@@ -343,6 +343,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.TaxCode.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
batchResults=null;
|
||||
foreach (TaxCode w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -351,6 +352,7 @@ namespace AyaNova.Biz
|
||||
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList=null;
|
||||
}
|
||||
return ReportData;
|
||||
}
|
||||
|
||||
@@ -310,6 +310,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.TravelRate.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
batchResults=null;
|
||||
foreach (TravelRate w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -318,6 +319,7 @@ namespace AyaNova.Biz
|
||||
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList=null;
|
||||
}
|
||||
return ReportData;
|
||||
}
|
||||
|
||||
@@ -305,6 +305,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.Unit.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
batchResults = null;
|
||||
foreach (Unit w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -314,28 +315,56 @@ namespace AyaNova.Biz
|
||||
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList = null;
|
||||
}
|
||||
vc.Clear();
|
||||
return ReportData;
|
||||
}
|
||||
private VizCache vc = new VizCache();
|
||||
|
||||
//populate viz fields from provided object
|
||||
private async Task PopulateVizFields(Unit o)
|
||||
{
|
||||
o.CustomerViz = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
if (!vc.Has("customer", o.CustomerId))
|
||||
vc.Add(await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.Name).FirstOrDefaultAsync(), "customer", o.CustomerId);
|
||||
o.CustomerViz = vc.Get("customer", o.CustomerId);
|
||||
|
||||
if (o.UnitModelId != null)
|
||||
o.UnitModelNameViz = await ct.UnitModel.AsNoTracking().Where(x => x.Id == o.UnitModelId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
{
|
||||
if (!vc.Has("unitmodel", o.UnitModelId))
|
||||
vc.Add(await ct.UnitModel.AsNoTracking().Where(x => x.Id == o.UnitModelId).Select(x => x.Name).FirstOrDefaultAsync(), "unitmodel", o.UnitModelId);
|
||||
o.UnitModelNameViz = vc.Get("unitmodel", o.UnitModelId);
|
||||
}
|
||||
|
||||
if (o.ParentUnitId != null)
|
||||
o.ParentUnitViz = await ct.Unit.AsNoTracking().Where(x => x.Id == o.ParentUnitId).Select(x => x.Serial).FirstOrDefaultAsync();
|
||||
{
|
||||
if (!vc.Has("unitserial", o.ParentUnitId))
|
||||
vc.Add(await ct.Unit.AsNoTracking().Where(x => x.Id == o.ParentUnitId).Select(x => x.Serial).FirstOrDefaultAsync(), "unitserial", o.ParentUnitId);
|
||||
o.ParentUnitViz = vc.Get("unitserial", o.ParentUnitId);
|
||||
}
|
||||
|
||||
if (o.ReplacedByUnitId != null)
|
||||
o.ReplacedByUnitViz = await ct.Unit.AsNoTracking().Where(x => x.Id == o.ReplacedByUnitId).Select(x => x.Serial).FirstOrDefaultAsync();
|
||||
{
|
||||
if (!vc.Has("unitserial", o.ReplacedByUnitId))
|
||||
vc.Add(await ct.Unit.AsNoTracking().Where(x => x.Id == o.ReplacedByUnitId).Select(x => x.Serial).FirstOrDefaultAsync(), "unitserial", o.ReplacedByUnitId);
|
||||
o.ReplacedByUnitViz = vc.Get("unitserial", o.ReplacedByUnitId);
|
||||
}
|
||||
|
||||
if (o.PurchasedFromVendorId != null)
|
||||
o.PurchasedFromVendorViz = await ct.Vendor.AsNoTracking().Where(x => x.Id == o.PurchasedFromVendorId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
{
|
||||
if (!vc.Has("vendorname", o.PurchasedFromVendorId))
|
||||
vc.Add(await ct.Vendor.AsNoTracking().Where(x => x.Id == o.PurchasedFromVendorId).Select(x => x.Name).FirstOrDefaultAsync(), "vendorname", o.PurchasedFromVendorId);
|
||||
o.PurchasedFromVendorViz = vc.Get("vendorname", o.PurchasedFromVendorId);
|
||||
}
|
||||
|
||||
if (o.ContractId != null)
|
||||
o.ContractViz = await ct.Contract.AsNoTracking().Where(x => x.Id == o.ContractId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
{
|
||||
if (!vc.Has("contract", o.ContractId))
|
||||
{
|
||||
vc.Add(await ct.Contract.AsNoTracking().Where(x => x.Id == o.ContractId).Select(x => x.Name).FirstOrDefaultAsync(), "contract", o.ContractId);
|
||||
}
|
||||
o.ContractViz = vc.Get("contract", o.ContractId);
|
||||
}
|
||||
|
||||
if (o.Metered)
|
||||
{
|
||||
|
||||
@@ -154,6 +154,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.UnitMeterReading.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
batchResults = null;
|
||||
foreach (UnitMeterReading w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -161,17 +162,27 @@ namespace AyaNova.Biz
|
||||
var jo = JObject.FromObject(w);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList = null;
|
||||
}
|
||||
vc.Clear();
|
||||
return ReportData;
|
||||
}
|
||||
private VizCache vc = new VizCache();
|
||||
|
||||
|
||||
//populate viz fields from provided object
|
||||
private async Task PopulateVizFields(UnitMeterReading o)
|
||||
{
|
||||
o.UnitViz = await ct.Unit.AsNoTracking().Where(x => x.Id == o.UnitId).Select(x => x.Serial).FirstOrDefaultAsync();
|
||||
if (!vc.Has("unitserial", o.UnitId))
|
||||
vc.Add(await ct.Unit.AsNoTracking().Where(x => x.Id == o.UnitId).Select(x => x.Serial).FirstOrDefaultAsync(), "unitserial", o.UnitId);
|
||||
o.UnitViz = vc.Get("unitserial", o.UnitId);
|
||||
|
||||
if (o.WorkOrderItemUnitId != null)
|
||||
o.WorkOrderViz = (await WorkOrderBiz.GetWorkOrderSerialFromRelativeAsync(AyaType.WorkOrderItemUnit, (long)o.WorkOrderItemUnitId, ct)).ToString();
|
||||
{
|
||||
if (!vc.Has("woserial", o.WorkOrderItemUnitId))
|
||||
vc.Add((await WorkOrderBiz.GetWorkOrderSerialFromRelativeAsync(AyaType.WorkOrderItemUnit, (long)o.WorkOrderItemUnitId, ct)).ToString(), "woserial", o.WorkOrderItemUnitId);
|
||||
o.WorkOrderViz = vc.Get("woserial", o.WorkOrderItemUnitId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -288,6 +288,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.UnitModel.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
batchResults = null;
|
||||
foreach (UnitModel w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -297,15 +298,22 @@ namespace AyaNova.Biz
|
||||
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList = null;
|
||||
}
|
||||
vc.Clear();
|
||||
return ReportData;
|
||||
}
|
||||
private VizCache vc = new VizCache();
|
||||
|
||||
//populate viz fields from provided object
|
||||
private async Task PopulateVizFields(UnitModel o)
|
||||
{
|
||||
if (o.VendorId != null)
|
||||
o.VendorViz = await ct.Vendor.AsNoTracking().Where(x => x.Id == o.VendorId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
{
|
||||
if (!vc.Has("vendorname", o.VendorId))
|
||||
vc.Add(await ct.Vendor.AsNoTracking().Where(x => x.Id == o.VendorId).Select(x => x.Name).FirstOrDefaultAsync(), "vendorname", o.VendorId);
|
||||
o.VendorViz = vc.Get("vendorname", o.VendorId);
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -1035,14 +1035,9 @@ namespace AyaNova.Biz
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
|
||||
//cache frequent viz data
|
||||
//usertypes
|
||||
var UserTypesEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
|
||||
StringUtil.TrimTypeName(typeof(UserType).ToString()),
|
||||
UserTranslationId,
|
||||
CurrentUserRoles);
|
||||
|
||||
//foreach (User w in orderedList)
|
||||
|
||||
batchResults = null;
|
||||
foreach (var w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -1056,24 +1051,48 @@ namespace AyaNova.Biz
|
||||
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList = null;
|
||||
}
|
||||
vc.Clear();
|
||||
return ReportData;
|
||||
}
|
||||
private VizCache vc = new VizCache();
|
||||
|
||||
//populate viz fields from provided object
|
||||
private async Task PopulateVizFields(User o, List<NameIdItem> userTypesEnumList)
|
||||
{
|
||||
if (userTypesEnumList == null)
|
||||
userTypesEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
|
||||
StringUtil.TrimTypeName(typeof(UserType).ToString()),
|
||||
UserTranslationId,
|
||||
CurrentUserRoles);
|
||||
|
||||
if (o.CustomerId != null)
|
||||
o.CustomerViz = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
{
|
||||
if (!vc.Has("customer", o.CustomerId))
|
||||
vc.Add(await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.Name).FirstOrDefaultAsync(), "customer", o.CustomerId);
|
||||
o.CustomerViz = vc.Get("customer", o.CustomerId);
|
||||
}
|
||||
|
||||
if (o.HeadOfficeId != null)
|
||||
o.HeadOfficeViz = await ct.HeadOffice.AsNoTracking().Where(x => x.Id == o.HeadOfficeId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
{
|
||||
if (!vc.Has("headoffice", o.HeadOfficeId))
|
||||
{
|
||||
vc.Add(await ct.HeadOffice.AsNoTracking().Where(x => x.Id == o.HeadOfficeId).Select(x => x.Name).FirstOrDefaultAsync(), "headoffice", o.HeadOfficeId);
|
||||
}
|
||||
o.HeadOfficeViz = vc.Get("headoffice", o.HeadOfficeId);
|
||||
}
|
||||
|
||||
if (o.VendorId != null)
|
||||
o.VendorViz = await ct.Vendor.AsNoTracking().Where(x => x.Id == o.VendorId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
{
|
||||
if (!vc.Has("vendorname", o.VendorId))
|
||||
vc.Add(await ct.Vendor.AsNoTracking().Where(x => x.Id == o.VendorId).Select(x => x.Name).FirstOrDefaultAsync(), "vendorname", o.VendorId);
|
||||
o.VendorViz = vc.Get("vendorname", o.VendorId);
|
||||
}
|
||||
|
||||
o.UserTypeViz = userTypesEnumList.Where(x => x.Id == (long)o.UserType).Select(x => x.Name).First();
|
||||
}
|
||||
List<NameIdItem> UserTypesEnumList = null;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// IMPORT EXPORT
|
||||
|
||||
@@ -327,6 +327,7 @@ namespace AyaNova.Biz
|
||||
var batchResults = await ct.Vendor.AsNoTracking().Where(z => batch.Contains(z.Id)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
batchResults=null;
|
||||
foreach (Vendor w in orderedList)
|
||||
{
|
||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||
@@ -335,6 +336,7 @@ namespace AyaNova.Biz
|
||||
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
||||
ReportData.Add(jo);
|
||||
}
|
||||
orderedList=null;
|
||||
}
|
||||
return ReportData;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user