Commerce Connect FindPurchaseOrders() code example

  • Updated

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();