Create a Kit Item based on a custom field

Jira Code: PROT-188

Create four different kit item on the creation of the Lot Numbered Inventory Item based on the Custom field.

/**
 * @NApiVersion 2.x
 * @NScriptType UserEventScript
 * @NModuleScope SameAccount
 */
/*******************************************************************************
 * PROT-188 UE Create Kit Item
 * *************************************************************************
 * 
 * Date: 10-04-2019
 * 
 * Updated date :
 * 
 * Author: Jobin & Jismi IT Services LLP
 * 
 *****************************************************************************
 **/
define(['N/file', 'N/url', 'N/search', 'N/runtime', 'N/record', 'N/https', 'N/ui/serverWidget', 'N/email', 'N/task', 'N/format'],

    function (file, url, search, runtime, record, https, serverWidget, email, task, format) {
        var main = {
            afterSubmit: function (scriptContext) {
                if (scriptContext.type == "create") {
                    log.debug("scriptContext", scriptContext)
                    var recordId = scriptContext.newRecord.id;
                    var itemRecord = record.load({
                        type: record.Type.LOT_NUMBERED_INVENTORY_ITEM,
                        id: recordId,
                        isDynamic: false
                    });
                    var kit_item_created = itemRecord.getValue('custitem_jj_kit_item_created');
                    if (kit_item_created == true) {
                        var customizVia = itemRecord.getValue('custitem41');
                        var department = itemRecord.getValue('department');
                        var displayname = itemRecord.getValue('displayname');
                        var itemid = itemRecord.getValue('itemid');
                        var internalid = itemRecord.getValue('internalid');
                        var inventoryitemSearchObj = search.create({
                            type: "inventoryitem",
                            filters: [
                                ["type", "anyof", "InvtPart"],
                                "AND",
                                ["islotitem", "is", "T"],
                                "AND",
                                ["internalidnumber", "equalto", internalid]
                            ],
                            columns: [
                                search.createColumn({
                                    name: "itemid",
                                    sort: search.Sort.ASC,
                                    label: "Name"
                                }),
                                search.createColumn({
                                    name: "displayname",
                                    label: "Display Name"
                                }),
                                search.createColumn({
                                    name: "salesdescription",
                                    label: "Description"
                                }),
                                search.createColumn({
                                    name: "type",
                                    label: "Type"
                                }),
                                search.createColumn({
                                    name: "baseprice",
                                    label: "Base Price"
                                })
                            ]
                        });
                        var searchResultCount = inventoryitemSearchObj.runPaged().count;
                        log.debug("lotnumberedinventoryitemSearchObj result count", searchResultCount);
                        var baseprice;
                        if (searchResultCount > 0) {
                            var result = inventoryitemSearchObj.run().getRange(0, 1);
                            baseprice = result[0].getValue({
                                name: "baseprice",
                                label: "Base Price"
                            });
                        }
                        log.debug("baseprice", parseFloat(baseprice) + 2.50);
                        if (department == 2) {
                            var item1 = record.create({
                                type: record.Type.KIT_ITEM,
                                isDynamic: true
                            });
                            item1.setValue({
                                fieldId: 'itemid',
                                value: itemid + " C",
                                ignoreFieldChange: true
                            });
                            item1.setValue({
                                fieldId: 'displayname',
                                value: displayname + " CORP",
                                ignoreFieldChange: true
                            });
                            item1.setValue({
                                fieldId: 'department',
                                value: department,
                                ignoreFieldChange: true
                            });
                            item1.setValue({
                                fieldId: 'custitem41',
                                value: customizVia,
                                ignoreFieldChange: true
                            });
                            var itemOption = []
                            if (customizVia == 1) {
                                itemOption.push("CUSTCOL17")
                                itemOption.push("CUSTCOL20")
                            }
                            if (customizVia == 2) {
                                itemOption.push("CUSTCOL21")
                                itemOption.push("CUSTCOL32")
                            }
                            if (customizVia == 3) {
                                itemOption.push("CUSTCOL2")
                                itemOption.push("CUSTCOL4")
                            }
                            log.debug("itemOption", itemOption)
                            item1.setValue({
                                fieldId: 'itemoptions',
                                value: itemOption,
                                ignoreFieldChange: true
                            });
                            var lineNum = item1.selectNewLine({
                                sublistId: 'member'
                            });
                            item1.setCurrentSublistValue({
                                sublistId: 'member',
                                fieldId: 'item',
                                value: recordId,
                                ignoreFieldChange: true
                            });
                            item1.setCurrentSublistValue({
                                sublistId: 'member',
                                fieldId: 'quantity',
                                value: 1,
                                ignoreFieldChange: true
                            });
                            item1.commitLine({
                                sublistId: 'member'
                            });
                            var idCorp = item1.save()
                            log.debug("idCorp", idCorp)
                            var idCorpNew = record.load({
                                type: record.Type.KIT_ITEM,
                                id: idCorp,
                                isDynamic: false
                            });
                            idCorpNew.setSublistValue({
                                sublistId: 'price',
                                fieldId: 'price_1_',
                                line: 1,
                                value: parseFloat(baseprice) + 2.50
                            });
                            var idCorpNew = idCorpNew.save()
                            log.debug("idCorpNew", idCorpNew)
                            var item2 = record.create({
                                type: record.Type.KIT_ITEM,
                                isDynamic: true
                            });
                            item2.setValue({
                                fieldId: 'itemid',
                                value: itemid + " H",
                                ignoreFieldChange: true
                            });
                            item2.setValue({
                                fieldId: 'displayname',
                                value: displayname + " HOTEL",
                                ignoreFieldChange: true
                            });
                            item2.setValue({
                                fieldId: 'department',
                                value: department,
                                ignoreFieldChange: true
                            });
                            item2.setValue({
                                fieldId: 'custitem41',
                                value: customizVia,
                                ignoreFieldChange: true
                            });
                            var itemOption = []
                            if (customizVia == 1) {
                                itemOption.push("CUSTCOL17")
                                itemOption.push("CUSTCOL33")
                            }
                            if (customizVia == 2) {
                                itemOption.push("CUSTCOL21")
                                itemOption.push("CUSTCOL34")
                            }
                            if (customizVia == 3) {
                                itemOption.push("CUSTCOL2")
                                itemOption.push("CUSTCOL13")
                            }
                            log.debug("itemOption", itemOption)
                            item2.setValue({
                                fieldId: 'itemoptions',
                                value: itemOption,
                                ignoreFieldChange: true
                            });

                            var lineNum = item2.selectNewLine({
                                sublistId: 'member'
                            });
                            item2.setCurrentSublistValue({
                                sublistId: 'member',
                                fieldId: 'item',
                                value: recordId,
                                ignoreFieldChange: true
                            });
                            item2.setCurrentSublistValue({
                                sublistId: 'member',
                                fieldId: 'quantity',
                                value: 1,
                                ignoreFieldChange: true
                            });
                            item2.commitLine({
                                sublistId: 'member'
                            });
                            var idHotel = item2.save()
                            log.debug("idHotel", idHotel)
                            var idHotelNew = record.load({
                                type: record.Type.KIT_ITEM,
                                id: idHotel,
                                isDynamic: false
                            });
                            idHotelNew.setSublistValue({
                                sublistId: 'price',
                                fieldId: 'price_1_',
                                line: 1,
                                value: parseFloat(baseprice) + 2.50
                            });
                            var idHotelNew = idHotelNew.save()
                            log.debug("idHotelNew", idHotelNew)
                            var item3 = record.create({
                                type: record.Type.KIT_ITEM,
                                isDynamic: true
                            });
                            item3.setValue({
                                fieldId: 'itemid',
                                value: itemid + " S",
                                ignoreFieldChange: true
                            });
                            item3.setValue({
                                fieldId: 'displayname',
                                value: displayname + " SAYING",
                                ignoreFieldChange: true
                            });
                            item3.setValue({
                                fieldId: 'department',
                                value: department,
                                ignoreFieldChange: true
                            });
                            item3.setValue({
                                fieldId: 'custitem41',
                                value: customizVia,
                                ignoreFieldChange: true
                            });
                            var itemOption = []
                            if (customizVia == 1) {
                                itemOption.push("CUSTCOL17")
                                itemOption.push("CUSTCOL19")
                            }
                            if (customizVia == 2) {
                                itemOption.push("CUSTCOL21")
                                itemOption.push("CUSTCOL22")
                            }
                            if (customizVia == 3) {
                                itemOption.push("CUSTCOL2")
                                itemOption.push("CUSTCOL8")
                            }
                            log.debug("itemOption", itemOption)
                            item3.setValue({
                                fieldId: 'itemoptions',
                                value: itemOption,
                                ignoreFieldChange: true
                            });
                            var lineNum = item3.selectNewLine({
                                sublistId: 'member'
                            });
                            item3.setCurrentSublistValue({
                                sublistId: 'member',
                                fieldId: 'item',
                                value: recordId,
                                ignoreFieldChange: true
                            });
                            item3.setCurrentSublistValue({
                                sublistId: 'member',
                                fieldId: 'quantity',
                                value: 1,
                                ignoreFieldChange: true
                            });
                            item3.commitLine({
                                sublistId: 'member'
                            });
                            var idSaying = item3.save()
                            log.debug("idSaying", idSaying)
                            var idSayingNew = record.load({
                                type: record.Type.KIT_ITEM,
                                id: idSaying,
                                isDynamic: false
                            });
                            idSayingNew.setSublistValue({
                                sublistId: 'price',
                                fieldId: 'price_1_',
                                line: 1,
                                value: parseFloat(baseprice) + 2.50
                            });
                            var idSayingNew = idSayingNew.save()
                            log.debug("idSayingNew", idSayingNew)
                            var item4 = record.create({
                                type: record.Type.KIT_ITEM,
                                isDynamic: true
                            });
                            item4.setValue({
                                fieldId: 'itemid',
                                value: itemid + " M",
                                ignoreFieldChange: true
                            });
                            item4.setValue({
                                fieldId: 'displayname',
                                value: displayname + " MG",
                                ignoreFieldChange: true
                            });
                            item4.setValue({
                                fieldId: 'department',
                                value: department,
                                ignoreFieldChange: true
                            });
                            item4.setValue({
                                fieldId: 'custitem41',
                                value: customizVia,
                                ignoreFieldChange: true
                            });
                            var itemOption = []
                            if (customizVia == 1) {
                                itemOption.push("CUSTCOL17")
                                itemOption.push("CUSTCOL16")
                                itemOption.push("CUSTCOL5")
                            }
                            if (customizVia == 2) {
                                itemOption.push("CUSTCOL21")
                                itemOption.push("CUSTCOL23")
                                itemOption.push("CUSTCOL5")
                            }
                            if (customizVia == 3) {
                                itemOption.push("CUSTCOL2")
                                itemOption.push("CUSTCOL1")
                                itemOption.push("CUSTCOL5")
                            }
                            log.debug("itemOption", itemOption)
                            item4.setValue({
                                fieldId: 'itemoptions',
                                value: itemOption,
                                ignoreFieldChange: true
                            });
                            var lineNum = item4.selectNewLine({
                                sublistId: 'member'
                            });
                            item4.setCurrentSublistValue({
                                sublistId: 'member',
                                fieldId: 'item',
                                value: recordId,
                                ignoreFieldChange: true
                            });
                            item4.setCurrentSublistValue({
                                sublistId: 'member',
                                fieldId: 'quantity',
                                value: 1,
                                ignoreFieldChange: true
                            });
                            item4.commitLine({
                                sublistId: 'member'
                            });
                            var idMg = item4.save()
                            log.debug("idMg", idMg)
                            var idMgNew = record.load({
                                type: record.Type.KIT_ITEM,
                                id: idMg,
                                isDynamic: false
                            });
                            idMgNew.setSublistValue({
                                sublistId: 'price',
                                fieldId: 'price_1_',
                                line: 1,
                                value: parseFloat(baseprice) + 2.50
                            });
                            var idMgNew = idMgNew.save()
                            log.debug("idMgNew", idMgNew)
                        }
                    }
                }
            }
        }
        for (var key in main) {
            if (typeof main[key] === 'function') {
                main[key] = trycatch(main[key], key);
            }
        }

        function trycatch(myfunction, key) {
            return function () {
                try {
                    return myfunction.apply(this, arguments);
                } catch (e) {
                    log.debug("e in  " + key, e);
                }
            }
        };
        return main;
    });

Leave a comment

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