/**
* @NApiVersion 2.1
* @NScriptType Suitelet
*/
define(['N/ui/serverWidget', 'N/record', 'N/redirect', 'N/search'],
(serverWidget, record, redirect, search) => {
/***
* Function to retrieve custom list options
* */
function getCustomListOptions() {
try{
let options = [];
let searchObj = search.create({
type: 'customlist_jj_size_list',
filters: [
],
columns: [
search.createColumn({
name: 'name',
sort: search.Sort.ASC
}),
search.createColumn({
name: 'internalid'
})
]
});
searchObj.run().each(function (result) {
let value = result.getValue({ name: 'internalid' });
let text = result.getValue({ name: 'name' });
options.push({
value: value,
text: text
});
return true;
});
return options;
}catch(e){
log.error("error@getCustomListOptions", e)
}
}
/**
* Defines the Suitelet script trigger point.
* @param {Object} scriptContext
* @param {ServerRequest} scriptContext.request - Incoming request
* @param {ServerResponse} scriptContext.response - Suitelet response
* @since 2015.2
*/
const onRequest = (scriptContext) => {
if (scriptContext.request.method === 'GET') {
try {
let dataObj = scriptContext.request.parameters.currentRec
let palletForm = serverWidget.createForm({
title: 'Enter Pallet Information'
});
let idField = palletForm.addField({
id: 'custpage_variable',
type: serverWidget.FieldType.TEXT,
label: 'Variable',
defaultValue: dataObj
});
idField.defaultValue = dataObj;
palletForm.getField({
id: "custpage_variable"
}).updateDisplayType({
displayType: serverWidget.FieldDisplayType.HIDDEN
});
// Retrieve the custom list options using search
let customListOptions = getCustomListOptions();
// Number of dropdown fields to create
let numDropdowns = 2;
for (let i = 1; i <= numDropdowns; i++) {
let dropdownField = palletForm.addField({
id: 'dropdown_' + i,
type: serverWidget.FieldType.SELECT,
label: 'Size ' + i
});
// Set the options for each dropdown field
dropdownField.addSelectOption({
value: '',
text: '',
isSelected: true
});
for (let j = 0; j < customListOptions.length; j++) {
dropdownField.addSelectOption({
value: customListOptions[j].value,
text: customListOptions[j].text
});
}
}
palletForm.addField({
id: 'custpage_text1',
type: serverWidget.FieldType.TEXT,
label: 'PALLET QUANTITY #1'
});
palletForm.addField({
id: 'custpage_text2',
type: serverWidget.FieldType.TEXT,
label: 'PALLET QUANTITY #2'
});
// Add a submit button
palletForm.addSubmitButton({
label: 'Submit'
});
scriptContext.response.writePage(palletForm);
} catch (e) {
log.debug("error@GET", e)
}
}
else if (scriptContext.request.method === 'POST') {
try {
let internalId = scriptContext.request.parameters.custpage_variable;
let sizeOne = scriptContext.request.parameters.dropdown_1;
let sizeTwo = scriptContext.request.parameters.dropdown_2;
let quantityOne = scriptContext.request.parameters.custpage_text1;
let quantityTwo = scriptContext.request.parameters.custpage_text2;
let recordObject = record.load({
type: record.Type.ITEM_RECEIPT,
id: internalId,
isDynamic: true,
});
recordObject.setValue({
fieldId: 'custbody_jj_size_1',
value: sizeOne
})
recordObject.setValue({
fieldId: 'custbody_jj_size2',
value: sizeTwo
})
recordObject.setValue({
fieldId: 'custbody_jj_pallet_quantity_1',
value: quantityOne
})
recordObject.setValue({
fieldId: 'custbody_jj_pallet_quantity_2',
value: quantityTwo
})
recordObject.save();
redirect.redirect({
url: 'https://5272043-sb1.app.netsuite.com/app/accounting/transactions/itemrcpt.nl?id=' + internalId + '&whence=',
})
} catch (e) {
log.debug("error@POST", e)
}
}
}
return { onRequest }
});