Create custom field in item record of purchase order and set the vendor code part numbers.

/**
 * @NApiVersion 2.1
 * @NScriptType UserEventScript
 */
define(['N/record', 'N/recordContext', 'N/render', 'N/runtime', 'N/search'],
    /**
 * @param{record} record
 * @param{recordContext} recordContext
 * @param{render} render
 * @param{runtime} runtime
 * @param{search} search
 */
    (record, recordContext, render, runtime, search) => {

        const afterSubmit = (scriptContext) => {
            try {
                var scriptObj = runtime.getCurrentScript();
                var vendorCode, poSubsidiary,vendorName;
                if(scriptContext.type == "create"||scriptContext.type == "edit") {
                    var recId = scriptContext.newRecord.id;
                    log.debug('recId', recId);
                    var item_lines = scriptContext.newRecord.getLineCount({
                        sublistId: 'item'
                    });
                    log.debug('item_lines', item_lines);
                    poSubsidiary = scriptContext.newRecord.getValue({
                        fieldId: 'subsidiary'
                    });

                    vendorName=scriptContext.newRecord.getValue({
                        fieldId: 'entity'
                    });


                    // Load purchase order Record
                    var purchase_Record = record.load({
                        type: record.Type.PURCHASE_ORDER,
                        id:recId,
                        isDynamic: true,
                    });
                    for (var i = 0; i < item_lines; i++) {
                        var Item = (scriptContext.newRecord.getSublistValue({
                            sublistId: 'item',
                            fieldId: 'item',
                            line: i
                        }));
                        log.debug('Item', Item);

                        // Item Search to get Vendor Code
                        var item_Search= search.create({
                            type: "item",
                            filters:
                                [
                                    ["internalid","anyof",Item],
                                    "AND",
                                    ["vendor.subsidiary","anyof",poSubsidiary],
                                    "AND",
                                    ["othervendor","anyof",vendorName ]
                                ],
                            columns:
                                [
                                    search.createColumn({
                                        name: "vendorcode",
                                        label: "Vendor Code"})
                                ]
                        });
                        var searchResultCount = item_Search.runPaged().count;
                        log.debug("item_Search result count",searchResultCount);
                        var code = '';
                        item_Search.run().each(function(result) {
                            vendorCode = result.getValue({
                                name: 'vendorcode'
                            });
                            log.debug('vendor_code', vendorCode);
                            if (code != null && code != undefined && code != '') {
                                code = code + ',' + vendorCode;
                            }
                            else {
                                code = vendorCode;
                            }
                            return true;
                        });
                        log.debug('code', code);
                        purchase_Record.selectLine({
                            sublistId : 'item',
                            line:i,
                        });
                        var item_i = purchase_Record.setCurrentSublistValue({
                            fieldId : 'custcol_jj_vendor_code_num',
                            sublistId : 'item',
                            value : code,
                            line :i,
                        });
                        purchase_Record.commitLine({
                            sublistId : 'item',
                        });
                    }
                    var edit_PO = purchase_Record.save();

                }
            }
            catch (e) {
                log.debug("error@afterSubmit",e)
            }

        }

        return {afterSubmit}

    });

Leave a comment

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