Quantity available of a kit item in NetSuite using saved search

Since the available quantity cannot be directly fetched from a kit item record, a saved search is used to retrieve the available quantity of its member items and their respective quantities in the kit. The saved search below provides the available quantity of a kit item. This function returns an object where the kit item’s internal ID is the key, and the value is an object containing its available quantity.

function fetchKitItemQuantityToBeAdjusted(nsLocation){
        let itemSearchObj = search.create({
          type: "item",
          filters:
          [
             ["memberitem.inventorylocation","anyof",nsLocation], 
             "AND",
             ["isinactive", "is", "F"]
          ],
          columns:
            [
              search.createColumn({ name: "internalid", summary: "GROUP" }),
              search.createColumn({
                name: "formulanumeric", summary: "MIN", formula: "CASE WHEN {memberquantity}>0 THEN  FLOOR({memberitem.locationquantityavailable}/{memberquantity}) ELSE 0 END"
              })
            ]
        });
        let kitItemObj = {};
        let pagedResults = itemSearchObj.runPaged({ pageSize: 1000 });
        let pageCount = pagedResults.pageRanges.length;
        for (let pageIndex = 0; pageIndex < pageCount; pageIndex++) {
          let page = pagedResults.fetch({ index: pageIndex });
          page.data.forEach(function (result) {
            kitItemObj[result.getValue({ name: "internalid", summary: "GROUP" })] =
            {
              quantityAvailable: result.getValue({ name: "formulanumeric", summary: "MIN" })
            }
          });
        }
        return kitItemObj;
      }

Leave a comment

Your email address will not be published. Required fields are marked *