Jira code: SCL-295
When a user adds an item to SO/Quote, check whether the item has similar products. If a similar product exists for the item a dialogue box should be shown and a message should be displayed. Created a client script, the dialog alert shows on item add.
/**
* @NApiVersion 2.x
* @NScriptType ClientScript
* @NModuleScope SameAccount
*/
/****************************************************************************
* Seibert Consulting
* MS-82 Script on Sales order and quote
* **************************************************************************
* Date: 13/07/2020
*
* Script Description : Show alert while adding item lines in sales order and quote, when item contains similar products.
* Date created : 13 July 2020
*
* REVISION HISTORY
*
* Revision 1.0 13/07/2020 : Create
*
****************************************************************************/
define(['N/ui/dialog', 'N/search', 'N/runtime'],
function(dialog, search, runtime) {
function validateLine(scriptContext) {
try{
var similatProductMessage = null;
//Show alert only in UI context
if(runtime.executionContext == "USERINTERFACE" && scriptContext.sublistId == "item"){
//During item add
// if(scriptContext.sublistId == "item" && scriptContext.operation == "commit"){
var currentRec = scriptContext.currentRecord;
//Get itemType
var ItemType = currentRec.getCurrentSublistValue({
sublistId: 'item',
fieldId: 'itemtype'
});
//Checking similar product and similar product 2 in Inventory items
if(ItemType == "InvtPart"){
var ItemId = currentRec.getCurrentSublistValue({
sublistId: 'item',
fieldId: 'item'
});
//Get similar product and similar product 2 values
var ItemValues = search.lookupFields({
type: search.Type.INVENTORY_ITEM,
id: ItemId,
columns: ['custitem_similar_product', 'custitem_similar_product_2']
});
//Similar product and Similar product 2 field values
var similarProduct1 = ItemValues.custitem_similar_product;
var similarProduct2 = ItemValues.custitem_similar_product_2;
//Alert message
similatProductMessage = 'Linked item for item selected <br/>(';
//If not null, add in alert message
if(similarProduct1){
similatProductMessage = similatProductMessage + 'Similar Product - ' + similarProduct1 + '<br/>';
}
if(similarProduct2){
similatProductMessage = similatProductMessage + ' Similar Product 2 - ' + similarProduct2;
}
similatProductMessage = similatProductMessage + ')';
if(similarProduct1 || similarProduct2){
var options = {
title: "Similar Product Alert",
message: similatProductMessage
};
dialog.alert(options);
}
}
return true;
// }
}
}catch(e){
console.log("ERROR_ON_SUBLISTCHANGE", e);
}
}
return {
validateLine: validateLine
};
});