Name

global.PlannedTaskSkippedStates

Description

No description available

Script

var PlannedTaskSkippedStates = Class.create();
PlannedTaskSkippedStates.prototype = {
  CLOSED_SKIPPED_STATE : 7,
  CLOSED_INCOMPLETE_STATE : 4,
  
  
  initialize: function(plannedTask) {
  	this.plannedTask = plannedTask;
  	this.skippedStates = this._getSkippedStatesFromExtentionPoints();
  },
  
  shouldUpdatePercentComplete: function(/*String*/ state){
  	if(JSUtil.nil(state))
  		  return true;
  	
  	var isSkipped = this._isSkippedState(state);	
  	if(isSkipped)
  		return false;
  	return true;
  },
  
  _getSkippedStatesFromExtentionPoints: function(){
  	var plannedTask = this.plannedTask;
  	var skippedStates = [];	
  	var eps = new GlideScriptedExtensionPoint().getExtensions("ClosedStatesToSkipPercentCompleteRollUp");
  	for(var i=0; i< eps.length; i++){
  		var statesFromExtnPoints = [];
  		var ep = eps[i];
  		ep.initialize(plannedTask);
  		statesFromExtnPoints = ep.getStates();
  		skippedStates = skippedStates.concat(statesFromExtnPoints);
  	}
  	return skippedStates;
  },
  	
  _isSkippedState: function(/*string*/ state){
  	state = state + '';
  	var isSkipped = false; 
  	var currentStateIsInSkippedStates = this.skippedStates.indexOf(state) >= 0;
  	var skippedStates = this.skippedStates;

  	PPMDebug.log("PlannedTaskSkippedStates: isInSkippedState  "+ currentStateIsInSkippedStates);
  	if(currentStateIsInSkippedStates)
  		isSkipped = true;
  	
  	return isSkipped;
  },

  type: 'PlannedTaskSkippedStates'
};

Sys ID

db6fe07173432300055e09496bf6a7a5

Offical Documentation

Official Docs: