23maverick23
4/20/2016 - 1:29 PM

NS: Populate charges on invoice custom field

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