This commit is contained in:
2021-12-29 22:25:24 +00:00
parent 5255145cd0
commit e3a0404022
4 changed files with 70 additions and 29 deletions

View File

@@ -546,9 +546,7 @@ MULTIPLE discount / markup ITEMS
i.OverrideTypeViz = contractOverrideTypeEnumList.Where(x => x.Id == (long)i.OverrideType).Select(x => x.Name).First();
foreach (var i in o.ContractServiceRateOverrideItems)
i.OverrideTypeViz = contractOverrideTypeEnumList.Where(x => x.Id == (long)i.OverrideType).Select(x => x.Name).First();
// foreach (var i in o.ServiceRateItems)
// i.ServiceRateViz = await ct.ServiceRate.AsNoTracking().Where(x => x.Id == i.ServiceRateId).Select(x => x.Name).FirstOrDefaultAsync();
foreach (var i in o.ServiceRateItems)
{
if (!vc.Has("servicerate", i.ServiceRateId))
@@ -557,9 +555,7 @@ MULTIPLE discount / markup ITEMS
}
i.ServiceRateViz = vc.Get("servicerate", i.ServiceRateId);
}
// foreach (var i in o.TravelRateItems)
// i.TravelRateViz = await ct.TravelRate.AsNoTracking().Where(x => x.Id == i.TravelRateId).Select(x => x.Name).FirstOrDefaultAsync();
foreach (var i in o.TravelRateItems)
{

View File

@@ -192,6 +192,8 @@ namespace AyaNova.Biz
var batchResults = await ct.CustomerNote.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 (CustomerNote w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -199,16 +201,26 @@ namespace AyaNova.Biz
var jo = JObject.FromObject(w);
ReportData.Add(jo);
}
orderedList = null;
}
vc.Clear();
return ReportData;
}
//populate viz fields from provided object
private async Task PopulateVizFields(CustomerNote o)
{
o.CustomerViz = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.Name).FirstOrDefaultAsync();
o.UserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.UserId).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 (!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);
}
//request cache for viz fields
private VizCache vc = new VizCache();
////////////////////////////////////////////////////////////////////////////////////////////////

View File

@@ -303,43 +303,65 @@ 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 CustomerServiceRequestStatusEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(CustomerServiceRequestStatus).ToString()),
UserTranslationId,
CurrentUserRoles);
var CustomerServiceRequestPriorityEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(CustomerServiceRequestPriority).ToString()),
UserTranslationId,
CurrentUserRoles);
batchResults = null;
foreach (CustomerServiceRequest w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
await PopulateVizFields(w, CustomerServiceRequestStatusEnumList, CustomerServiceRequestPriorityEnumList);
await PopulateVizFields(w);
var jo = JObject.FromObject(w);
if (!JsonUtil.JTokenIsNullOrEmpty(jo["CustomFields"]))
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo);
}
orderedList = null;
}
vc.Clear();
return ReportData;
}
//request cache for viz fields
private VizCache vc = new VizCache();
//populate viz fields from provided object
private async Task PopulateVizFields(CustomerServiceRequest o, List<NameIdItem> customerServiceRequestStatusEnumList, List<NameIdItem> customerServiceRequestPriorityEnumList)
private async Task PopulateVizFields(CustomerServiceRequest o)
{
if (customerServiceRequestStatusEnumList == null)
customerServiceRequestStatusEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(CustomerServiceRequestStatus).ToString()),
UserTranslationId,
CurrentUserRoles);
if (customerServiceRequestPriorityEnumList == null)
customerServiceRequestPriorityEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
StringUtil.TrimTypeName(typeof(CustomerServiceRequestPriority).ToString()),
UserTranslationId,
CurrentUserRoles);
if (o.UnitId != null)
o.UnitViz = await ct.Unit.AsNoTracking().Where(x => x.Id == o.UnitId).Select(x => x.Serial).FirstOrDefaultAsync();
o.CustomerViz = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.Name).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 (!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.WorkOrderItemId != null)
o.WorkOrderSerialViz = (await WorkOrderBiz.GetWorkOrderSerialFromRelativeAsync(AyaType.WorkOrderItem, (long)o.WorkOrderItemId, ct)).ToString();
o.RequestedByUserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.RequestedByUserId).Select(x => x.Name).FirstOrDefaultAsync();
{
if (!vc.Has("woserial", o.WorkOrderItemId))
vc.Add((await WorkOrderBiz.GetWorkOrderSerialFromRelativeAsync(AyaType.WorkOrderItem, (long)o.WorkOrderItemId, ct)).ToString(), "woserial", o.WorkOrderItemId);
o.WorkOrderSerialViz = vc.Get("woserial", o.WorkOrderItemId);
}
if (!vc.Has("user", o.RequestedByUserId))
vc.Add(await ct.User.AsNoTracking().Where(x => x.Id == o.RequestedByUserId).Select(x => x.Name).FirstOrDefaultAsync(), "user", o.RequestedByUserId);
o.RequestedByUserViz = vc.Get("user", o.RequestedByUserId);
o.StatusViz = customerServiceRequestStatusEnumList.Where(x => x.Id == (long)o.Status).Select(x => x.Name).First();
o.PriorityViz = customerServiceRequestPriorityEnumList.Where(x => x.Id == (long)o.Priority).Select(x => x.Name).First();
}
private List<NameIdItem> customerServiceRequestStatusEnumList = null;
private List<NameIdItem> customerServiceRequestPriorityEnumList = null;
////////////////////////////////////////////////////////////////////////////////////////////////
// IMPORT EXPORT

View File

@@ -218,7 +218,7 @@ namespace AyaNova.Biz
.AddText(obj.Address)
.AddText(obj.City)
.AddText(obj.Region)
.AddText(obj.Country)
.AddText(obj.Country)
.AddCustomFields(obj.CustomFields);
}
@@ -298,6 +298,7 @@ namespace AyaNova.Biz
var batchResults = await ct.HeadOffice.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 (HeadOffice w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
@@ -307,15 +308,25 @@ namespace AyaNova.Biz
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
ReportData.Add(jo);
}
orderedList = null;
}
vc.Clear();
return ReportData;
}
//request cache for viz fields
private VizCache vc = new VizCache();
//populate viz fields from provided object
private async Task PopulateVizFields(HeadOffice o)
{
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);
}
}