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();
        }
Example #3
-1
        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;
        }