Name

sn_employee.EP_MyTeamsUtilsSNC

Description

No description available

Script


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

  /**
   * Returns manager of the given user
   * @param {GlideRecord} userGr - GlideRecord of a user
   * returns {GlideRecord}
   */
  getManager: function(userGr){
  	var gr = new GlideRecord('sys_user');
  	if(userGr.manager && gr.get(userGr.manager))
  		return gr;
  },
  	
  /**
   * Returns team members of the given user
   * @param {GlideRecord} userGr - GlideRecord of a user
   * returns {Array}{GlideRecord}
   */
  getTeamMembers: function(userGr){
  	var teamGR = new GlideRecord("sys_user");
  	teamGR.addActiveQuery();
  	teamGR.orderBy("name");
  	teamGR.addQuery("manager", userGr.manager.sys_id);
  	teamGR.addQuery("sys_id", "!=", userGr.sys_id);
  	teamGR.addNotNullQuery("manager");
  	teamGR.query();
  	return teamGR;
  },
  	
  /**
   * Returns direct reportees of the given user
   * @param {GlideRecord} userGr - GlideRecord of a user
   * returns {Array}{GlideRecord}
   */
  getDirectReports: function(userGr){
  	var directReportGR = new GlideRecord("sys_user");
  	directReportGR.addActiveQuery();
  	directReportGR.orderBy("name");
  	directReportGR.addQuery("manager", userGr.sys_id);
  	directReportGR.query();
  	return directReportGR;
  },
  
  /* 
  	Param : current,
  	Type : {
  	selected_user : sys_id of the User record for current record context,
  	logged_inP_user : sys_id of the current logged in user
  	},
  	Returns : current selected user manager sys_id
  */
  getCurrentUserManager : function(current) {
  	var currentUser = current.manual_user || current.selected_user || current.logged_in_user;
  	var userRecord = new GlideRecord('sys_user');
  	if(userRecord.get(currentUser)){
  		var managerGR = this.getManager(userRecord);
  		if(managerGR) return managerGR.sys_id
  	}
  	else return null;
  },
  /* 
  	Param : current,
  	Type : {
  	selected_user : sys_id of the User record for current record context,
  	logged_inP_user : sys_id of the current logged in user
  	},
  	Returns : array of sys ids from sys_user table for users, who share the same manager
  */
  getCurrentUserCoworkers : function(current) {
  	var currentUser = current.manual_user || current.selected_user || current.logged_in_user;
  	var currentUserRecord = new GlideRecord('sys_user');
  	if(currentUserRecord.get(currentUser)) {
  		var coworkers = [];
  		var coworkerGR = this.getTeamMembers(currentUserRecord);
  		while(coworkerGR.next()) {
  			coworkers.push(coworkerGR.getValue('sys_id'));
  		}
  		return coworkers;
  	}
  	else return [];
  },
  /* 
  	Param : current,
  	Type : {
  	selected_user : sys_id of the User record for current record context,
  	logged_inP_user : sys_id of the current logged in user
  	},
  	Returns : array of sys ids from sys_user table for users, for whom current user is the manager
  */
  getCurrentUserReports : function(current) {
  	var currentUser = current.manual_user || current.selected_user || current.logged_in_user;
  	var reportees = [];
  	var userGR = new GlideRecord('sys_user');
  	if(userGR.get(currentUser)) {
  		var reportsGR = this.getDirectReports(userGR);
  		while(reportsGR.next()) {
  			reportees.push(reportsGR.getValue('sys_id'));
  		}
  		return reportees;
  	}
  	else return null;
  	
  },
  type: 'EP_MyTeamsUtilsSNC'
};

Sys ID

5b91bf9f537330106d79ddeeff7b1205

Offical Documentation

Official Docs: