Name

sn_grc.IndicatorAjax

Description

No description available

Script

var IndicatorAjax = Class.create();
IndicatorAjax.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {

  getRelatedListInfo: function() {
      return new sn_grc.IndicatorGeneratorEngine().checkForControlObectiveRiskStatementInRelatedList(
          this.getParameter('sysparm_recordId'));
  },

  copyIndicatorTemplateFields: function() {
      var templateRecord = this.getParameter('sysparm_template');
  	var fields = this.getParameter('sysparm_fields').split(',');
      var indicatorTemplate = new GlideRecord('sn_grc_indicator_template');
      indicatorTemplate.get(templateRecord);
      var result = {};
      for (var i = 0; i < fields.length; i++) {
          result[fields[i]] = indicatorTemplate.getValue(fields[i]);
      }
  	result['next_run_time'] = indicatorTemplate.getDisplayValue('next_run_time');
      return JSON.stringify(result);
  },
  
  getNextRunTimeForQuarterlyAndSemiAnnually: function() {
      var months = this.getParameter('sysparm_months');
      var today = new GlideDateTime();
      var recordMonth = 1;
      var recordDay = 1;
      var currentMonth = today.getMonthLocalTime();
      var dayOfMonth = today.getDayOfMonthLocalTime();
      var currentMonthNumber = parseInt(currentMonth % months);
      var year = today.getYearLocalTime();
      var month = '';
      if (((recordMonth == months && currentMonthNumber == 0) || (recordMonth != months && currentMonthNumber == recordMonth)) && recordDay > dayOfMonth) {
          month = currentMonth;
      } else if (currentMonthNumber < recordMonth) {
          month = currentMonth + (recordMonth - currentMonthNumber);
      } else {
          var offset = months - currentMonthNumber;
          month = currentMonth + offset + recordMonth;
      }
      var nextDate = new GlideDate();
      nextDate.setValue(year + '-' + month + '-' + recordDay);
      return nextDate;
  },

  type: 'IndicatorAjax'
});

Sys ID

71988ee55b9820102d33bff13381c77c

Offical Documentation

Official Docs: