/**
- @NApiVersion 2.x
- @NScriptType ClientScript
- @NModuleScope SameAccount
/ define([‘N/record’, ‘N/runtime’, ‘N/search’], /* - @param{record} record
- @param{runtime} runtime
- @param{search} search
*/
function(record, runtime, search) {
function setDiv(sublist,recobj){
var div
var projectcode= recobj.getCurrentSublistValue({
sublistId:sublist,
fieldId:”custcol_cseg13″
})
console.log(“projectcode”,projectcode)
if(projectcode) {
var customrecord_cseg13SearchObj = search.create({
type: “customrecord_cseg13”,
filters:
[
[“internalid”, “anyof”, projectcode]
],
columns:
[
search.createColumn({name: “custrecord_ref_projectrecord”, label: “Project Record Ref”}),
search.createColumn({
name: “custentity8”,
join: “CUSTRECORD_REF_PROJECTRECORD”,
label: “Div/Unit”
})
]
});
var searchResultCount = customrecord_cseg13SearchObj.runPaged().count;
log.debug(“customrecord_cseg13SearchObj result count”, searchResultCount);
customrecord_cseg13SearchObj.run().each(function (result) {
// .run().each has a limit of 4,000 results
div = result.getValue(
{
name: “custentity8”,
join: “CUSTRECORD_REF_PROJECTRECORD”,
label: “Div/Unit”
}
)
// return true;
});
console.log(“div”, div)
if (div) {
recobj.setCurrentSublistValue({
sublistId: sublist,
fieldId: “class”,
value: div
})
var linesublist = recobj.getSublist({sublistId: sublist});
var div = linesublist.getColumn({fieldId: “class”});
div.isDisabled = true;
} else {
recobj.setCurrentSublistValue({
sublistId: sublist,
fieldId: “class”,
value: null
})
var linesublist = recobj.getSublist({sublistId: sublist});
var div = linesublist.getColumn({fieldId: “class”});
div.isDisabled = true;
alert(‘Please ensure that the project is associated to a Division/Unit.’);
}
}
} /**- Function to be executed after page is initialized.
* - @param {Object} scriptContext
- @param {Record} scriptContext.currentRecord – Current form record
- @param {string} scriptContext.mode – The mode in which the record is being accessed (create, copy, or edit)
* - @since 2015.2
*/
function pageInit(scriptContext) {
try {
var objRecord = scriptContext.currentRecord;
if (objRecord.type == ‘journalentry’) {
console.log(‘objRecord.type’,objRecord.type)
var linesublist = objRecord.getSublist({sublistId: “line”});
// console.log(‘linesublist’,linesublist)
var divline = linesublist.getColumn({fieldId: “class”});// console.log('divline',divline) divline.isDisabled = true; }}catch (e) {
console.log(‘error@pageInit’,e)
}
}
- 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 recobj = scriptContext.currentRecordif (scriptContext.sublistId == "line" && scriptContext.fieldId == "custcol_cseg13") setDiv(scriptContext.sublistId, recobj)}catch (e) {
console.log(‘error@fieldChanged’,e)
}
}
- Function to be executed when field is slaved.
* - @param {Object} scriptContext
- @param {Record} scriptContext.currentRecord – Current form record
- @param {string} scriptContext.sublistId – Sublist name
- @param {string} scriptContext.fieldId – Field name
* - @since 2015.2
*/
function postSourcing(scriptContext) {
try {
var recobj = scriptContext.currentRecord
if (scriptContext.sublistId == “line” && scriptContext.fieldId == “account”) {
setDiv(scriptContext.sublistId, recobj)
}
}catch (e) {
console.log(‘error@postSourcing’,e)
}
- Function to be executed after sublist is inserted, removed, or edited.
* - @param {Object} scriptContext
- @param {Record} scriptContext.currentRecord – Current form record
- @param {string} scriptContext.sublistId – Sublist name
* - @since 2015.2
*/
function sublistChanged(scriptContext) {
- Function to be executed after line is selected.
* - @param {Object} scriptContext
- @param {Record} scriptContext.currentRecord – Current form record
- @param {string} scriptContext.sublistId – Sublist name
* - @since 2015.2
*/
function lineInit(scriptContext) {
try {
var objRecord = scriptContext.currentRecord;
if (objRecord.type == ‘journalentry’) {
var linesublist = objRecord.getSublist({sublistId: scriptContext.sublistId});
// console.log(‘linesublist’,linesublist)
var div = linesublist.getColumn({fieldId: “class”});
// var expsublist = objRecord.getSublist({sublistId: “expense”});
// var divExp = expsublist.getColumn({fieldId: “class”});
// console.log(‘divItem’,divItem)
div.isDisabled = true;
// divExp.isDisabled = true;
}
}catch (e) {
console.log(“error@lineInit”,e)
}
- Validation 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
* - @returns {boolean} Return true if field is valid
* - @since 2015.2
*/
function validateField(scriptContext) {
- 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) {
- Validation function to be executed when sublist line is inserted.
* - @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 validateInsert(scriptContext) {
- Validation function to be executed when record is deleted.
* - @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 validateDelete(scriptContext) {
- Validation function to be executed when record is saved.
* - @param {Object} scriptContext
- @param {Record} scriptContext.currentRecord – Current form record
- @returns {boolean} Return true if record is valid
* - @since 2015.2
*/
function saveRecord(scriptContext) {
pageInit: pageInit,
fieldChanged: fieldChanged,
postSourcing: postSourcing,
// sublistChanged: sublistChanged,
lineInit: lineInit,
// validateField: validateField,
// validateLine: validateLine,
// validateInsert: validateInsert,
// validateDelete: validateDelete,
// saveRecord: saveRecord
}; - Function to be executed after page is initialized.
});