Retrieve the count of Quantity Pricings from an item record for use in scripting

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 }

    });

Leave a comment

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