Name
global.CostRollupHandler
Description
No description available
Script
var CostRollupHandler = Class.create();
CostRollupHandler.prototype = {
initialize: function() {
},
handle: function(childRecord, parentTable, parentNavigator, rollupColumn, isAverage) {
var rollupStructureLoader = new RollupStructureLoader();
var parentSysId = childRecord.getValue(parentNavigator);
var rollupStructure = rollupStructureLoader.loadStructure(childRecord,
rollupColumn, parentNavigator, parentSysId);
this.updateParent(parentTable, parentSysId,
rollupStructure, childRecord.getTableName(), rollupColumn, isAverage);
},
updateParent: function(parentTable, parentSysId,
rollupStructure, childTable, rollupColumn, isAverage) {
var value = this.aggregateCost(rollupStructure, rollupColumn, isAverage);
// TODO: Check if the Table <fm_expense_line> Exists! And Fallback Scenarios
if(value) {
var parentTaskRecord = new GlideRecord(parentTable);
if( parentTable.get(parentSysId) ) {
parentTaskRecord.setValue(rollupColumn, value);
parentTaskRecord.update();
}
}
},
aggregateCost: function(rollupStructure, rollupColumn, isAverage) {
var aggregationHelper = new AggregationHelper();
return aggregationHelper.aggregateFloat(rollupStructure, rollupColumn, isAverage);
},
type: 'CostRollupHandler'
};
Sys ID
887a65619f230200598a5bb0657fcfee