Name

global.ServiceDeliveryLocator

Description

No description available

Script

var ServiceDeliveryLocator = Class.create();

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

getServiceDelivery : function(/* String */ user_id, /* String */ business_service) {
  var answer = _checkUser(user_id, business_service);
  if (answer)
      return answer;

  answer = _checkGroup(user_id, business_service);
  if (answer)
      return answer;

  var u = GlideUser.getUserByID(user_id);
  answer = _checkDept(u.getDepartmentID(), business_service);
  if (answer)
      return answer;

  return _checkLocation(u.getLocation(), business_service);
},

_query : function(gr) {
   gr.addQuery('service_offering.parent', business_service);
   gr.orderBy('order');
   gr.query();
   if (gr.next())
     return gr.service_offering + '';
},

_checkLocation : function(location_id, business_service) {
   var gr = new GlideRecord('service_subscribe_location');
   gr.addQuery('cmn_location', location_id);
   return _query(gr);
},

_checkDept : function(dept_id, business_services) {
   var gr = new GlideRecord('service_subscribe_department');
   gr.addQuery('cmn_department', dept_id);
   return _query(gr);
},

_checkUser : function(user_id, business_service) {
   var gr = new GlideRecord('service_subscribe_sys_user');
   gr.addQuery('sys_user', user_id);
   return _query(gr);
},

_checkGroup : function(user_id, business_service) {
   var groups = GlideUser.getMyGroups(user_id);
   if (groups.isEmpty())
      return;

   var gr = new GlideRecord('service_subscribe_sys_user_grp');
   gr.addQuery('sys_user_group', groups);
   return _query(gr);
}
}

Sys ID

e756a6730a0a0bb900e1a3898774d162

Offical Documentation

Official Docs: