function (currentRecord, search) {
function searchSalesOrder(rmaId) {
try {
let returnauthorizationSearchObj = search.create({
type: "returnauthorization",
filters:
[
["type", "anyof", "RtnAuth"],
"AND",
["internalid", "anyof", rmaId],
"AND",
["mainline", "is", "T"]
],
columns:
[
search.createColumn({ name: "internalid", label: "Internal ID" }),
search.createColumn({name:"custbody_jj_exchg_sales_order_ahap1625", label: "Exchange Sales Order" })
]
});
let searchResultCount = returnauthorizationSearchObj.runPaged().count;
if (searchResultCount > 0) {
let salesOrderId
returnauthorizationSearchObj.run().each(function (result) {
salesOrderId = result.getValue({
name: "custbody_jj_exchg_sales_order_ahap1625", label: "Exchange Sales Order"
})
return true;
});
return salesOrderId
}
else {
return false
}
}
catch (err) {
console.log("error@searchSalesOrder", err)
return false
}
}
function searchStatus(salesOrderId) {
try {
let salesorderSearchObj = search.create({
type: "salesorder",
filters:
[
["type", "anyof", "SalesOrd"],
"AND",
["internalid", "anyof", salesOrderId],
"AND",
["mainline", "is", "T"]
],
columns:
[
search.createColumn({ name: "internalid", label: "Internal ID" }),
search.createColumn({ name: "statusref", label: "Status" }),
search.createColumn({ name: "tranid", label: "Document Number" })
]
});
let searchResultCount = salesorderSearchObj.runPaged().count;
if (searchResultCount > 0) {
let dataObj = {}
salesorderSearchObj.run().each(function (result) {
dataObj.status = result.getValue({
name: "statusref", label: "Status"
})
dataObj.docNumber = result.getValue({
name: "tranid", label: "Document Number"
})
return true;
});
return dataObj
}
else {
return {}
}
}
catch (err) {
console.log("error@searchStatus", err)
return {}
}
}
function fieldChanged(scriptContext) {
try {
let currentRec = scriptContext.currentRecord;
if (scriptContext.fieldId == 'custbody29') {
let rmaId = currentRec.getValue({
fieldId: 'custbody29'
});
if (rmaId) {
let salesOrderId = searchSalesOrder(rmaId)
if (salesOrderId) {
let dataObj = searchStatus(salesOrderId)
if (dataObj.status != 'closed') {
alert(`The selected RMA record is associated with the sales order ${dataObj.docNumber}`)
currentRec.setValue({
fieldId: 'custbody29',
value: '',
ignoreFieldChange: true
});
return false;
}
}
return false;
}
}
}
catch (err) {
log.debug("error@fieldChange", err)
}
}