How to create bin transfer for a move all items from one location to another location.

/**
 *@NApiVersion 2.1
 *@NScriptType ScheduledScript
 *
 */
define(['N/record', 'N/search', 'N/file', 'N/runtime', 'N/email', 'N/redirect'],
    function (record, search, file, runtime, email, redirect) {
        function createBinTransfer(results) {
            try {
                var binTransfer = record.create({ type: record.Type.BIN_TRANSFER, isDynamic: true });
                binTransfer.setValue({ fieldId: 'memo', value: 'JJ CRAETED RECORD' });
                binTransfer.setValue({ fieldId: 'location', value: 4 });
                for (var line in results) {


                    binTransfer.selectNewLine({
                        sublistId: 'inventory'
                    });

                    binTransfer.setCurrentSublistValue({
                        sublistId: 'inventory',
                        fieldId: 'item',
                        value: line
                    });


                    binTransfer.setCurrentSublistValue({
                        sublistId: 'inventory',
                        fieldId: 'quantity',
                        value: results[line].qty
                    });

                    var inventoryDetail = binTransfer.getCurrentSublistSubrecord({
                        sublistId: 'inventory',
                        fieldId: 'inventorydetail'
                    });

                    // for Loop

                    log.debug("results[line].items", results[line].items);

                    results[line].items.forEach(function (binData) {


                        if (binData["Bin Number"]) {

                            inventoryDetail.selectNewLine({ sublistId: 'inventoryassignment' });

                            inventoryDetail.setCurrentSublistValue({
                                sublistId: "inventoryassignment",
                                fieldId: "binnumber",
                                value: parseInt(binData["Bin Number"])
                            });
                            inventoryDetail.setCurrentSublistValue({
                                sublistId: "inventoryassignment",
                                fieldId: "tobinnumber",
                                value: 5808
                            });
                            inventoryDetail.setCurrentSublistValue({
                                sublistId: "inventoryassignment",
                                fieldId: "quantity",
                                value: binData["onHand"]
                            });



                            inventoryDetail.commitLine({ sublistId: 'inventoryassignment' });

                        } else log.debug('Bin Number', binData["Bin Number"]);


                    });


                    binTransfer.commitLine({ sublistId: 'inventory' });
                }

                return binTransfer.save();


            } catch (err) {
                log.debug('error @createBinTransfer', err)
            }
        }






        function getItemBins() {
            try {
                var itemSearchObj = search.create({
                    type: "item",
                    filters:
                        [
                            ["binonhand.location", "anyof", "4"],
                            "AND",
                            ["binonhand.quantityonhand", "greaterthan", "0"],
                            "AND",
                            ["binonhand.binnumber", "noneof", "5808"]
                        ],
                    columns:
                        [
                            search.createColumn({
                                name: "internalid",
                                sort: search.Sort.ASC,
                                label: "Name"
                            }),
                            search.createColumn({ name: "displayname", label: "Display Name" }),
                            search.createColumn({ name: "type", label: "Type" }),
                            search.createColumn({
                                name: "quantityavailable",
                                join: "binOnHand",
                                label: "Available"
                            }),
                            search.createColumn({
                                name: "quantityonhand",
                                join: "binOnHand",
                                label: "onHand"
                            }),
                            search.createColumn({
                                name: "binnumber",
                                join: "binOnHand",
                                label: "Bin Number"
                            })
                        ]
                });

                var searchCoulumns = itemSearchObj.columns;
                var results = {};
                var pageData = itemSearchObj.runPaged({ pageSize: 1000 });

                var page = pageData.pageRanges;
                getItemBins

                for (var k = 0; k < page.length; k++) {
                    var data = pageData.fetch({ index: k }).data;
                    for (var j = 0; j < data.length; j++) {
                        var singleResult = JSON.parse('{}');
                        var result = data[j];
                        for (var i = 0; i < searchCoulumns.length; i++) {
                            var value = result.getValue(searchCoulumns[i]);
                            singleResult[searchCoulumns[i].label] = value ? value : '';
                        }

                        if (results[singleResult['Name']]) {
                            results[singleResult['Name']].items.push(singleResult);

                            results[singleResult['Name']].qty += parseInt(singleResult["onHand"] ? singleResult["onHand"] : 0);

                        }
                        else {
                            results[singleResult['Name']] = { items: [singleResult], qty: parseInt(singleResult["onHand"] ? singleResult["onHand"] : 0) };
                        }
                    }
                }

                return results;



            }
            catch (e) {
                log.debug('ERROR @ onRequest', e)
            }

        }


        return {
            execute: function (context) {
                try {

                    var allBinData = getItemBins();
                    var createdbinTranfers = createBinTransfer(allBinData);

                    log.debug("createdbin", createdbinTranfers);

                } catch (err) {
                    log.debug("err", err);
                }
            }
        }


    });

Leave a comment

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