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);
}
}