/**
* @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}
});