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;
}