Copy the tracking number from IF to Invoice.

Jira Code: NDAZ-20

When an  Invoice is created in NetSuite, a UserEvent Script runs and fetches the Tracking Number from Item Fulfillment. Once an Invoice is created, the script fetches Tracking Number from  PACKAGE TRACKING NUMBER Packages Subtab in Item Fulfillment and sets the number to the ADDITIONAL TRACKING # Field  Shipping Subtab of Invoice.

Tacking No set to Additional Tracking# field in NetSuite

/**
 * @NApiVersion 2.x
 * @NScriptType UserEventScript
 * @NModuleScope SameAccount
 */
/*******************************************************************************
 * DAZ-37 JJ UE Copy Tracking Number to Invoice from IF 
 * **************************************************************************
 * 
 * Date: 14-06-2019
 * 
 * Author: Jobin & Jismi IT Services LLP
 * 
 *****************************************************************************
**/
define(['N/format', 'N/url', 'N/search', 'N/runtime', 'N/record', 'N/https', 'N/ui/serverWidget'],

    function (format, url, search, runtime, record, https, serverWidget) {
        var detailObj = {};
        var main = {
            afterSubmit: function (scriptContext) {
                try {
                    var invRec = scriptContext.newRecord;
                    var invRecId = scriptContext.newRecord.id;
                    if (scriptContext.type == "create") {
                        var createdFromSO = invRec.getValue({ fieldId: 'createdfrom' })

                        if (createdFromSO) {
                            log.debug('createdFromSO', createdFromSO);
                            var soRec = record.load({ type: record.Type.SALES_ORDER, id: createdFromSO })

                            var lineCountSO = soRec.getLineCount({ sublistId: 'links' })
                            /*log.debug('lineCountSO', lineCountSO);*/

                            var IFArr = [];
                            for (var i = 0; i < lineCountSO; i++) {
                                if (soRec.getSublistValue({ sublistId: 'links', fieldId: 'type', line: i }) == 'Item Fulfillment') {
                                    IFArr.push(soRec.getSublistValue({ sublistId: 'links', fieldId: 'id', line: i }));
                                }
                            }
                            /*log.debug('IFArr', IFArr);*/
                            var trackNumber = [];
                            for (var j = 0; j < IFArr.length; j++) {
                                var IFRec = record.load({ type: record.Type.ITEM_FULFILLMENT, id: IFArr[j] })
                                var lineCountIF = IFRec.getLineCount({ sublistId: 'package' })
                                /*log.debug('lineCountIF', lineCountIF);*/
                                for (var m = 0; m < lineCountIF; m++) {
                                    var trackingNumberIF = IFRec.getSublistText({ sublistId: 'package', fieldId: 'packagetrackingnumber', line: m });
                                    trackNumber.push(trackingNumberIF);
                                }
                                log.debug('trackNumber', trackNumber);
                            }
                            for (var k = 0; k < trackNumber.length; k++) {
                                var invId = record.submitFields({
                                    type: record.Type.INVOICE,
                                    id: invRecId,
                                    values: {
                                        trackingnumbers: trackNumber[k]
                                    }
                                });
                            }
                            log.debug('invId', invId);
                        }
                    }
                } catch (er) {
                    log.debug('err@afterSubmit', er);
                }
            }
        }
        return main;
    });

Leave a comment

Your email address will not be published. Required fields are marked *