The code below is an example of how to use the FindPurchaseOrders() and creating sql parameters and search options:
OrderSearchOptions searchOptions = new OrderSearchOptions();
searchOptions.CacheResults = false;
searchOptions.StartingRecord = 0;
searchOptions.RecordsToRetrieve = 1;
searchOptions.Namespace = "Mediachase.Commerce.Orders";
OrderSearchParameters parameters = new OrderSearchParameters();
searchOptions.Classes.Add("PurchaseOrder");
parameters.SqlMetaWhereClause = $"META.TrackingNumber = '{OrderNumber}'";
parameters.SqlWhereClause = $"OrderGroupId IN (SELECT TOP {searchOptions.RecordsToRetrieve} ObjectId FROM OrderGroup_PurchaseOrder ORDER BY Created DESC)";
PurchaseOrder[] purchaseOrderCollection = OrderContext.Current.FindPurchaseOrders(parameters, searchOptions);
// Further
if (purchaseOrderCollection != null && purchaseOrderCollection.Any())
return purchaseOrderCollection.Select(x => (IPurchaseOrder)x).Where(x => x.OrderNumber.ToUpper().Trim() == OrderNumber.ToUpper().Trim()).OrderByDescending(x => x.Created).ToList<IPurchaseOrder>().FirstOrDefault();
Please sign in to leave a comment.