Name

global.ChangeSuccessScoreGlobalUtilsSNC

Description

Provides functions for the Change success score feature that interact with global objects or functions. To modify behavior, use the provided ChangeSuccessScoreGlobalUtils extension to override functions defined within this script include.

Script

var ChangeSuccessScoreGlobalUtilsSNC = Class.create();
ChangeSuccessScoreGlobalUtilsSNC.prototype = {
  initialize: function() {
  	
  },

  executePAChangeSuccessScoreJobs: function() {
  	var paChangeSuccessScoresJobGr = new sn_chg_score.ChangeSuccessScoreUtils().getPAChangeSuccessScoresJobs();
  	while (paChangeSuccessScoresJobGr.next())
  		SncTriggerSynchronizer.executeNow(paChangeSuccessScoresJobGr);
  },

  executePAChangeSuccessScoreHistoricalJobs: function() {
  	var paChangeSuccessScoresHistoricalJobGr = new sn_chg_score.ChangeSuccessScoreUtils().getPAChangeSuccessScoresHistoricalJobs();
  	while (paChangeSuccessScoresHistoricalJobGr.next())
  		SncTriggerSynchronizer.executeNow(paChangeSuccessScoresHistoricalJobGr);
  },

  getIndicatorScoresDomain: function() {
  	if (!SNC.PADomainUtils.isPADomainSupportEnabled())
  		return null;
  	
  	var domainId = SNC.PADomainUtils.getCurrentUserDomain();
  	if (!domainId || domainId === "global")
  		return null;
  	
  	return new sn_chg_score.ChangeSuccessScoreUtils().getAggregateDomain();
  },

  getUsersTimezone: function(userId) {
  	var sysTimeZone = gs.getSysTimeZone();
  	if (!userId)
  		return sysTimeZone;
  	var user = GlideUser.getUserByID(userId);
  	if (!user)
  		return sysTimeZone;
  	return user.getTZ();
  },

  isValidTimeZone: function(tzId) {
  	if (!tzId)
  		return false;

  	var gdt = new GlideDateTime();

  	return gdt.setTimeZone(tzId + "");
  },

  convertDateToTz: function(gdt, tzId) {
  	if (!gdt)
  		return new GlideDateTime();
  
  	var gdtInTz = new GlideDateTime(gdt);
  	if (tzId)
  		gdtInTz.setTimeZone(tzId + "");

  	return gdtInTz;
  },

  getStartOfDayInTz: function(gdt, tzId) {
  	var gdtInTz = this.convertDateToTz(gdt, tzId);
  	gdtInTz.setDisplayValueInternal(gdtInTz.getLocalDate().getValue() + " 00:00:00");
  
  	return gdtInTz;
  },

  getEndOfDayInTz: function(gdt, tzId) {
  	var gdtInTz = this.convertDateToTz(gdt, tzId);
  	gdtInTz.setDisplayValueInternal(gdtInTz.getLocalDate().getValue() + " 23:59:59");
  
  	return gdtInTz;
  },
  
  getDateStrInTz: function(gdt, tzId) {
  	var gdtInTz = this.convertDateToTz(gdt, tzId);

  	return gdtInTz.getLocalDate().getValue();
  },

  generateDateTimeInTz: function(aDate, aTime, tzId) {
  	var timeOfDayInTz;

  	if (!aDate)
  		aDate = new GlideDateTime().getDate().getValue();

  	if (!aTime)
  		aTime = new GlideDateTime().getTime().getByFormat("");

  	timeOfDayInTz = new GlideDateTime(aDate + " " + aTime);
  	if (!timeOfDayInTz.isValid())
  		timeOfDayInTz = new GlideDateTime();
  	
  	timeOfDayInTz = this.convertDateToTz(timeOfDayInTz, tzId);
  	
  	timeOfDayInTz.setDisplayValueInternal(aDate + " " + aTime);
  	
  	return timeOfDayInTz;
  },

  type: 'ChangeSuccessScoreGlobalUtilsSNC'
};

Sys ID

245873d173181010491d235f04f6a755

Offical Documentation

Official Docs: