Name

sn_grc.IssueUtilsBaseWS

Description

Utilities for generating issues

Script

var IssueUtilsBaseWS = Class.create();
IssueUtilsBaseWS.prototype = {
  initialize: function() {},
  
  getIssueRemediationTasks: function(sysId) {
      var totalTasks = 0;
      var completedTasks = 0;
      var overDueTasks = 0;
  	var completed = new GlideAggregate('sn_grc_task');
      completed.addQuery('issue', sysId);
  	completed.addQuery('state', 'IN', [3, 4, 7]);
  	completed.addAggregate('COUNT');
      completed.query();
  	if(completed.next()) {
  		completedTasks = completed.getAggregate('COUNT');
  	}
  	var overDue = new GlideAggregate('sn_grc_task');
  	overDue.addQuery('issue', sysId);
  	overDue.addEncodedQuery('stateNOT IN3,4,7^due_date<javascript:gs.beginningOfToday()^ORend_date<javascript:gs.beginningOfToday()');
  	overDue.addAggregate('COUNT');
  	overDue.query();
  	if(overDue.next()) {
  		overDueTasks = overDue.getAggregate('COUNT');
  	}
  	
  	var total = new GlideAggregate('sn_grc_task');
  	total.addQuery('issue', sysId);
  	total.addAggregate('COUNT');
  	total.query();
  	if(total.next()) {
  		totalTasks = total.getAggregate('COUNT');
  	}
      var result = {};
      result.complete = completedTasks;
      result.over_due = overDueTasks;
      result.total = totalTasks;
      return result;
  },
  
  showOrHideRemediationTaskNewButton: function(current, parent) {
      if (parent.getTableName() == 'sn_grc_issue' && parent.active == true) {
          if (gs.hasRole("sn_grc.manager")) {
              return true;
          } else if (gs.hasRole("sn_grc.business_user") || gs.hasRole("sn_grc.business_user_lite")) {
                  if (parent.assigned_to == gs.getUserID()) {
                      return true;
                  }
              if (current.issue.assigned_to == gs.getUserID()) {
                  return true;
              }
          }
      }
      return false;
  },
  
  showOrHideRemediationTaskDeleteButton: function (current, parent) {
  	if (parent.getTableName() == 'sn_grc_issue') {
  	return gs.hasRole('sn_grc.manager') || (gs.hasRole('sn_grc.business_user') && (!current.issue.nil() && current.issue.assigned_to == gs.getUserID()));
  	}
  },
  

  type: 'IssueUtilsBaseWS'
};

Sys ID

59426b1b0b612010e3da46dc83673a3f

Offical Documentation

Official Docs: