Name

sn_cs_queryrules.ConsumerQueryRuleUtil

Description

No description available

Script

var ConsumerQueryRuleUtil = Class.create();

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

getConsumersFromRelConsumerToUser: function() {
      var key = 'consumers_from_consumer_to_user_rel_' + gs.getUserID();
  	var consumerFromConsumerToUserRel = GlideAppCache.get(key);
      if (!gs.nil(consumerFromConsumerToUserRel))
          return consumerFromConsumerToUserRel.split(",");
  	
  	var consumers = {};

  	if (!gs.tableExists('sn_customer_rel_consumer_to_consumer'))
  		return Object.keys(consumers);

      var consumerUserReln = new GlideRecord("sn_customer_rel_consumer_to_user");

      if (!consumerUserReln.isValid())
          return consumersIds;

      consumerUserReln.addQuery("user", gs.getUserID());
      consumerUserReln.addQuery("responsibility", "8af8bbedb3730010700b4d43c6a8dca1");
      consumerUserReln.query();

      while (consumerUserReln.next())
          consumers[consumerUserReln.consumer.toString()] = true;

  	var consumersArray = Object.keys(consumers);
      if (consumersArray != null && consumersArray.length>0) {
          GlideAppCache.put(key, consumersArray.join(","));
      }

      return consumersArray;
  },


  getConsumersFromRelConsumerToConsumer: function() {
      var key = 'consumers_from_consumer_to_consumer_rel_' + gs.getUserID();

  	var consumerFromConsumerToConsumerRel = gs.getSession().getClientData(key);
      if (!gs.nil(consumerFromConsumerToConsumerRel))
          return consumerFromConsumerToConsumerRel.split(",");

  	var consumers = {};

  	if (!gs.tableExists('sn_customer_rel_consumer_to_consumer'))
  		return Object.keys(consumers);


      var consumerId = new global.CSManagementUtils().getConsumerId();

      var ccrGR = new GlideRecord('sn_customer_rel_consumer_to_consumer');
      ccrGR.addQuery('consumer', consumerId);
      ccrGR.addQuery("sys_class_name", "sn_customer_rel_consumer_to_consumer");
      ccrGR.addQuery('responsibility', 'c009bbedb3730010700b4d43c6a8dcef');
      ccrGR.query();
      while (ccrGR.next())
          consumers[ccrGR.getValue('related_consumer').toString()] = true;

  	var consumersArray = Object.keys(consumers);
      if (consumersArray != null && consumersArray.length>0) {
          gs.getSession().putClientData(key, consumersArray.join(","));
      }

      return consumersArray;

  },

  isInstallBasePluginActive: function() {
  	return GlidePluginManager.isActive(global.CSMBaseConstants.INSTALL_BASE_PLUGIN);
  },

  /*
   * returns true if household plugin is active.
   */
  isHouseHoldPluginActive: function() {
  	return GlidePluginManager.isActive(global.CSMBaseConstants.HOUSEHOLD_PLUGIN);
  },

  getConsumerRelationshipCases: function(includeHouseholdCases) {
  	var cases = [];
  	var gr = new GlideRecord(global.CSMBaseConstants.CASE_TABLE);
  	if (this.isHouseHoldPluginActive() && !includeHouseholdCases) {
  		gr.addNullQuery("household");
  	}

  	// consumer in my consumer relationships
  	gr.addEncodedQuery("consumerDYNAMICcd5fcbf60fe210103ff81b41ff767e47");
  	gr._skip_before_query_filter = true;
  	gr.query();
  	while (gr.next()) {
  		cases.push(gr.sys_id + "");
  	}
  	
  	return cases;
  },

  getValidSoldProducts: function(responsibilities) {
  	var soldProducts = {};
  	var consumerID = new global.CSManagementUtils().getConsumerId();
  	soldProducts = new sn_install_base.SoldProductAndInstallBaseFilter().getValidSoldProducts(consumerID,responsibilities);
  	return soldProducts;
  },

  getConsumerRelationshipIPs: function(includeHouseholdIPs) {
      var installedProducts = [];
      if (this.isInstallBasePluginActive()) {
          var gr = new GlideRecord(global.CSMBaseConstants.M2M_INSTALLED_PRODUCT);
          if (this.isHouseHoldPluginActive() && !includeHouseholdIPs) {
              gr.addNullQuery("install_base_item.household");
          }

          // consumer in my consumer relationships
          gr.addEncodedQuery("install_base_item.consumerDYNAMICcd5fcbf60fe210103ff81b41ff767e47");
          gr._skip_before_query_filter = true;
          gr.query();
          while (gr.next()) {
              installedProducts.push(gr.sys_id + "");
          }
      }

      return installedProducts;
  },
  
  type: 'ConsumerQueryRuleUtil'
};

Sys ID

ed2116e20f2210103ff81b41ff767e23

Offical Documentation

Official Docs: