public List <PurchaseOrder> GetPurchaseOrdersByStatus(string queryStatus) { var manager = CommerceServerCore.GetPoManager(); System.Data.DataSet searchableProperties = manager.GetSearchableProperties(CultureInfo.CurrentUICulture.ToString()); // set what to search SearchClauseFactory searchClauseFactory = manager.GetSearchClauseFactory(searchableProperties, "PurchaseOrder"); // Get a list of the returnable properties - debug only //DataSet ret = manager.GetReturnableProperties("EN"); //StringBuilder props = new StringBuilder(); //foreach (DataRow row in ret.Tables[0].Rows) //{ // if (props.Length > 0) props.Append(","); // props.Append(row.ItemArray[0].ToString()); //} // set what field/value to search for SearchClause clause = searchClauseFactory.CreateClause(ExplicitComparisonOperator.Equal, "Status", queryStatus); // set what fields to return DataSet results = manager.SearchPurchaseOrders(clause, new SearchOptions() { NumberOfRecordsToReturn = 100, PropertiesToReturn = "OrderGroupId,TrackingNumber" }); int c = results.Tables.Count; List <PurchaseOrder> Pos = new List <PurchaseOrder>(); List <string> poTNs = new List <string>(); foreach (DataRow row in results.Tables[0].Rows) { poTNs.Add(row["TrackingNumber"].ToString()); } // Get the XML representation of the purchase orders. if (poTNs.Count > 0) { foreach (string trackingNumber in poTNs) { PurchaseOrder po = ReadPurchaseOrderByTrackingNumber(trackingNumber); Pos.Add(po); } } return(Pos); }
public List <PurchaseOrder> ReadPurchaseOrderHeadersByCustomerId(Guid customerId) { var manager = CommerceServerCore.GetPoManager(); System.Data.DataSet searchableProperties = manager.GetSearchableProperties(CultureInfo.CurrentUICulture.ToString()); // set what to search SearchClauseFactory searchClauseFactory = manager.GetSearchClauseFactory(searchableProperties, "PurchaseOrder"); // set what field/value to search for SearchClause clause = searchClauseFactory.CreateClause(ExplicitComparisonOperator.Equal, "SoldToId", customerId.ToCommerceServerFormat()); // set what fields to return DataSet results = manager.SearchPurchaseOrders(clause, new SearchOptions() { PropertiesToReturn = "OrderGroupId,TrackingNumber,Created" }); List <PurchaseOrder> Pos = new List <PurchaseOrder>(); List <string> poTNs = new List <string>(); foreach (DataRow row in results.Tables[0].Rows) { DateTime created = (DateTime)row["Created"]; if (created > DateTime.Now.AddDays(int.Parse(Configuration.PurchaseOrdersGetLatestHowManyDays) * -1)) { poTNs.Add(row["TrackingNumber"].ToString()); } } if (poTNs.Count > 0) { foreach (string trackingNumber in poTNs) { PurchaseOrder po = ReadPurchaseOrderByTrackingNumber(trackingNumber); Pos.Add(po); } } return(Pos); }