Name

global.SLAAdvancedConditionUtilSNC

Description

No description available

Script

var SLAAdvancedConditionUtilSNC = Class.create();
SLAAdvancedConditionUtilSNC.prototype = {

  ADV_CONDITION_TYPE: "adv_condition_type",
  VALCHANGES: "VALCHANGES",
  CHANGESFROM: "CHANGESFROM",
  CHANGESTO: "CHANGESTO",
  COLLECTION: "collection",
  CONTAINS: "CONTAINS",
  CONTRACT_SLA: "contract_sla",

  initialize: function() {
  	this._slaUtil = new SLAUtil();
  	this._conditionFields = this._slaUtil.getSLAConditionFields();
  },

  updateAllAdvanced: function() {
  	var advCondOperators = [this.VALCHANGES, this.CHANGESFROM, this.CHANGESTO];
  	var slasWithExtendedGr = new GlideMultipleUpdate(this.CONTRACT_SLA);
  	slasWithExtendedGr.addNullQuery(this.ADV_CONDITION_TYPE);
  	var cond;
  	for (var i = 0; i < this._conditionFields.length; i++) {
  		var conditionField = this._conditionFields[i];
  		for (var j = 0; j < advCondOperators.length; j++) {
  			var operator = advCondOperators[j];
  			if (i === 0 && j === 0)
  				cond = slasWithExtendedGr.addQuery(conditionField, this.CONTAINS, operator);
  			else
  				cond.addOrCondition(conditionField, this.CONTAINS, operator);
  		}
  	}
  	slasWithExtendedGr.setValue(this.ADV_CONDITION_TYPE, this._slaUtil.SLA_ADV_COND_ADV_ONLY);
  	slasWithExtendedGr.execute();
  	return this;
  },

  updateAllAdvancedIfJournal: function() {
  	var slaTablesGr = new GlideAggregate(this.CONTRACT_SLA);
  	slaTablesGr.addQuery(this.ADV_CONDITION_TYPE, this._slaUtil.SLA_ADV_COND_ADV_ONLY);
  	slaTablesGr.groupBy(this.COLLECTION);
  	slaTablesGr.setWorkflow(false);
  	slaTablesGr.query();
  	while (slaTablesGr.next()) {
  		var tableName = slaTablesGr.getValue(this.COLLECTION);
  		var journalFields = this._slaUtil.getJournalFields(tableName);
  		if (!journalFields || journalFields.length === 0)
  			continue;
  		var cond;
  		var slasWithExtendedGr = new GlideMultipleUpdate(this.CONTRACT_SLA);
  		slasWithExtendedGr.addQuery(this.ADV_CONDITION_TYPE, this._slaUtil.SLA_ADV_COND_ADV_ONLY);
  		for (var i = 0; i < this._conditionFields.length; i++) {
  			var conditionField = this._conditionFields[i];
  			for (var j = 0; j < journalFields.length; j++) {
  				var condValue = journalFields[j] + this.VALCHANGES;
  				if (i === 0 && j === 0)
  					cond = slasWithExtendedGr.addQuery(conditionField, this.CONTAINS, condValue);
  				else
  					cond.addOrCondition(conditionField, this.CONTAINS, condValue);
  			}
  		}
  		slasWithExtendedGr.setValue(this.ADV_CONDITION_TYPE, this._slaUtil.SLA_ADV_COND_ADV_WITH_JOURNAL);
  		slasWithExtendedGr.execute();
  	}
  	return this;
  },

  updateAllAdvancedIfSystem: function() {
  	var slaTablesGr = new GlideAggregate(this.CONTRACT_SLA);
  	slaTablesGr.addQuery(this.ADV_CONDITION_TYPE, this._slaUtil.SLA_ADV_COND_ADV_ONLY);
  	slaTablesGr.groupBy(this.COLLECTION);
  	slaTablesGr.setWorkflow(false);
  	slaTablesGr.query();
  	while (slaTablesGr.next()) {
  		var tableName = slaTablesGr.getValue(this.COLLECTION);
  		var systemFields = this._slaUtil.getSystemFields();
  		if (!systemFields || systemFields.length === 0)
  			continue;
  		var cond;
  		var slasWithExtendedGr = new GlideMultipleUpdate(this.CONTRACT_SLA);
  		slasWithExtendedGr.addQuery(this.ADV_CONDITION_TYPE, this._slaUtil.SLA_ADV_COND_ADV_ONLY);
  		for (var i = 0; i < this._conditionFields.length; i++) {
  			var conditionField = this._conditionFields[i];
  			for (var j = 0; j < systemFields.length; j++) {
  				if (i === 0 && j === 0)
  					cond = slasWithExtendedGr.addQuery(conditionField, this.CONTAINS, systemFields[j] + this.VALCHANGES);
  				else
  					cond.addOrCondition(conditionField, this.CONTAINS, systemFields[j] + this.VALCHANGES);
  				cond.addOrCondition(conditionField, this.CONTAINS, systemFields[j] + this.CHANGESFROM);
  				cond.addOrCondition(conditionField, this.CONTAINS, systemFields[j] + this.CHANGESTO);
  			}
  		}
  		slasWithExtendedGr.setValue(this.ADV_CONDITION_TYPE, this._slaUtil.SLA_ADV_COND_ADV_WITH_SYSTEM);
  		slasWithExtendedGr.execute();
  	}
  	return this;
  },

  updateAllAdvancedIfJournalAndSystem: function() {
  	var slaTablesGr = new GlideAggregate(this.CONTRACT_SLA);
  	var condition = slaTablesGr.addQuery(this.ADV_CONDITION_TYPE, this._slaUtil.SLA_ADV_COND_ADV_WITH_JOURNAL);
  	condition.addOrCondition(this.ADV_CONDITION_TYPE, "=", this._slaUtil.SLA_ADV_COND_ADV_WITH_SYSTEM);
  	slaTablesGr.groupBy(this.COLLECTION);
  	slaTablesGr.setWorkflow(false);
  	slaTablesGr.query();
  	while (slaTablesGr.next()) {
  		var tableName = slaTablesGr.getValue(this.COLLECTION);
  		var systemFields = this._slaUtil.getSystemFields();
  		var journalFields = this._slaUtil.getJournalFields(tableName);
  		if ((!journalFields || journalFields.length === 0) && (!systemFields || systemFields.length === 0))
  			continue;
  		var journalCond;
  		var slasWithExtendedGr = new GlideMultipleUpdate(this.CONTRACT_SLA);
  		var advCondition = slasWithExtendedGr.addQuery(this.ADV_CONDITION_TYPE, "=", this._slaUtil.SLA_ADV_COND_ADV_WITH_JOURNAL);
  		advCondition.addOrCondition(this.ADV_CONDITION_TYPE, "=", this._slaUtil.SLA_ADV_COND_ADV_WITH_SYSTEM);
  		for (var i = 0; i < this._conditionFields.length; i++) {
  			var conditionField = this._conditionFields[i];
  			// Add conditions for journal fields
  			for (var j = 0; j < journalFields.length; j++) {
  				var condValue = journalFields[j] + this.VALCHANGES;
  				if (i === 0 && j === 0)
  					journalCond = slasWithExtendedGr.addQuery(conditionField, this.CONTAINS, condValue);
  				else
  					journalCond.addOrCondition(conditionField, this.CONTAINS, condValue);
  			}
  		}
  		var systemCond;
  		for (var l = 0; l < this._conditionFields.length; l++) {
  			conditionField = this._conditionFields[l];
  			// Add conditions for system fields
  			for (var m = 0; m < systemFields.length; m++) {
  				if (l === 0 && m === 0)
  					systemCond = slasWithExtendedGr.addQuery(conditionField, this.CONTAINS, systemFields[m] + this.VALCHANGES);
  				else
  					systemCond.addOrCondition(conditionField, this.CONTAINS, systemFields[m] + this.VALCHANGES);
  				systemCond.addOrCondition(conditionField, this.CONTAINS, systemFields[m] + this.CHANGESFROM);
  				systemCond.addOrCondition(conditionField, this.CONTAINS, systemFields[m] + this.CHANGESTO);
  			}
  		}
  		slasWithExtendedGr.setValue(this.ADV_CONDITION_TYPE, this._slaUtil.SLA_ADV_COND_ADV_WITH_JOURNAL_AND_SYSTEM);
  		slasWithExtendedGr.execute();
  	}
  	return this;
  },

  updateAllNull: function() {
  	var slasWithExtendedGr = new GlideMultipleUpdate(this.CONTRACT_SLA);
  	slasWithExtendedGr.addNullQuery(this.ADV_CONDITION_TYPE);
  	slasWithExtendedGr.setValue(this.ADV_CONDITION_TYPE, this._slaUtil.SLA_ADV_COND_NONE);
  	slasWithExtendedGr.execute();
  	return this;
  },

  type: 'SLAAdvancedConditionUtilSNC'
};

Sys ID

122e0f66730320108ef62d2b04f6a7bc

Offical Documentation

Official Docs: