This client script is to set the tax item based on the custom field value
/**
* @NApiVersion 2.1
* @NScriptType ClientScript
* @NModuleScope SameAccount
*/
define([‘N/record’,‘N/search’],
/**
* @param{record} record
*/
function(record, search) {
/**
* Validation 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
*
* @returns {boolean} Return true if field is valid
*
* @since 2015.2
*/
function validateField(scriptContext) {
try {
let dataObj = scriptContext.currentRecord;
let customerField = scriptContext.fieldId;
// Check if the changed field is ‘entity’ (customer field)
if (customerField === ‘entity’) {
console.log(‘customerField changed:’, customerField);
let salesOrderCustomer = dataObj.getValue({
fieldId: ‘entity’
});
console.log(‘salesOrderCustomer:’, salesOrderCustomer);
if (salesOrderCustomer) {
let lookUpField = search.lookupFields({
type: search.Type.CUSTOMER,
id: salesOrderCustomer,
columns: [‘custentity_jj_sales_order_type’]
});
console.log(‘lookupfield’,lookUpField)
let valueLook = lookUpField[“custentity_jj_sales_order_type”][0][“value”];
console.log(‘valueLook’,valueLook)
dataObj.setValue({
fieldId: ‘custbody_jj_sales_order_type’,
value: valueLook,
})
if(valueLook == 1){
console.log(‘inside ship’)
let address = dataObj.getText({
fieldId: ‘shippingaddress_text’
})
console.log(‘Address’,address)
if (address.includes(‘Arizona’) || address.includes(‘AZ’)) {
console.log(‘The state is Arizona’);
// Set the istaxable checkbox to checked (true)
dataObj.setValue({
fieldId: ‘istaxable’,
value: true
});
// Set the taxitem to -222
dataObj.setValue({
fieldId: ‘taxitem’,
value: –222
});
console.log(‘istaxable set to checked and taxitem set to -222’);
}
return true;
}
return true;
}
return true;
}
return true;
}
catch(e){
log.error(‘error@fieldchanged’,e)
}
}
return {
validateField: validateField,
};
});