Name

sn_hr_core.hr_PdfAjax

Description

No description available

Script

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

  initialize : function(request, responseXML, gc) {
  	global.AbstractAjaxProcessor.prototype.initialize.call(this, request, responseXML, gc);
  },
  
  ajaxFunction_getTask : function() {
  	var sys_id = this.getParameter('sysparm_taskId');
  	var data = {};
  	var task = {};
  	
  	var taskGr = new GlideRecord('sn_hr_core_task');
  	taskGr.get(sys_id);
  	if (taskGr.canRead()) {
  		task.sys_id = taskGr.getValue("sys_id");
  		task.acknowledgement_text = taskGr.getElement("sn_esign_esignature_configuration").getRefRecord().getValue("acknowledgement_text");
  		task.domain = taskGr.getElement("sn_esign_esignature_configuration").getRefRecord().getValue("sys_domain");
  		task.esign_type = taskGr.getElement("sn_esign_esignature_configuration").getRefRecord().getValue("signature_type");
  		task.class_name = taskGr.getValue("sys_class_name");		
  		data.task = task;
  		data.parent = taskGr.getValue("parent");
  		
  		var hrCase = new GlideRecord("sn_hr_core_case");
  		if (hrCase.get(data.parent)) {
  			data.pdfTemplate = hrCase.getValue('pdf_template');
  			var documentTemplate = new GlideRecord("sn_hr_core_document_template");
  			documentTemplate.get(data.pdfTemplate);
  			data.acknowledgment_text = documentTemplate.getValue("acknowledgment_text");
  		}
  		
  		if (new hr_Delegation().isAssignedOrDelegated(taskGr))
  			data.attachmentId = hrCase.getValue('sn_esign_document');
  	}
  	return new global.JSON().encode(data);
  },

  ajaxFunction_saveCoordinatesToDocumentMap : function() {
  	var pageNumber = parseInt(this.getParameter('sysparm_pageNumber'));
  	var docTop = parseInt(this.getParameter('sysparm_docTop'));
  	var docLeft = parseInt(this.getParameter('sysparm_docLeft'));
  	var signTop = parseInt(this.getParameter('sysparm_signTop'));
  	var signLeft = parseInt(this.getParameter('sysparm_signLeft'));
  	var boxHeight = parseInt(this.getParameter('sysparm_boxHeight'));
  	var boxWidth = parseInt(this.getParameter('sysparm_boxWidth'));
  	var documentFieldLabel = this.getParameter('sysparm_documentField');
  	var mappingField = this.getParameter('sysparm_documentFieldMap');
  	var pdfDocSysId = this.getParameter('sysparm_pdfDocRevId');

  	// Check have access to passed in pdf template
  	var pdfdocRevGr = new GlideRecordSecure('sn_hr_core_pdf_template');
  	if(!pdfdocRevGr.get(pdfDocSysId))
  		return "false";

  	var documentMap = new GlideRecordSecure('sn_hr_core_pdf_template_mapping');
  	documentMap.setValue('document', pdfDocSysId);
  	documentMap.setValue('document_field_type', "signature");
  	documentMap.setValue('page_number', pageNumber);
  	documentMap.setValue('mapping_field', mappingField);
  	documentMap.setValue('document_field_label', documentFieldLabel);
  	documentMap.setValue('doc_top', docTop);
  	documentMap.setValue('doc_left', docLeft);
  	documentMap.setValue('sign_top', signTop);
  	documentMap.setValue('sign_left', signLeft);
  	documentMap.setValue('box_height', boxHeight);
  	documentMap.setValue('box_width', boxWidth);
  	if (documentMap.insert())
  		return "true";

  	return "false";
  },

  ajaxFunction_getPDFTemplateMapping : function() {
  	var pdfDocSysId = this.getParameter('sysparm_pdfDocRevId');

  	// Function to return an object from a GlideRecord
  	function objBuilder(mappingGr) {
  		var fields = ["box_height", "box_width", "doc_top", "doc_left", "sign_top", "sign_left", "page_number", "document_field_label", "mapping_field", "sys_id"];
  		var obj = {};
  		for (var i = 0; i < fields.length; i++){
  			if(fields[i] == 'document_field_label')
  				obj[fields[i]] = GlideStringUtil.escapeHTML(mappingGr.getValue(fields[i]));
  			else
  				obj[fields[i]] = mappingGr.getValue(fields[i]);
  		}

  		return obj;
  	}

  	var maps = [];
  	var templateMap = new GlideRecordSecure('sn_hr_core_pdf_template_mapping');
  	templateMap.addQuery('document', pdfDocSysId);
  	templateMap.query();
  	while (templateMap.next())
  		maps.push(objBuilder(templateMap));

  	return new global.JSON().encode(maps);
  },

  ajaxFunction_removeTemplateMapping: function() {
  	var pdfDocSysId = this.getParameter('sysparm_templateSysId');
  	var templateMap = new GlideRecordSecure('sn_hr_core_pdf_template_mapping');
  	if (templateMap.get(pdfDocSysId))
  		return templateMap.deleteRecord();

  	return false;
  },
  
  /* check field to see if type is glide_date_time and return true/false */
  ajaxFunction_isGlideDateTime: function () {
  	var table = this.getParameter('sysparm_table');
  	var mappingField = this.getParameter('sysparm_mappingField');
  	
  	try {
  		var gr = new GlideRecord(table);
  		if (!gr.isValid() || !gr.canRead())
  			return false;
  		return /^(date|glide_date|glide_date_time)$/i.test(gr.getElement(mappingField).getED().getInternalType());
  	} catch(err) {
  		return false;
  	}
  	
  },
  
  ajaxFunction_getDocumentBody: function() {
  	var taskId = this.getParameter("sysparm_taskId");
  	var hrForm = new sn_hr_core.hr_CaseAjax().documentBody('sn_hr_core_task', taskId, 'sn_hr_core_task', taskId, 'false');
  	var body = hrForm.body;
  	var setDocumentBody = new sn_hr_core.hr_CaseAjax().setDocumentBody(body, 'sn_hr_core_task', taskId, 'sn_hr_core_task', taskId, 'false');
  	return new global.JSON().encode(hrForm.body);
  },
  
  ajaxFunction_setDocumentBody: function() {
  	var taskId = this.getParameter("sysparm_taskId");
  	var body = this.getParameter("sysparm_body");
  	var data = new sn_hr_core.hr_CaseAjax().setDocumentBody(body, 'sn_hr_core_task', taskId, 'sn_hr_core_task', taskId, 'false');
  	return new global.JSON().encode(data);
  },
  
  ajaxFunction_generateDocumentAndCloseTask : function() {
  	var table_name = this.getParameter("sysparm_tableName");
  	var sys_id = this.getParameter("sysparm_sysId");
      
  	var data = new sn_hr_core.hr_CaseAjax().generateDocumentAndCloseTask(table_name, sys_id);
  	return new global.JSON().encode(data);
  },
  
  type: 'hr_PdfAjax'
});

Sys ID

950296910b5032008cd6e7ae37673a63

Offical Documentation

Official Docs: