Mark Project as Completely Billed
The Mark Project as Completely Billed record action type changes the state of Project record to marked as completely billed and it triggers adjusting of recognized revenue to be reconciled with actual charges. This action is available on the record only when the record meets the following 4 conditions:
-
Project status must be Closed (or other status, which sets the field bAllowCompletelyBilledOnPrjct ="T")
-
The project uses Billing Type =Charge Based Project
-
The project uses a Project Revenue Rule
-
The project is not marked as completely billed yet
For help working with this record in the UI, see Marking a Project as Completely Billed.
For information about SuiteScript 2.0 record actions, see the following help topics:
Input Parameters
RecordId is a default input parameter for this action. No additional input parameters are necessary.
Return Object
When the action is successful, only the default response object is returned.
{
"response": {},
"notifications": []
}
API Usage Charts
The Mark Project as Completely Billed record action provides two SQL updates of one column. The governance is 5 units. For usage in the bulk governance, it is 50 units.
Code Samples
The following sample show how to use this API:
require(['N/action'], function(actionMod) {
// Action list and action loading
const actionList = actionMod.find({recordType: 'job'});
const actionObj = actionMod.get({recordType: 'job', id: 'markprojectascompletelybilled'});
// Action execution sync using object
const result = actionObj.execute({recordId: 1});
console.log(result);
// Action execution sync using object, another version
const result = actionObj({recordId: 1});
console.log(result);
// Action execution sync without object
const result = actionMod.execute({recordType: 'job', id: 'markprojectascompletelybilled', params: {recordId: 1}});
console.log(result);
// Client side example async
const recId = 1;
actionMod.find.promise({recordType: 'job', recordId: recId}).then(function(actions) {
actions.markprojectascompletelybilled.promise().then(function(result) {
console.log("Project id:" + recId + " has been marked as completely billed.");
}).catch(function (error) {
console.log(error);
});
});
// Server side example
var result = actionMod.execute({recordType: 'job', id: 'markprojectascompletelybilled', params: {recordId: 1}});
// Usage in bulk
var projectsToBeMarked = [{recordId: 1}, {recordId: 2}];
var taskId = actionMod.executeBulk({recordType: 'job', id: 'markprojectascompletelybilled', params: projectsToBeMarked});
var taskStatus = actionMod.getBulkStatus(taskId);
console.log(taskStatus);
});