Validate item field entries in the return authorization.

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

Leave a comment

Your email address will not be published. Required fields are marked *