Name

sn_sow_on_call.OCEscalationPathUtilSOWSNC

Description

No description available

Script

var OCEscalationPathUtilSOWSNC = Class.create();

OCEscalationPathUtilSOWSNC.LOG_PROPERTY = 'com.snc.on_call_rotation.log.level';

OCEscalationPathUtilSOWSNC.prototype = {
  initialize: function () {		
  	this._log = new global.GSLog(OCEscalationPathUtilSOWSNC.LOG_PROPERTY, this.type);
  	global.OCEscalationPathUtil.prototype._getOnCallShiftDetails = OCEscalationPathUtilSOWSNC.methods._getOnCallShiftDetails.bind(this);
  	global.OCEscalationPathUtil.prototype._getGroupDetails = OCEscalationPathUtilSOWSNC.methods._getGroupDetails.bind(this);
  	this._escalationPathUtil = new global.OCEscalationPathUtil();
  },
  
  getOnCallEscalationShift: function(groupId, rotaId, gdt, escalationSetSysId, taskTable, taskSysId) {
  	var response = this._escalationPathUtil.getOnCallEscalationShift(groupId, rotaId, gdt, escalationSetSysId, taskTable, taskSysId);
  	var onCallRotation = new OnCallRotationSow();
  	var currentRota = response.curRotaDetails;
  	var request = {
  		'start': currentRota.startDisplayValue,
  		'end': currentRota.endDisplayValue
  	};
  	currentRota.formattedDateTime = {
  		"default": onCallRotation._getRotaDetailsMsg(request),
  		"humanized": onCallRotation._getRotaHumanizedDetailsMsg(request)
  	};
  	return response;
  },
  
  _buildDataModel: function(result, filter, groupId, rotaId) {
  	return this._escalationPathUtil._buildDataModel(result, filter, groupId, rotaId);
  },
  
  _toJS: function(gr, requiredFields, skipACL) {
  	return this._escalationPathUtil._toJS(gr, requiredFields, skipACL);
  },

  type: 'OCEscalationPathUtilSOWSNC'
};

OCEscalationPathUtilSOWSNC.methods = {
  
  _getGroupDetails: function (groupId) {
  	if(global.JSUtil.nil(groupId))
  		return;
  	var gr = new GlideRecord('sys_user_group');
  	var groupDetails;
  	if(gr.get(groupId)); {
  		groupDetails = this._toJS(gr, ["name", "manager"], false);
  		
  		var onCallRotation = new OnCallRotationSow();
  		var managerDetails = onCallRotation._getUsers([groupDetails.manager.value]);
  		groupDetails.manager.managerDetails = managerDetails[groupDetails.manager.value];
  		return groupDetails;
  	}
  },
  
  _getOnCallShiftDetails: function (groupId, rotaId, gdt, overlappingRotas) {
  	var ocRotation = new global.OCRotationV2();
  	var groupsData = ocRotation.getIndividualGroupData(groupId);
  	var onCallRotation = new OnCallRotationSow();
  	if (overlappingRotas)
  		onCallRotation.simulateEscalationToAllRotas(true);
  	var onCallMembersData = onCallRotation.processIndividualOCData(groupsData, gdt);
  	if (!onCallMembersData || (onCallMembersData.onCallData && onCallMembersData.onCallData.length == 0))
  		return [];
  	return this._buildDataModel(onCallMembersData, "all", groupId, rotaId);
  }
  
};

Sys ID

7a39d97a007bb410f877f4fb60521b2d

Offical Documentation

Official Docs: