public List <ItemSearchRow> executeSavedSearch(string savedSearchId) { List <ItemSearchRow> itemSearchRows = new List <ItemSearchRow>(); ItemSearchAdvanced itemSearchAdvanced = new ItemSearchAdvanced { savedSearchScriptId = savedSearchId }; SearchResult searchResult = getSearch(itemSearchAdvanced); if (searchResult.status.isSuccess) { Console.WriteLine(""); Console.WriteLine("Get Saved Search Success"); Console.WriteLine("Total Records: {0}", searchResult.totalRecords); Console.WriteLine("Total Page(s): {0}", searchResult.totalPages); Console.WriteLine(""); int totalPages = searchResult.totalPages; int pageIndex = searchResult.pageIndex; string searchId = searchResult.searchId; for (int i = pageIndex; i <= totalPages; i++) { searchResult = getSearchMoreWithId(searchId, i); Console.WriteLine("Reponse Page {0}", i); if (searchResult.status.isSuccess) { foreach (ItemSearchRow itemSearchRow in searchResult.searchRowList) { itemSearchRows.Add(itemSearchRow); } } else { Console.WriteLine("Search More Item Failed"); displayError(searchResult.status.statusDetail); } } } else { Console.WriteLine("Get Saved Search Failed"); displayError(searchResult.status.statusDetail); } Console.WriteLine(""); return(itemSearchRows); }
public IEnumerable<NesuiInventoryItem> GetItems(NetSuiteApi api) { var country = getCountry(api); var search = new ItemSearchAdvanced { savedSearchScriptId = this.getSavedSearchForItems(api) }; return api.Search(search) .GroupBy(it => { var item = (ItemSearchRow) it; return item.basic.itemId[0].searchValue; }) .Select(items => { var item = (ItemSearchRow) items.First(); //var totalStock = items.Sum(it => { // var itemWithStock = (ItemSearchRow)it; // return itemWithStock.inventoryNumberJoin.quantityavailable?[0].searchValue ?? 0; //}); var totalStock = (items.FirstOrDefault(it => { var itemWithStock = (ItemSearchRow) it; return itemWithStock.inventoryNumberJoin.location[0].searchValue.internalId == LOCATION_FOR_STOCKS; }) as ItemSearchRow)?.inventoryNumberJoin.quantityavailable?[0].searchValue ?? 0; var customFields = (IEnumerable<SearchColumnCustomField>) item.basic.customFieldList; var iva = (SearchColumnDoubleCustomField) customFields.First(f => f.scriptId == country.IvaPercentageFieldName); var ivaFactor = iva.searchValue / 100 + 1; var price = item.pricingJoin.unitPrice[0].searchValue * ivaFactor; return new NesuiInventoryItem { Id = item.basic.itemId[0].searchValue, Barcode = item.basic.itemId[0].searchValue, Name = item.basic.salesDescription[0].searchValue, Price = price, Stocks = new List<NesuiLocationWithQuantity> { new NesuiLocationWithQuantity { LocationId = "Total", Quantity = totalStock } } }; }).ToList(); }
public Dictionary<string, double> getBins(string SKU) { NetSuiteService objService = new NetSuiteService(); objService.CookieContainer = new CookieContainer(); Passport passport = new Passport(); passport.account = "3451682"; passport.email = "*****@*****.**"; RecordRef role = new RecordRef(); role.internalId = "1026"; passport.role = role; passport.password = "******"; Passport objPassport = passport; Status objStatus = objService.login(objPassport).status; ItemSearchAdvanced isa = new ItemSearchAdvanced(); isa.savedSearchId = "141"; //substitute your own saved search internal ID ItemSearch iS = new ItemSearch(); ItemSearchBasic isb = new ItemSearchBasic(); SearchStringField itemSKU = new SearchStringField(); itemSKU.searchValue = SKU; itemSKU.@operator = SearchStringFieldOperator.contains; itemSKU.operatorSpecified = true; isb.itemId = itemSKU; iS.basic = isb; isa.criteria = iS; SearchResult sr = new SearchResult(); sr = objService.search(isa); if (sr.status.isSuccess != true) throw new Exception("Cannot find item."); Dictionary<string, double> binNumberList = new Dictionary<string, double>(); foreach (ItemSearchRow irow in sr.searchRowList) { if (irow.basic.itemId[0].searchValue == SKU) { binNumberList.Add(irow.basic.binNumber[0].searchValue, irow.basic.binOnHandAvail[0].searchValue); } } return binNumberList; }