If client has old invoices or sales orders that need to be closed after a specific time, we can use a Scheduled Script.
Example: Auto-close Sales Orders older than 90 days
define(['N/record', 'N/search', 'N/task'], function(record, search, task) {
function execute(scriptContext) {
let salesOrderSearch = search.create({
type: search.Type.SALES_ORDER,
filters: [['datecreated', 'before', 'daysago90'], 'AND', ['status', 'noneof', 'Closed']],
columns: ['internalid']
});
salesOrderSearch.run().each(function(result) {
record.submitFields({
type: record.Type.SALES_ORDER,
id: result.getValue('internalid'),
values: { orderstatus: 'C' } // C = Closed
});
return true;
});
}
return { execute: execute };
});