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