wes_w
01/08/2019, 5:22 PM/**
* @NApiVersion 2.x
* @NScriptType ClientScript
* @NModuleScope SameAccount
*/
define(['N/log'],
/**
* @param {serverWidget} serverWidget
*/
function(log) {
/**
* Function to be executed when field is changed.
*
* @param {Object} scriptContext
* @param {Record} scriptContext.currentRecord - Current form record
* @param {string} scriptContext.sublistId - Sublist name
* @param {string} scriptContext.fieldId - Field name
* @param {number} scriptContext.lineNum - Line number. Will be undefined if not a sublist or matrix field
* @param {number} scriptContext.columnNum - Line number. Will be undefined if not a matrix field
*
* @since 2015.2
*/
function fieldChanged(scriptContext) {
//Update brands field from class data
console.log('fieldChanged');
if (scriptContext.fieldId == 'custpage_class') {
var rec = scriptContext.currentRecord;
var itemClass = rec.getValue('custpage_class');
console.log('item Class ' + itemClass);
var data = rec.getValue('custpage_brandsbyclass');
console.log('data ' + data);
var brandsByClassData = JSON.parse(rec.getValue('custpage_brandsbyclass'));
var fieldBrand = rec.getField({
fieldId: 'custpage_brand'
});
fieldBrand.removeSelectOption({
value: null
});
fieldBrand.insertSelectOption({
//default
value: '-'
,text: 'Pick One'
,isSelected: true
});
var fieldSeries = rec.getField({
fieldId : 'custpage_series'
});
fieldSeries.removeSelectOption({
value: null
});
fieldSeries.insertSelectOption({
//default
value: '-'
,text: 'Pick One'
,isSelected: true
});
brandsByClassData[itemClass].forEach(function (obj) {
fieldBrand.insertSelectOption({
value: obj.brandId
,text: obj.brandName
});
});
}
if (scriptContext.fieldId == 'custpage_brand') {
var rec = scriptContext.currentRecord;
var series = rec.getValue('custpage_class') + "|" + rec.getValue('custpage_brand');
console.log('series ' + series);
var data = rec.getValue('custpage_seriesbyclassbrand');
console.log('data ' + data);
var seriesByClassBrandData = JSON.parse(rec.getValue('custpage_seriesbyclassbrand'));
var fieldSeries = rec.getField({
fieldId : 'custpage_series'
});
fieldSeries.removeSelectOption({
value: null
});
fieldSeries.insertSelectOption({
//default
value: '-'
,text: 'Pick One'
,isSelected: true
});
seriesByClassBrandData[series].printerCompId.forEach(function (id,index) {
fieldSeries.insertSelectOption({
value: id
,text: seriesByClassBrandData[series].printerCompName[index]
});
});
}
}
/**
* Validation function to be executed when record is saved.
*
* @param {Object} scriptContext
* @param {Record} scriptContext.currentRecord - Current form record
* @returns {boolean} Return true if record is valid
*
* @since 2015.2
*/
function saveRecord(scriptContext) {
var rec = scriptContext.currentRecord;
if (rec.getValue('custpage_class') === '-') {
alert("Please pick a class");
return false;
}
if (rec.getValue('custpage_brand') === '-') {
alert("Please pick a brand");
return false;
}
if (rec.getValue('custpage_series') === '-') {
alert("Please pick a series");
return false;
}
}
return {
fieldChanged: fieldChanged,
saveRecord: saveRecord
};
});