case 4051
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user