The field “price1headercount” can be used to retrieve the count of quantity pricing permitted for an item, and a loop can be implemented to customize them based on this count.
Example script:
define(['N/record'],
/**
* @param{email} email
* @param{record} record
* @param{runtime} runtime
* @param{search} search
*/
(record) => {
/**
* Defines the function definition that is executed after record is submitted.
* @param {Object} scriptContext
* @param {Record} scriptContext.newRecord - New record
* @param {Record} scriptContext.oldRecord - Old record
* @param {string} scriptContext.type - Trigger type; use values from the context.UserEventType enum
* @since 2015.2
*/
const afterSubmit = (scriptContext) => {
try {
if (scriptContext.type !== scriptContext.UserEventType.CREATE && scriptContext.type !== scriptContext.UserEventType.XEDIT && scriptContext.type !== scriptContext.UserEventType.EDIT) {
log.debug("inside if");
return;
}
let recordId = scriptContext.newRecord.id;
// log.debug("recordId", recordId);
let newItemRecord = record.load({
type: record.Type.INVENTORY_ITEM,
id: recordId,
isDynamic: true,
});
const lineCount = newItemRecord.getLineCount({ sublistId: 'price1' });
// log.debug("lineCount", lineCount);
for (let m = 0; m < lineCount; m++) {
newItemRecord.selectLine({
sublistId: 'price1',
line: m
});
let priceLevel = newItemRecord.getCurrentSublistValue({
sublistId: 'price1',
fieldId: 'pricelevel',
});
if (priceLevel != 1) {
log.debug("pricelevel not 1")
let pricelevel_11 = newItemRecord.getCurrentSublistValue({
sublistId: 'price1',
fieldId: 'price_1_',
});
let quantityCount = newItemRecord.getValue({ fieldId: 'price1headercount' });
// log.debug("quantityCount", quantityCount);
for(i = 2; i <= quantityCount; i++){
// log.debug("setting quantiti pricing", i);
newItemRecord.setCurrentSublistValue({
sublistId: 'price1',
fieldId: `price_${i}_`,
value: pricelevel_11
});
}
newItemRecord.commitLine({ sublistId: 'price1' });
}
}
newItemRecord.save();
} catch (error) {
log.error({
title: 'Error in User Event Script',
details: error
});
}
}
return { afterSubmit }
});