Fulfill and bill sales orders each day

This sample is a scheduled script that fulfills and bills sales orders created each day.

The conversion of this script from SuiteScript 1.0 to SuiteScript 2.0 includes the following:

SuiteScript 1.0 Script

SuiteScript 2.0 Script

                    function processOrdersCreatedToday( type )
{
 //only execute when run from the scheduler 
  if ( type != 'scheduled' && type != 'skipped' ) return; 
 
   var filters = new Array();
   filters[0] = new nlobjSearchFilter( 'mainline', null, 'is', 'T' );
   filters[1] = new nlobjSearchFilter( 'trandate', null, 'equalTo', 'today' );
 
   var searchresults = nlapiSearchRecord( 'salesorder', null, filters, null, new nlobjSearchColumn('terms') );
   for ( var i = 0; searchresults != null && i < searchresults.length; i++ )
   {
      var id = searchresults[i].getId();
      var fulfillRecord = nlapiTransformRecord('salesorder', id, 'itemfulfillment');
      nlapiSubmitRecord( fulfillRecord );
 
      var billType = searchresults[i].getValue('paymentmethod') == null ? 'invoice' : 'cashsale';
      var billRecord = nlapiTransformRecord('salesorder', id, billType);
      nlapiSubmitRecord( billRecord );
   }
} 

                  
                    /**
* @NApiVersion 2.0
* @NScriptType ScheduledScript
*/

// This script creates multiple sales records and logs the record creation progress.
define(['N/search', 'N/record'], function(search, record) {
    function processOrdersCreatedToday(){
        if ((context.type !== context.InvocationType.SCHEDULED) || (context.type !== context.InvocationType.SKIPPED)) {
            var filters = new Array();

            filters[0] = search.createFilter({
                name: 'mainline',
                operator: 'is' ,
                values: 'T'
            });
            filters[1] = search.createFilter({
                name: 'trandate',
                operator: 'equalTo',
                values: 'today'
            });

            var searchcolumn = search.createColumn({
                name: 'terms'
            })
            
            var search = search.create({
                type: search.type.SALESORDER,
                filters: filters,
                columns: searchcolumn
            });
            
            search.run().each(function(result) {
                
                var id = result.getValue({
                    name: 'id'
                });
                
                var fulfillRecord = record.transform({
                    fromType: 'salesorder',
                    fromId: id,
                    toType: 'itemfulfillment'
                });
                
                fulfillRecord.save();
                
                var paymentmethod = result.getValue({
                    name: 'paymentmethod'
                });
                
                var billType = paymentmethod ? 'invoice' : 'cashsale';
                
                var billRecord = record.transform({
                    fromType: 'salesorder',
                    fromId: id,
                    toType: billType
                });
                
                billRecord.save();
            });
        }

        return {
            execute: processOrdersCreatedToday
        }
    }
}); 

                  

General Notices