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