Name

global.SLABreakdownUtilsSNC

Description

No description available

Script

var SLABreakdownUtilsSNC = Class.create();

SLABreakdownUtilsSNC.prototype = {
  initialize: function() {
  },

  getAuditedTaskTables: function() {
  	var taskTables = j2js(new TableUtils("task").getTableExtensions()).sort();

  	return taskTables.filter(function(tableName) {
  			return GlideTableDescriptor(tableName).auditWanted();
  		}
  	);
  },

  getDurationCalculatorForSLA: function(taskSLAGr) {
  	var durationCalculator = new DurationCalculator();
  	if (!taskSLAGr || !(taskSLAGr instanceof GlideRecord))
  		return durationCalculator;

  	if (!taskSLAGr.schedule.nil()) {
  		durationCalculator.setSchedule(taskSLAGr.getValue("schedule"));
  		durationCalculator.setTimeZone(new SLAUtil().getTimezone(taskSLAGr));
  	}

  	return durationCalculator;
  },

  getSLADefinitionFromTaskSLA: function(taskSLAGr) {
  	if (!taskSLAGr || !(taskSLAGr instanceof GlideRecord))
  		return null;

  	var slaDefinitionGr = new GlideRecord("contract_sla");
  	slaDefinitionGr.addQuery("sys_id", taskSLAGr.getValue("sla"));
  	slaDefinitionGr.queryNoDomain();

  	if (!slaDefinitionGr.next())
  		return null;

  	return slaDefinitionGr;
  },

  getTaskFromTaskSLA: function(taskSLAGr, taskType) {
  	if (!taskSLAGr || !taskSLAGr.isValidRecord())
  		return null;

  	if (!taskType || !GlideTableDescriptor.get(taskType).isValid())
  		return null;

  	var taskGr = new GlideRecord(taskType);
  	taskGr.addQuery("sys_id", taskSLAGr.getValue("task"));
  	taskGr.queryNoDomain();

  	if (!taskGr.next())
  		return null;

  	return taskGr;
  },

  setBreakdownModulesVisible: function(trueOrFalse) {
  	var showModules = trueOrFalse && trueOrFalse === true;

  	var moduleGr = new GlideRecord("sys_app_module");
  	moduleGr.addQuery("sys_id", SLABreakdownUtils.MODULE_IDS);
  	moduleGr.query();

  	while (moduleGr.next()) {
  		moduleGr.active = showModules;
  		moduleGr.update();
  	}
  },

  getBreakdownDefIdsForSLA: function(slaId) {
  	var slaBreakdownIds = [];

  	if (!slaId)
  		return slaBreakdownIds;

  	var slaDefinitionSlaBreakdownGr = new GlideAggregate(sn_sla_brkdwn.SLABreakdown.SLA_DEFINITION_SLA_BREAKDOWN);
  	slaDefinitionSlaBreakdownGr.addQuery("contract_sla", slaId);
  	slaDefinitionSlaBreakdownGr.groupBy("sla_breakdown_definition");
  	slaDefinitionSlaBreakdownGr.queryNoDomain();

  	while (slaDefinitionSlaBreakdownGr.next())
  		slaBreakdownIds.push(slaDefinitionSlaBreakdownGr.getValue("sla_breakdown_definition"));

  	return slaBreakdownIds;
  },

  breakdownDataExists: function(breakdownTableName, encodedQuery) {
  	if (!breakdownTableName || !GlideTableDescriptor.get(breakdownTableName).isValid())
  		return false;
  	
  	var breakdownGr = new GlideRecord(breakdownTableName);
  	if (encodedQuery)
  		breakdownGr.addEncodedQuery(encodedQuery);
  	breakdownGr.setLimit(1);
  	breakdownGr.queryNoDomain();
  	
  	return breakdownGr.hasNext();
  },

  deleteBreakdownData: function(breakdownTableName, encodedQuery) {
  	if (!breakdownTableName || !GlideTableDescriptor.get(breakdownTableName).isValid())
  		return;
  	
  	var breakdownGr = new GlideRecord(breakdownTableName);
  	if (encodedQuery)
  		breakdownGr.addEncodedQuery(encodedQuery);
  	breakdownGr.queryNoDomain();

  	while (breakdownGr.next())
  		breakdownGr.deleteRecord();
  },

  type: 'SLABreakdownUtilsSNC'
};

Sys ID

af2a59bb57201300ff01ac11ac94f92f

Offical Documentation

Official Docs: