case 4051
This commit is contained in:
@@ -99,7 +99,7 @@ namespace AyaNova.Api.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get WorkOrder for customer
|
/// Get Customer view of WorkOrder
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id"></param>
|
/// <param name="id"></param>
|
||||||
/// <returns>Customer WorkOrder</returns>
|
/// <returns>Customer WorkOrder</returns>
|
||||||
|
|||||||
@@ -277,6 +277,8 @@ namespace AyaNova.Biz
|
|||||||
{
|
{
|
||||||
var idList = dataListSelectedRequest.SelectedRowIds;
|
var idList = dataListSelectedRequest.SelectedRowIds;
|
||||||
JArray ReportData = new JArray();
|
JArray ReportData = new JArray();
|
||||||
|
//spin up a workorderbiz for loaner on wo reporting purposes
|
||||||
|
WorkOrderBiz workorderbiz = WorkOrderBiz.GetBiz(ct);
|
||||||
while (idList.Any())
|
while (idList.Any())
|
||||||
{
|
{
|
||||||
var batch = idList.Take(IReportAbleObject.REPORT_DATA_BATCH_SIZE);
|
var batch = idList.Take(IReportAbleObject.REPORT_DATA_BATCH_SIZE);
|
||||||
@@ -289,7 +291,7 @@ namespace AyaNova.Biz
|
|||||||
foreach (LoanUnit w in orderedList)
|
foreach (LoanUnit w in orderedList)
|
||||||
{
|
{
|
||||||
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
if (!ReportRenderManager.KeepGoing(jobId)) return null;
|
||||||
await PopulateVizFields(w);
|
await PopulateVizFields(w, workorderbiz);
|
||||||
var jo = JObject.FromObject(w);
|
var jo = JObject.FromObject(w);
|
||||||
if (!JsonUtil.JTokenIsNullOrEmpty(jo["CustomFields"]))
|
if (!JsonUtil.JTokenIsNullOrEmpty(jo["CustomFields"]))
|
||||||
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
jo["CustomFields"] = JObject.Parse((string)jo["CustomFields"]);
|
||||||
@@ -298,23 +300,41 @@ namespace AyaNova.Biz
|
|||||||
orderedList = null;
|
orderedList = null;
|
||||||
}
|
}
|
||||||
vc.Clear();
|
vc.Clear();
|
||||||
|
oc.Clear();
|
||||||
return ReportData;
|
return ReportData;
|
||||||
}
|
}
|
||||||
|
private ObjectCache oc = new ObjectCache();
|
||||||
private VizCache vc = new VizCache();
|
private VizCache vc = new VizCache();
|
||||||
|
|
||||||
|
|
||||||
//populate viz fields from provided object
|
//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 (o.UnitId != null)
|
||||||
{
|
{
|
||||||
if (!vc.Has("unitserial", o.UnitId))
|
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);
|
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);
|
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;
|
var wid = (await GetWorkOrderIdFromRelativeAsync(ayaType, id, ct)).ParentId;
|
||||||
return await ct.WorkOrder.AsNoTracking().Where(x => x.Id == wid).Select(x => x.Serial).FirstOrDefaultAsync();
|
return await ct.WorkOrder.AsNoTracking().Where(x => x.Id == wid).Select(x => x.Serial).FirstOrDefaultAsync();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -3112,13 +3111,15 @@ namespace AyaNova.Biz
|
|||||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// GET
|
// 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
|
if (UserIsSubContractorRestricted) //no access allowed at all
|
||||||
return null;
|
return null;
|
||||||
var ret = await ct.WorkOrderItemLoan.AsNoTracking().SingleOrDefaultAsync(z => z.Id == id);
|
var ret = await ct.WorkOrderItemLoan.AsNoTracking().SingleOrDefaultAsync(z => z.Id == id);
|
||||||
if (logTheGetEvent && ret != null)
|
if (logTheGetEvent && ret != null)
|
||||||
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, id, ret.AyaType, AyaEvent.Retrieved), ct);
|
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, id, ret.AyaType, AyaEvent.Retrieved), ct);
|
||||||
|
if(populateViz)
|
||||||
|
await LoanPopulateVizFields(ret);
|
||||||
return 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
|
//MIGRATE_OUTSTANDING this needs to be set in migrate v8 once workorderitemloan is coded and importable
|
||||||
public long? WorkOrderItemLoanId { get; set; }
|
public long? WorkOrderItemLoanId { get; set; }
|
||||||
[NotMapped]
|
|
||||||
public string WorkOrderItemLoanViz { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
public decimal RateHour { get; set; }
|
public decimal RateHour { get; set; }
|
||||||
@@ -64,7 +63,21 @@ namespace AyaNova.Models
|
|||||||
[NotMapped]
|
[NotMapped]
|
||||||
public string UnitViz { get; set; }
|
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()
|
public LoanUnit()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user