Change display type of fields for particular roles.

define(['N/record', 'N/ui/serverWidget', 'N/runtime', 'N/search'],
    /**
 * @param{record} record
 */
    (record, serverWidget, runtime, search) => {
        "use strict"
        let fieldIdsToMonitor = ['unitcost', 'cost', 'price', 'unitprice']
        /**
         * Defines the function definition that is executed before record is loaded.   
         * @param {Object} scriptContext
         * @param {Record} scriptContext.newRecord - New record
         * @param {string} scriptContext.type - Trigger type; use values from the context.UserEventType enum
         * @param {Form} scriptContext.form - Current form
         * @param {ServletRequest} scriptContext.request - HTTP request information sent from the browser for a client action only.
         * @since 2015.2
         */
        const Roles = [1129, 1127]
        const beforeLoad = (scriptContext) => {
   
            try {
                let fieldObj = scriptContext.form.getSublist({ id: 'assignee' });
                let columnObj = fieldObj.getField({ id: 'unitprice' });
                columnObj.label = "Customer Rate";
              let project= scriptContext.newRecord.getValue({fieldId: 'company'});
                log.debug("project",project);
              let fieldLookUp = search.lookupFields({
                    type: 'job',
                    id: project,
                    columns: ['jobbillingtype']
                });
              log.debug("fieldlookup", fieldLookUp);
              
                if (Roles.includes(runtime.getCurrentUser().role))
                    return false;
                for (let field of fieldIdsToMonitor) {
                    let columnObj = fieldObj.getField({ id: field });
                    if (columnObj) {
                        columnObj.updateDisplayType({
                            displayType: serverWidget.FieldDisplayType.HIDDEN
                        });
                    }
                }
              let itemObj = fieldObj.getField({ id: 'serviceitem' });
              if(fieldLookUp.jobbillingtype[0].value === 'TM')
              {
                itemObj.updateDisplayType({
                            displayType: serverWidget.FieldDisplayType.DISABLED
                        });
                
              }
            }
            catch (e) {
                log.error("error", e.message);
            }
        }

Leave a comment

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