NS: Populate charges on invoice custom field
/**
* @file Populates charges in an invoice header custom field.
* @version 1.0.0
* @author Ryan Morrissey <rmorrissey@netsuite.com>
* @copyright 2016 NetSuite, Inc.
* @license MIT
*/
function populateChargesAfterSubmit(type) {
try {
var invFld = 'custbody_charge_details',
invID = nlapiGetRecordId(),
invRec = nlapiLoadRecord('invoice', invID),
chgArr = [],
cols = [],
flts = [],
results = null;
cols.push(new nlobjSearchColumn('internalid'));
flts.push(new nlobjSearchFilter('internalid', 'invoice', 'is', invID));
results = nlapiSearchRecord('charge', null, flts, cols);
if (!results || results.length < 1) {
nlapiLogExecution('info', 'Invoice update', 'No charges found for invoice id ' + invID);
return;
}
for (var _i = results.length - 1; _i >= 0; _i--) {
chgArr.push(results[_i].getId());
}
nlapiLogExecution('debug', 'Invoice update', 'Charges found: ' + JSON.stringify(chgArr));
invRec.setFieldValues(invFld, chgArr);
nlapiSubmitRecord(invRec);
} catch(e) {
nlapiLogExecution('error', 'Try/catch error', e.message);
}
}