diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index e608bc61..951d6dd9 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -856,17 +856,56 @@ namespace AyaNova.Biz var idList = dataListSelectedRequest.SelectedRowIds; JArray ReportData = new JArray(); - + while (idList.Any()) { var batch = idList.Take(IReportAbleObject.REPORT_DATA_BATCH_SIZE); idList = idList.Skip(IReportAbleObject.REPORT_DATA_BATCH_SIZE).ToArray(); List batchResults = new List(); foreach (long batchId in batch) - batchResults.Add(await WorkOrderGetPartialAsync(dataListSelectedRequest.AType, batchId)); + batchResults.Add(await WorkOrderGetPartialAsync(dataListSelectedRequest.AType, batchId)); - //order the results back into original - var orderedList = from id in batch join z in batchResults on id equals z.Id select z; + //order the results back into original + IEnumerable orderedList=null; + switch (dataListSelectedRequest.AType) + { + case AyaType.WorkOrder: + orderedList = from id in batch join z in batchResults on id equals z.Id select z; + break; + case AyaType.WorkOrderItem: + orderedList = from id in batch join z in batchResults on id equals z.Items[0].Id select z; + break; + case AyaType.WorkOrderItemExpense: + orderedList = from id in batch join z in batchResults on id equals z.Items[0].Expenses[0].Id select z; + break; + case AyaType.WorkOrderItemLabor: + orderedList = from id in batch join z in batchResults on id equals z.Items[0].Labors[0].Id select z; + break; + case AyaType.WorkOrderItemLoan: + orderedList = from id in batch join z in batchResults on id equals z.Items[0].Loans[0].Id select z; + break; + case AyaType.WorkOrderItemPart: + orderedList = from id in batch join z in batchResults on id equals z.Items[0].Parts[0].Id select z; + break; + case AyaType.WorkOrderItemPartRequest: + orderedList = from id in batch join z in batchResults on id equals z.Items[0].PartRequests[0].Id select z; + break; + case AyaType.WorkOrderItemScheduledUser: + orderedList = from id in batch join z in batchResults on id equals z.Items[0].ScheduledUsers[0].Id select z; + break; + case AyaType.WorkOrderItemTask: + orderedList = from id in batch join z in batchResults on id equals z.Items[0].Tasks[0].Id select z; + break; + case AyaType.WorkOrderItemTravel: + orderedList = from id in batch join z in batchResults on id equals z.Items[0].Travels[0].Id select z; + break; + case AyaType.WorkOrderItemOutsideService: + orderedList = from id in batch join z in batchResults on id equals z.Items[0].OutsideServices[0].Id select z; + break; + case AyaType.WorkOrderItemUnit: + orderedList = from id in batch join z in batchResults on id equals z.Items[0].Units[0].Id select z; + break; + } foreach (WorkOrder w in orderedList) {