Search to get inventory details of Lot Numbered Inventory Items

/**
 * function to search inventory details of lot numbered inventory items
 */
function invtDetailSearch(itemArray) {       //An array of lot numbered item is passed            as argument to this function.
  
    try {
        var searchResultArray = [];
        var JJ_invtDetailSearch = search.create({
            type: "inventorydetail",
            filters:
                [
                    ["item.internalid", "anyof", itemArray],
                    "AND",
                    ["expirationdate", "after", "today"],
                    "AND",
                    ["itemcount", "greaterthan", "0"],
                    "AND",
                    ["quantity", "greaterthan", "0"],
                    "AND",
                    ["inventorynumber.quantityavailable", "greaterthan", "0"]
                ],
            columns:
                [
                    search.createColumn({
                        name: "inventorynumber",
                        label: " Number"
                    }),
                    search.createColumn({name: "quantity", label: "Quantity"}),
                    search.createColumn({
                        name: "expirationdate",
                        sort: search.Sort.ASC,
                        label: "Expiration Date"
                    }),
                    search.createColumn({
                        name: "quantityavailable",
                        join: "inventoryNumber",
                        label: "Available"
                    }),
                    search.createColumn({
                        name: "internalid",
                        join: "item",
                        label: "Internal ID"
                    })
                ]
        });
        var searchResultCount = JJ_invtDetailSearch.runPaged().count;

        if (searchResultCount > 0) {
            var searchObj = {}
            JJ_invtDetailSearch.run().each(function (result) {
                var searchObj = {}
                var lotNumber, availableQty, internalid;

                var itemId = result.getValue({
                    name: "internalid",
                    join: "item",
                    label: "Internal ID"
                })

                lotNumber = result.getText({
                    name: "inventorynumber",
                    label: " Number"
                });

                availableQty = result.getValue({
                    name: "quantityavailable",
                    join: "inventoryNumber",
                    label: "Available"
                });
                searchObj[itemId] = {};
                searchObj[itemId][lotNumber] = availableQty;
                searchResultArray.push(searchObj);

                return true;
            });
            log.debug("search result array", searchArray);

Leave a comment

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