Add Address Limit Checkbox to Restrict Adding/Editing/Deleting of any Address to the Address book of Customer Record in Netsuite.

Create an entity field(checkbox) and add the condition if the checkbox enabled the customer not allowed to add or delete the address.

For achieving the solution we can use the Client script 2.0 :

first, need to create a custom entity field in NetSuite with type as a checkbox.

Add the enity field to customer and website options while creating, then we write script based on the value of checkbox.

Script:

/**
 *@NApiVersion 2.x
 *@NScriptType ClientScript
 * 13 Jan 2022     JJ          Sets address limit to 30 numbers in customer/lead record
 */
define(['N/error','N/record'],
    function(error, record) {
        function pageInit(scriptContext) {
            console.log("scriptContext", scriptContext)
            log.debug("scriptContext", scriptContext)
        }

        function fieldChanged(context) {
            var currentRecord = context.currentRecord;
            var sublistName = context.sublistId;
            var sublistFieldName = context.fieldId;
            console.log("sublistFieldName", sublistFieldName)
            log.debug("sublistName", sublistName)
        }

        function validateLine(scriptContext, sublist) {
            // console.log("context", context)
            console.log("sublist", sublist)
            try {
                var objRecord = scriptContext.currentRecord; //get customer record


                var address_Limit = objRecord.getValue({
                    fieldId: 'custentityaddress_lock'
                });

                console.log("address_Limit", address_Limit)


                if (address_Limit === true) {

                    console.log("if_true2");
                    alert('Address Limit exceeded and Address Locked.');
                } else {
                    return true;
                }

            } catch (e) {
                console.log("address limit error", e)

            }



        }
        function validateDelete(scriptContext,sublist) {
            console.log("context2", scriptContext)
            console.log("sublist2", sublist)
            try {
                var objRecord2 = scriptContext.currentRecord; //get customer record



                var address_Limit2 = objRecord2.getValue({
                    fieldId: 'custentityaddress_lock'
                });

                console.log("address_Limit2", address_Limit2)


                if (address_Limit2 === true) {

                    console.log("if_true2");

                    alert('Address Limit exceeded and Address Locked.');
                } else {
                    return true;
                }

            } catch (e) {
                console.log("address limit error", e)

            }

        }
        function validateInsert(scriptContext,sublist) {
            console.log("context3", scriptContext)
            console.log("sublist3", sublist)
            try {
                var objRecord3 = scriptContext.currentRecord; //get customer record


                var address_Limit3 = objRecord3.getValue({
                    fieldId: 'custentityaddress_lock'
                });


                console.log("address_Limit3", address_Limit3)


                if (address_Limit3 === true) {

                    console.log("if_true3");

                    alert('Address Limit exceeded and Address Locked.');
                } else {
                    return true;
                }

            } catch (e) {
                console.log("address limit error", e)

            }

        }

        return {
            pageInit: pageInit,
            validateLine: validateLine,
            validateDelete: validateDelete,
            validateInsert: validateInsert
        };
    });

Leave a comment

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