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