case 4051

This commit is contained in:
2021-12-31 00:47:22 +00:00
parent d32148a09f
commit 2df3525b07
4 changed files with 45 additions and 11 deletions

View File

@@ -99,7 +99,7 @@ namespace AyaNova.Api.Controllers
}
/// <summary>
/// Get WorkOrder for customer
/// Get Customer view of WorkOrder
/// </summary>
/// <param name="id"></param>
/// <returns>Customer WorkOrder</returns>

View File

@@ -277,6 +277,8 @@ namespace AyaNova.Biz
{
var idList = dataListSelectedRequest.SelectedRowIds;
JArray ReportData = new JArray();
//spin up a workorderbiz for loaner on wo reporting purposes
WorkOrderBiz workorderbiz = WorkOrderBiz.GetBiz(ct);
while (idList.Any())
{
var batch = idList.Take(IReportAbleObject.REPORT_DATA_BATCH_SIZE);
@@ -289,7 +291,7 @@ namespace AyaNova.Biz
foreach (LoanUnit w in orderedList)
{
if (!ReportRenderManager.KeepGoing(jobId)) return null;
await PopulateVizFields(w);
await PopulateVizFields(w, workorderbiz);
var jo = JObject.FromObject(w);
if (!JsonUtil.JTokenIsNullOrEmpty(jo["CustomFields"]))
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
@@ -298,23 +300,41 @@ namespace AyaNova.Biz
orderedList = null;
}
vc.Clear();
oc.Clear();
return ReportData;
}
private ObjectCache oc = new ObjectCache();
private VizCache vc = new VizCache();
//populate viz fields from provided object
private async Task PopulateVizFields(LoanUnit o)
private async Task PopulateVizFields(LoanUnit o, WorkOrderBiz workorderbiz)
{
if (o.UnitId != null)
{
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.WorkOrderItemLoanId != null)
{
if (!oc.Has("woil", o.WorkOrderItemLoanId))
{
//not been fetched yet so get it all here
var wo = await workorderbiz.WorkOrderGetPartialAsync(AyaType.WorkOrderItemLoan, (long)o.WorkOrderItemLoanId, false, true);
oc.Add(wo.Items[0].Loans[0], "woil", o.WorkOrderItemLoanId);
vc.Add(wo.Serial.ToString(), "woserial", o.WorkOrderItemLoanId);
vc.Add(wo.CustomerViz, "wocustomer", o.WorkOrderItemLoanId);
}
var woil = (WorkOrderItemLoan)oc.Get("woil", o.WorkOrderItemLoanId);
o.WorkOrderRateViz = woil.UnitOfMeasureViz;
o.WorkOrderQuantityViz = woil.Quantity;
o.WorkOrderOutDateViz = woil.OutDate;
o.WorkOrderDueDateViz = woil.DueDate;
o.WorkOrderReturnDateViz = woil.ReturnDate;
o.WorkOrderSerialViz = vc.Get("woserial", o.WorkOrderItemLoanId);
o.WorkOrderCustomerViz = vc.Get("wocustomer", o.WorkOrderItemLoanId);
}
}

View File

@@ -650,7 +650,6 @@ namespace AyaNova.Biz
{
var wid = (await GetWorkOrderIdFromRelativeAsync(ayaType, id, ct)).ParentId;
return await ct.WorkOrder.AsNoTracking().Where(x => x.Id == wid).Select(x => x.Serial).FirstOrDefaultAsync();
}
@@ -3112,13 +3111,15 @@ namespace AyaNova.Biz
////////////////////////////////////////////////////////////////////////////////////////////////
// GET
//
internal async Task<WorkOrderItemLoan> LoanGetAsync(long id, bool logTheGetEvent = true)
internal async Task<WorkOrderItemLoan> LoanGetAsync(long id, bool logTheGetEvent = true, bool populateViz=false)
{
if (UserIsSubContractorRestricted) //no access allowed at all
return null;
var ret = await ct.WorkOrderItemLoan.AsNoTracking().SingleOrDefaultAsync(z => z.Id == id);
if (logTheGetEvent && ret != null)
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, id, ret.AyaType, AyaEvent.Retrieved), ct);
if(populateViz)
await LoanPopulateVizFields(ret);
return ret;
}

View File

@@ -28,8 +28,7 @@ namespace AyaNova.Models
//MIGRATE_OUTSTANDING this needs to be set in migrate v8 once workorderitemloan is coded and importable
public long? WorkOrderItemLoanId { get; set; }
[NotMapped]
public string WorkOrderItemLoanViz { get; set; }
[Required]
public decimal RateHour { get; set; }
@@ -64,7 +63,21 @@ namespace AyaNova.Models
[NotMapped]
public string UnitViz { get; set; }
[NotMapped]
public string WorkOrderCustomerViz { get; set; }
[NotMapped]
public string WorkOrderSerialViz { get; set; }
[NotMapped]
public string WorkOrderRateViz { get; set; }
[NotMapped]
public decimal WorkOrderQuantityViz { get; set; }
[NotMapped]
public DateTime? WorkOrderOutDateViz { get; set; }
[NotMapped]
public DateTime? WorkOrderDueDateViz { get; set; }
[NotMapped]
public DateTime? WorkOrderReturnDateViz { get; set; }
public LoanUnit()
{