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.1
* @NScriptType ScheduledScript
*/
// Creates fulfillments and billing transactions for sales orders created today.
define(['N/search', 'N/record', 'N/log'], (search, record, log) => {
const execute = () => {
const salesOrderSearch = search.create({
type: search.Type.SALES_ORDER,
filters: [
search.createFilter({
name: 'mainline',
operator: search.Operator.IS,
values: 'T'
}),
search.createFilter({
name: 'trandate',
operator: search.Operator.ON,
values: 'today'
})
],
columns: [
search.createColumn({
name: 'internalid'
}),
search.createColumn({
name: 'paymentmethod'
})
]
});
salesOrderSearch.run().each((result) => {
const salesOrderId = result.getValue({
name: 'internalid'
});
const fulfillmentRecord = record.transform({
fromType: record.Type.SALES_ORDER,
fromId: salesOrderId,
toType: record.Type.ITEM_FULFILLMENT
});
const fulfillmentId = fulfillmentRecord.save();
const paymentMethod = result.getValue({
name: 'paymentmethod'
});
const billingRecord = record.transform({
fromType: record.Type.SALES_ORDER,
fromId: salesOrderId,
toType: paymentMethod
? record.Type.INVOICE
: record.Type.CASH_SALE
});
const billingId = billingRecord.save();
log.audit({
title: 'Sales Order Processed',
details: `Sales Order ${salesOrderId}: Item Fulfillment ${fulfillmentId}, Billing Record ${billingId}`
});
return true;
});
};
return {
execute
};
});
|