Kmullervy
05/30/2019, 3:38 PMmichoel
05/30/2019, 8:40 PM/**
*@NApiVersion 2.x
*@NScriptType UserEventScript
*/
import { EntryPoints } from 'N/types';
import * as search from 'N/search';
import * as record from 'N/record';
export function afterSubmit(context: EntryPoints.UserEvent.afterSubmitContext) {
getChildCustomers(context.newRecord.id).forEach(id => {
updateChildCustomer(id, context.newRecord);
});
return true;
}
function getChildCustomers(parentId) {
const childCustomers = [];
search
.create({
type: search.Type.CUSTOMER,
filters: [
['parentcustomer.internalid', search.Operator.ANYOF, parentId],
'AND',
['custentity_mos_inherit_custom_pricing', <http://search.Operator.IS|search.Operator.IS>, 'T'],
],
})
.run()
.each(result => {
childCustomers.push(result.id);
return true;
});
return childCustomers;
}
function updateChildCustomer(childRecordId, parentRecord: record.Record) {
const childRecord = record.load({ type: record.Type.CUSTOMER, id: childRecordId, isDynamic: true });
const sublistId = 'itempricing';
let lineCount = childRecord.getLineCount({ sublistId });
for (let line = 0; line < lineCount; line++) {
childRecord.removeLine({sublistId, line: 0});
}
lineCount = parentRecord.getLineCount({ sublistId });
for (let line = 0; line < lineCount; line++) {
const item = parentRecord.getSublistValue({ sublistId, fieldId: 'item', line });
const level = parentRecord.getSublistValue({ sublistId, fieldId: 'level', line });
const currency = parentRecord.getSublistValue({ sublistId, fieldId: 'currency', line });
const price = parentRecord.getSublistValue({ sublistId, fieldId: 'price', line });
childRecord.selectNewLine({ sublistId });
childRecord.setCurrentSublistValue({ sublistId, fieldId: 'item', value: item });
childRecord.setCurrentSublistValue({ sublistId, fieldId: 'level', value: level });
childRecord.setCurrentSublistValue({ sublistId, fieldId: 'currency', value: currency });
childRecord.setCurrentSublistValue({ sublistId, fieldId: 'price', value: price });
childRecord.commitLine({ sublistId });
}
childRecord.save();
}
michoel
05/30/2019, 8:41 PM