Name
sn_risk_advanced.AdvancedRiskPublicAjax
Description
No description available
Script
var AdvancedRiskPublicAjax = Class.create();
AdvancedRiskPublicAjax.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getCurrencyCode : function() {
return new GRCRiskEvent().getCurrencyCode();
},
_error: function(msg) {
return new global.JSON().encode({
error: msg
});
},
getRAMForAnyObject: function() {
var tableId = this.getParameter('sysparm_table');
var recordId = this.getParameter('sysparm_recordId');
var ram = new GlideRecord('sn_risk_advanced_risk_assessment_methodology');
ram.addQuery('table_name', tableId);
ram.addQuery('state', '2');
ram.query();
if(!ram.next()){
return this._error(gs.getMessage('There are no published risk assessment methodologies for this table. Contact your risk administrator for details.'));
} else {
var assessmentUtils = new sn_risk_advanced.RiskAssessmentUtils();
var assessmentId = assessmentUtils.getAssessmentInstanceForAnyObject(tableId, recordId);
if(assessmentId){
var assessmentInstance = new GlideRecord('sn_risk_advanced_risk_assessment_instance');
assessmentInstance.get(assessmentId);
var url = '/sn_risk_advanced_risk_assessment_instance.do?sys_id=' + assessmentId;
var link = ' <a target="_blank" href="' + url + '">' +assessmentInstance.getValue('number') + '</a>';
var assessmentInfo = {
assessmentId:assessmentId,
newInstanceMsg: gs.getMessage('Risk assessment already exists. {0}', [link])
};
return new global.JSON().encode(assessmentInfo);
}
var result = {
ramId : ram.getUniqueValue(),
dueDate: ram.getValue('days_to_overdue'),
frequency: ram.getValue('reassessment_frequency')
};
}
return new global.JSON().encode(result);
},
checkUserRole: function() {
var assessorId = this.getParameter('sysparm_assessorId');
var approverId = this.getParameter('sysparm_approverId');
var assessmentUtils = new sn_risk_advanced.RiskAssessmentUtils();
var result = {
assessorPresent : assessmentUtils.checkAssessorRole(assessorId),
approverPresent : assessmentUtils.checkApproverRole(approverId)
};
return new global.JSON().encode(result);
},
createRiskAssessmentInstanceForAnyObject: function() {
var assessorId = this.getParameter('sysparm_assessor');
var approverId = this.getParameter('sysparm_approver');
var ramId = this.getParameter('sysparm_ramId');
var dueDate = this.getParameter('sysparm_dueDate');
var frequency = this.getParameter('sysparm_frequency');
var tableId = this.getParameter('sysparm_tableName');
var recordId = this.getParameter('sysparm_recordId');
var assessmentUtils = new sn_risk_advanced.RiskAssessmentUtils();
var instanceObj = {};
instanceObj.risk_assessment_methodology = ramId;
instanceObj.assessor_user = assessorId;
instanceObj.approver_user = approverId;
instanceObj.source_record = recordId;
instanceObj.table = tableId;
instanceObj.state = '1';
instanceObj.next_schedule_date = assessmentUtils.getNextScheduleDate(frequency);
instanceObj.asmt_due_date = assessmentUtils.getAssessmentDueDate(dueDate);
instanceObj.orignal_assessor_user = assessorId;
instanceObj.orignal_approver_user = approverId;
var assessmentInstanceId = assessmentUtils.getAssessmentInstanceForAnyObject(tableId, recordId);
if (assessmentInstanceId == null) {
assessmentInstanceId = assessmentUtils.createAssessmentInstance(instanceObj);
if (assessmentInstanceId == null) {
return this._error(gs.getMessage('Risk assessment could not be created.'));
}
assessmentUtils.createAssessmentQuestions(assessmentInstanceId);
}
var assessmentInstance = new GlideRecord('sn_risk_advanced_risk_assessment_instance');
assessmentInstance.get(assessmentInstanceId);
var url = '/sn_risk_advanced_risk_assessment_instance.do?sys_id=' + assessmentInstanceId;
var link = ' <a target="_blank" href="' + url + '">' +assessmentInstance.getValue("number") + '</a>';
var result = {
newInstanceMsg: gs.getMessage('Risk assessment created successfully. {0}', [link])
};
return new global.JSON().encode(result);
},
updateRiskAssessment: function() {
var assessorId = this.getParameter('sysparm_assessor');
var approverId = this.getParameter('sysparm_approver');
var approverCheck = this.getParameter('sysparm_approverCheck');
var asmtId = this.getParameter('sysparm_assessmentId');
var asmt = new GlideRecord('sn_risk_advanced_risk_assessment_instance');
asmt.get(asmtId);
var ram = new GlideRecord('sn_risk_advanced_risk_assessment_methodology');
ram.get(asmt.getValue('risk_assessment_methodology'));
var assessmentUtils = new sn_risk_advanced.RiskAssessmentUtils();
if(assessorId){
asmt.assessor_user = assessorId;
}
if(approverId || !approverCheck){
asmt.approver_user = approverId;
}
asmt.state = '1';
asmt.next_schedule_date = assessmentUtils.getNextScheduleDate(ram.getValue('reassessment_frequency'));
asmt.asmt_due_date = assessmentUtils.getAssessmentDueDate(ram.getValue('days_to_overdue'));
asmt.orignal_assessor_user = asmt.assessor_user;
asmt.orignal_approver_user = asmt.approver_user;
asmt.update();
assessmentUtils.updateExceptionState(asmt.getUniqueValue(), asmt.getTableName(), "assessor_user", "2");
assessmentUtils.updateExceptionState(asmt.getUniqueValue(), asmt.getTableName(), "approver_user", "2");
var result = {
msg: gs.getMessage('Risk assessment updated successfully.')
};
return new global.JSON().encode(result);
},
cancelAnyObjectRiskAssessment: function(){
var tableId = this.getParameter('sysparm_tableName');
var recordId = this.getParameter('sysparm_recordId');
var response = new sn_risk_advanced.RiskAssessmentUtils().cancelAnyObjectAssessment(tableId,recordId);
return new global.JSON().encode(response);
},
type: 'AdvancedRiskPublicAjax'
});
Sys ID
9321c3280f281010bad14bb768767e64