Restricting The SKU “Restocking Fee” in Sales Order

Restrict the Non-inventory SKU “Restocking Fee” to charge customers extra on the Sales order. 
We want to restrict that when the item “Restocking Fee” is added to the sales order the sales associate can enter only a positive amount for the item.

/**
 * @NApiVersion 2.x
 * @NScriptType ClientScript
 * @NModuleScope SameAccount
 */
define(['N/currentRecord'],
/**
 * @param{currentRecord} currentRecord
 */
function(currentRecord) {

   
    /**
     * Function to be executed when field is changed.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @param {string} scriptContext.sublistId - Sublist name
     * @param {string} scriptContext.fieldId - Field name
     * @param {number} scriptContext.lineNum - Line number. Will be undefined if not a sublist or matrix field
     * @param {number} scriptContext.columnNum - Line number. Will be undefined if not a matrix field
     *
     * @since 2015.2
     */
    function fieldChanged(scriptContext) {

        try
        {
            var currentRec=scriptContext.currentRecord;
            var sublistName = scriptContext.sublistId;
            var sublistFieldName = scriptContext.fieldId;
            if (sublistName === 'item' && sublistFieldName === 'amount') {

                var lineItem = currentRec.getCurrentSublistValue({
                    sublistId:'item',
                    fieldId:'item'
                });
                console.log("lineItem",lineItem)
                var amount = currentRec.getCurrentSublistValue({
                    sublistId:'item',
                    fieldId:'amount'
                });
                console.log("amount",amount)
                console.log("Math..",Math.sign(amount))
                if(lineItem && lineItem =='671')
                {
                    if((Math.sign(amount) == '-1'))
                    {
                        alert("Please enter a positive value for the amount.")
                        return false;
                    }
                    else
                    {
                        return true
                    }
                }
            else
                {
                   return true
                }

            }


        }
        catch(err)
        {
            console.log("error@fieldChanged",err)
        }


    }
    /**
     * Validation function to be executed when sublist line is committed.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @param {string} scriptContext.sublistId - Sublist name
     *
     * @returns {boolean} Return true if sublist line is valid
     *
     * @since 2015.2
     */
    function validateLine(scriptContext) {

        try
        {
            var currentRec=scriptContext.currentRecord;
            var sublistName = scriptContext.sublistId;
            var sublistFieldName = scriptContext.fieldId;
            console.log("...validate line..*****")
            if (sublistName === 'item') {

                var lineItem = currentRec.getCurrentSublistValue({
                    sublistId:'item',
                    fieldId:'item'
                });
                console.log("lineItem",lineItem)
                var amount = currentRec.getCurrentSublistValue({
                    sublistId:'item',
                    fieldId:'amount'
                });
                console.log("amount",amount)
                console.log("Math..",Math.sign(amount))
                if(lineItem && lineItem =='671')
                {
                    if((Math.sign(amount) == '-1'))
                    {
                        console.log("...validate line..")
                        alert("Please enter a positive value for the amount.")
                        return false;
                    }
                    else
                    {
                        return true
                    }
                }
                else
                {
                    return true
                }

            }

        return true
        }
        catch(err)
        {
            console.log("error@validateLine",err)
        }


    }
    return {
        
        fieldChanged:fieldChanged,
        validateLine:validateLine,
        
    };
    
});

Leave a comment

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