public static ArrayList GetItemByItemNumber(string strProductId)
        {
            ArrayList arrItem = new ArrayList();
            try
            {
                strProductId = strProductId.Trim();

                SearchStringCustomField objItemNumber = new SearchStringCustomField();
                objItemNumber.@operator = SearchStringFieldOperator.@is;
                objItemNumber.operatorSpecified = true;
                objItemNumber.searchValue = strProductId;
                objItemNumber.internalId = "custitemcst_itemnumber";

                ItemSearchBasic objItemSearchBasic = new ItemSearchBasic();
                objItemSearchBasic.customFieldList = new SearchCustomField[] { objItemNumber };

                objItemSearchBasic.isInactive = new SearchBooleanField();
                objItemSearchBasic.isInactive.searchValue = false;
                objItemSearchBasic.isInactive.searchValueSpecified = true;

                ItemSearch objItemSearch = new ItemSearch();
                objItemSearch.basic = objItemSearchBasic;
                SearchResult objSearchResult = _service.search(objItemSearch);
                if (objSearchResult.recordList != null && objSearchResult.recordList.Length > 0)
                {
                    for (int i = 0; i < objSearchResult.recordList.Length; i++)
                    {
                        if (objSearchResult.recordList[i] is NonInventoryResaleItem)
                        {
                            NonInventoryResaleItem objItem = (NonInventoryResaleItem)objSearchResult.recordList[i];
                            arrItem.Add(new string[] { objItem.internalId, objItem.internalId + " " + objItem.vendorName + ": " + objItem.salesDescription });
                        }
                        if (objSearchResult.recordList[i] is LotNumberedAssemblyItem)
                        {
                            LotNumberedAssemblyItem objItem = (LotNumberedAssemblyItem)objSearchResult.recordList[i];
                            arrItem.Add(new string[] { objItem.internalId, objItem.internalId + " " + objItem.vendorName + ": " + objItem.displayName });
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
            return arrItem;
        }
        public static string GetOrderId(string strCustomerId, string strPONumber, string strOrderNumber)
        {
            string strItem = "";
            try
            {
                TransactionSearch xactionSearch = new TransactionSearch();
                //SearchMultiSelectField entity = new SearchMultiSelectField();
                //entity.@operator = SearchMultiSelectFieldOperator.anyOf;
                //entity.operatorSpecified = true;
                //RecordRef custRecordRef = new RecordRef();
                //custRecordRef.internalId = strCustomerId;
                //custRecordRef.type = RecordType.customer;
                //custRecordRef.typeSpecified = true;
                //RecordRef[] custRecordRefArray = new RecordRef[1];
                //custRecordRefArray[0] = custRecordRef;
                //entity.searchValue = custRecordRefArray;

                SearchEnumMultiSelectField searchSalesOrderField = new SearchEnumMultiSelectField();
                searchSalesOrderField.@operator = SearchEnumMultiSelectFieldOperator.anyOf;
                searchSalesOrderField.operatorSpecified = true;
                System.String[] soStringArray = new System.String[1];
                soStringArray[0] = "_salesOrder";
                searchSalesOrderField.searchValue = soStringArray;

                TransactionSearchBasic xactionBasic = new TransactionSearchBasic();
                xactionBasic.type = searchSalesOrderField;
                //xactionBasic.entity = entity;
                xactionBasic.otherRefNum = new SearchTextNumberField();
                xactionBasic.otherRefNum.@operator = SearchTextNumberFieldOperator.equalTo;
                xactionBasic.otherRefNum.operatorSpecified = true;
                xactionBasic.otherRefNum.searchValue = strPONumber;

                SearchStringCustomField objOrderNumber = new SearchStringCustomField();
                objOrderNumber.internalId = "custbodycst_ordernumber";
                objOrderNumber.@operator = SearchStringFieldOperator.contains;
                objOrderNumber.operatorSpecified = true;
                objOrderNumber.searchValue = strOrderNumber;
                xactionBasic.customFieldList = new SearchCustomField[] { objOrderNumber };

                xactionSearch.basic = xactionBasic;

                SearchResult objSearchResult = _service.search(xactionSearch);
                if (objSearchResult.status != null && objSearchResult.status.isSuccess)
                {
                    if (objSearchResult.recordList != null)
                    {
                        Record[] recordList;
                        for (int i = 1; i <= objSearchResult.totalPages; i++)
                        {
                            recordList = objSearchResult.recordList;

                            for (int j = 0; j < recordList.Length; j++)
                            {
                                if (recordList[j] is SalesOrder)
                                {
                                    SalesOrder so = (SalesOrder)(recordList[j]);
                                    strItem = so.internalId;
                                    return strItem;
                                }
                            }
                        }
                    }
                }
                else
                {
                    strItem = "error";
                }
            }
            catch (Exception)
            {
            }
            return strItem;
        }
        public static void DeleteSalesOrder()
        {
            string strItem = "";
            try
            {
                TransactionSearch xactionSearch = new TransactionSearch();
                //xactionSearch.basic
                //SearchMultiSelectField entity = new SearchMultiSelectField();
                //entity.@operator = SearchMultiSelectFieldOperator.anyOf;
                //entity.operatorSpecified = true;
                //RecordRef custRecordRef = new RecordRef();
                //custRecordRef.internalId = strCustomerId;
                //custRecordRef.type = RecordType.customer;
                //custRecordRef.typeSpecified = true;
                //RecordRef[] custRecordRefArray = new RecordRef[1];
                //custRecordRefArray[0] = custRecordRef;
                //entity.searchValue = custRecordRefArray;

                SearchEnumMultiSelectField searchSalesOrderField = new SearchEnumMultiSelectField();
                searchSalesOrderField.@operator = SearchEnumMultiSelectFieldOperator.anyOf;
                searchSalesOrderField.operatorSpecified = true;
                System.String[] soStringArray = new System.String[1];
                soStringArray[0] = "_salesOrder";
                searchSalesOrderField.searchValue = soStringArray;

                TransactionSearchBasic xactionBasic = new TransactionSearchBasic();
                xactionBasic.type = searchSalesOrderField;
                xactionBasic.customFieldList = new SearchCustomField[1];

                SearchStringCustomField objNumber = new SearchStringCustomField();
                objNumber.internalId = "custbodycst_ordernumber";
                objNumber.@operator = SearchStringFieldOperator.notEmpty;
                objNumber.operatorSpecified = true;
                xactionBasic.customFieldList[0] = objNumber;
                xactionSearch.basic = xactionBasic;

                SearchResult objSearchResult = _service.search(xactionSearch);
                if (objSearchResult.status != null && objSearchResult.status.isSuccess)
                {
                    if (objSearchResult.recordList != null)
                    {
                        Record[] recordList;
                        for (int i = 1; i <= objSearchResult.totalPages; i++)
                        {
                            recordList = objSearchResult.recordList;

                            for (int j = 0; j < recordList.Length; j++)
                            {
                                if (recordList[j] is SalesOrder)
                                {
                                    try
                                    {
                                        SalesOrder objOrder = GetSalesOrder(((SalesOrder)(recordList[j])).internalId);
                                        object objCustomReseller = GetValue("custbodytbfcustomerid", objOrder.customFieldList);
                                        if (objCustomReseller.ToString().Equals("CST100WA"))
                                        {
                                            RecordRef objRef = new RecordRef();
                                            objRef.internalId = objOrder.internalId;
                                            objRef.type = RecordType.salesOrder;
                                            objRef.typeSpecified = true;
                                            WriteResponse writeRes = _service.delete(objRef);
                                            if (writeRes.status.isSuccess)
                                            {
                                                Console.WriteLine("delete: " + objOrder.tranId);
                                            }
                                            else
                                            {
                                                Console.WriteLine(getStatusDetails(writeRes.status));
                                            }

                                        }
                                    }
                                    catch (Exception objExc)
                                    {
                                        Console.WriteLine(objExc.ToString());
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    strItem = "error";
                }
            }
            catch (Exception)
            {
            }
        }