Description: Remove the items from the Return Authorization to check whether when it is marked as ‘cannot be returned'(custom Field) in the Item record.
Client Script
/**
* @NApiVersion 2.x
* @NScriptType ClientScript
* @NModuleScope SameAccount
*/
//--------------------------------------------------------
// Validate item Field Entries in Return Autherisation
//--------------------------------------------------------
define(['N/currentRecord','N/search'],function(currentRecord,search){
var CAN_BE_RETURNED = "custitem_canbereturned";
/****************************************************************
*
*
*
*
*****************************************************************/
function validateItemField(c)
{
try{
var isItemEdited = (c.fieldId=="item"&&c.sublistId =="item");
if(isItemEdited)
{
var itemId = c.currentRecord.getCurrentSublistValue({fieldId:"item",sublistId:"item"})
if(itemId)
{
var isReturn=search.lookupFields({
type:"inventoryitem",
id:itemId,
columns:[CAN_BE_RETURNED]
})[CAN_BE_RETURNED];
if(!isReturn)
{
alert("This Item cannot be returned");
return false;
}
}
}
}
catch(err)
{
console.log(err)
}
return true;
}
function validatePageInit(c)
{
try {
var isTransaform = (getParameter("transform"))?true:false;
var isCreate = c.currentRecord.id?false:true;
if(isTransaform&&isCreate)
{
var l = c.currentRecord.getLineCount({sublistId:'item'});
var items = [];
for(var i=0;i<l;i++)
items.push(c.currentRecord.getSublistValue({sublistId:"item",fieldId:"item",line:i}));
console.log("items",items);
if(items.length>0)
{
itemCannotBeReturned = [];
search.create({type:"inventoryitem",
filters : [
["internalid","anyof",items],
"AND",[CAN_BE_RETURNED,"is","F"]
],
columns: ["internalid"]}).run().each(function(r){
itemCannotBeReturned.push(r.getValue("internalid"));
return true;
});
for(var i=0;i<itemCannotBeReturned.length;i++)
{
var line = c.currentRecord.findSublistLineWithValue({sublistId:"item",fieldId:'item',value:itemCannotBeReturned[i]});
while(line>-1)
{
c.currentRecord.removeLine({sublistId:'item',line:line});
var line = c.currentRecord.findSublistLineWithValue({sublistId:"item",fieldId: 'item',value:itemCannotBeReturned[i]});
}
}
}
}
}catch(err)
{
log.debug(err);
}
}
return{
pageInit:validatePageInit,
validateField:validateItemField
}
})