Name
sn_esign.esign_taskUtils
Description
No description available
Script
var esign_taskUtils = Class.create();
esign_taskUtils.prototype = {
initialize: function() {
},
getTasks: function(taskID) {
var gr = new GlideRecord('task');
gr.addQuery('sys_id',taskID);
gr.query();
gr.next();
var task = {};
if(gr.canRead()) {
task.status ="success";
var now = new GlideDateTime();
var offset = now.getTZOffset();
now = now.getNumericValue() + offset;
task.sys_id = gr.getValue("sys_id");
task.class_name = gr.getValue("sys_class_name");
task.state = gr.getValue("state");
task.finished = gr.getValue("active") == "0";
task.opened_by = gr.getValue("opened_by");
task.assigned_to = {userId: gr.getValue("assigned_to"), name: gr.getDisplayValue("assigned_to")};
task.updated = gr.getValue("sys_updated_on");
task.due_date = gr.getValue("due_date");
task.closed_at = gr.getValue("closed_at");
task.created = gr.getValue("sys_created_on");
task.assigned_to_me = (gr.getValue("assigned_to") == gs.getUserID());
task.esign_type = gr.getElement("sn_esign_esignature_configuration").getRefRecord().getValue("signature_type");
task.acknowledgement_text = gr.getElement("sn_esign_esignature_configuration").getRefRecord().getValue("acknowledgement_text");
task.acknowledge_document = gr.getElement("sn_esign_esignature_configuration").getRefRecord().getValue("managed_document");
task.domain = gr.getElement("sn_esign_esignature_configuration").getRefRecord().getValue("sys_domain");
task.esign_doc_type = gr.getElement("sn_esign_esignature_configuration").getRefRecord().getValue("document_type");
task.kb_article = gr.getElement("sn_esign_esignature_configuration").getRefRecord().getValue("kb_article");
task.kb_article_number = gr.getElement("sn_esign_esignature_configuration").getRefRecord().getDisplayValue("kb_article").split(' ')[0];
task.esign_document = gr.getValue("sn_esign_document");
task.esign_documentUrl = '/sys_attachment.do?sysparm_referring_url=tear_off&view=true&sys_id=' + task.esign_document;
}else
task.status = "error";
return task;
},
setTaskFinished : function(request) {
var sysId = request.sys_id;
var result = {};
if (request.sys_id && request.user_id) {
var gr = new GlideRecord("task");
gr.get(sysId);
var userId = gs.getUserID();
if (gr.canRead() && (gr.getValue("assigned_to") == userId || (GlidePluginManager().isActive('com.glide.granular_service_delegation') && new sn_delegation.DelegationUtil().isRecordDelegatedToUser(userId, gr)))) {
gr.setValue("state", "3");
if (gr.update()) {
result.status = "success";
result.short_description = gr.getValue('short_description');
} else{
result.status = "error";
gs.addErrorMessage(gs.getMessage("There was an error signing the document. Please contact your administrator for help."));
}
}
}
return result;
},
setTaskFinishedWithMessage : function(request) {
var response = this.setTaskFinished(request);
if(response.status == "success")
gs.addInfoMessage(gs.getMessage('The to-do "{0}" has been completed ', response.short_description));
return response;
},
saveDocumentAcknowledgement : function(acknowledgement_text,
esign_type,
sys_id,
document_revision,
kb_article,
signature,
domain,
table_name,
user_id) {
var taskGR = new GlideRecord('task');
taskGR.get(sys_id);
var result = {};
if (taskGR.canRead() && (taskGR.getValue("assigned_to") == user_id || (GlidePluginManager().isActive('com.glide.granular_service_delegation') && new sn_delegation.DelegationUtil().isRecordDelegatedToUser(user_id, taskGR)))) {
var gr = new GlideRecord("sn_esign_acknowledgement");
gr.initialize();
gr.setValue("acknowledged", true);
if (acknowledgement_text)
gr.setValue("acknowledgement_text", acknowledgement_text);
gr.setValue("acknowledgement_type", esign_type);
gr.setValue("document", sys_id);
if (document_revision)
gr.setValue("document_revision", document_revision);
if (kb_article)
gr.setValue("kb_article", kb_article);
if (signature)
gr.setValue("signature", signature);
gr.setValue("sys_domain", domain);
gr.setValue("table_name", table_name);
gr.setValue("user", user_id);
if (gr.insert())
result.status = "success";
else {
result.status = "error";
gs.addErrorMessage(gs.getMessage("There was an error signing the document. Please contact your administrator for help."));
}
}
else{
result.status = "error";
gs.addErrorMessage(gs.getMessage("There was an error signing the document. Please contact your administrator for help."));
}
return result;
},
getManagedDocumentDetails : function(attachmentSysId) {
var managedDocumentDetails = {};
var gr = new GlideRecord("sys_attachment");
gr.addQuery('sys_id', attachmentSysId);
gr.query();
if(gr.next()) {
managedDocumentDetails.status = "success";
managedDocumentDetails.table_name = gr.getValue('table_name');
managedDocumentDetails.table_sys_id = gr.getValue('table_sys_id');
managedDocumentDetails.content_type = gr.getValue('content_type');
managedDocumentDetails.canRead = gr.canRead();
} else
managedDocumentDetails.status = "error";
return managedDocumentDetails;
},
getAcknowledgeDocument : function(document_id) {
var gr = new GlideRecord("dms_document_revision");
gr.addQuery("document", document_id);
gr.addQuery("stage", "published");
gr.query();
var attachmentInfo = {};
if (gr.next()) {
attachmentInfo.status = "success";
attachmentInfo.document_name = gr.document.name.toString();
attachmentInfo.document_revision = gr.getUniqueValue();
var _attachmentInfo = this._getAttachmentInfo(gr.getUniqueValue());
if (_attachmentInfo === null)
attachmentInfo.status = "error";
else {
attachmentInfo.canRead = _attachmentInfo.canRead;
attachmentInfo.document = _attachmentInfo.document;
attachmentInfo.documentUrl = '/sys_attachment.do?sysparm_referring_url=tear_off&view=true&sys_id=' + attachmentInfo.document;
}
} else
attachmentInfo.status = "error";
return attachmentInfo;
},
_getAttachmentInfo : function (tableSysId) {
var attachmentInfo = {};
var gr = new GlideRecord("sys_attachment");
gr.addQuery("table_name", "dms_document_revision");
gr.addQuery("table_sys_id", tableSysId);
gr.query();
if (gr.next()) {
attachmentInfo.canRead = gr.canRead();
attachmentInfo.document = gr.getUniqueValue();
return attachmentInfo;
}
return null;
},
attachAcknowledgeDocument : function(tableSysId, table, documentSysId, kbArticleId) {
var result = {};
result.status = "success";
if(documentSysId)
new GlideSysAttachment().copy('dms_document_revision', documentSysId, table, tableSysId);
else if(kbArticleId){
var htmlContent = new global.KBViewModel().getArticleContentBySysId(kbArticleId);
var gr = new GlideRecordSecure("kb_knowledge");
if(gr.get(kbArticleId)) {
var pdfGenerationAPI = new sn_pdfgeneratorutils.PDFGenerationAPI();
var response = pdfGenerationAPI.convertToPDFWithHeaderFooter(htmlContent, table, tableSysId, gr.number);
if(gs.nil(response.attachment_id))
result.status = "error";
}
}else {
result.status = "error";
gs.addErrorMessage(gs.getMessage("There was an error signing the document. Please contact your administrator for help."));
}
return result;
},
getKBArticle : function(kbNumber) {
var kbRecord = {};
var gr = new GlideRecordSecure("kb_knowledge");
gr.addQuery('number', kbNumber);
gr.addQuery('workflow_state', 'published');
gr.orderByDesc('sys_updated_on');
gr.setLimit(1);
gr.query();
if(gr.next()) {
kbRecord.sys_id = gr.getValue('sys_id');
kbRecord.status = "success";
var articleGR = new GlideRecord("kb_knowledge");
articleGR.get(kbRecord.sys_id);
kbRecord.isValid = articleGR.isValidRecord();
kbRecord.canRead = articleGR.canRead();
if(articleGR.display_attachments)
kbRecord.showAttachments = true;
kbRecord.article = articleGR.getUniqueValue();
kbRecord.text = new global.KBViewModel().getArticleContentBySysId(kbRecord.article);
kbRecord.short_description = articleGR.short_description;
} else
kbRecord.status = "error";
return kbRecord;
},
setESignTaskFinished : function(acknowledgement_text,
esign_type,
sys_id,
document_revision,
kb_article,
domain,
table_name) {
this.saveDocumentAcknowledgement(acknowledgement_text,
esign_type,
sys_id,
document_revision,
kb_article,
null,
domain,
table_name,
gs.getUserID());
this.attachAcknowledgeDocument(sys_id,
table_name,
document_revision,
kb_article);
var request = {};
request.sys_id = sys_id;
request.user_id = gs.getUserID();
this.setTaskFinished(request);
},
getSignatureImage : function(tableName, documentId) {
var signImageGR = new GlideRecord('signature_image');
signImageGR.addQuery('table', tableName);
signImageGR.addQuery('document', documentId);
signImageGR.addQuery('user', gs.getUserID());
signImageGR.addQuery('active', true);
signImageGR.orderByDesc('sys_updated_on');
signImageGR.setLimit(1);
signImageGR.query();
var signImageData = {};
if(signImageGR.next()) {
signImageData.status = "success";
signImageData.sys_id = signImageGR.getValue('sys_id');
}
else{
signImageData.status = "error";
gs.addErrorMessage(gs.getMessage("There was an error signing the document. Please contact your administrator for help."));
}
return signImageData;
},
type: 'esign_taskUtils'
};
Sys ID
6f22781a77972300a25193df59106146