Name

sn_hr_core.hr_ChecklistUtil

Description

No description available

Script

var hr_ChecklistUtil = Class.create();
hr_ChecklistUtil.prototype = {
  initialize: function() {
  },
  
  getChecklistItems: function(documentId) {
  	var cl = this._getChecklist(documentId);
  	var items = [];
  	if(cl){
  		var cli = new GlideRecord('checklist_item');
  		cli.addQuery('checklist',String(cl.sys_id));
  		cli.orderBy('order');
  		cli.query();
  		while(cli.next())
  			items.push(
  				{
  					name: String(cli.name), 
  					complete: String(cli.complete)=='true',
  					id: String(cli.sys_id)
  				}
  			);
  	}
  	return items;
  },
  
  updateChecklist: function(documentId, checklistInfo, checklistTable){
  	var cl = this._getChecklist(documentId,checklistTable);
  	var cli = new GlideRecord('checklist_item');
  	cli.addQuery('checklist',cl.sys_id+'');
  	
  	for(var item in checklistInfo){
  		if(checklistInfo[item].name){
  			this._updateItem(checklistInfo[item],String(cl.sys_id));
  			cli.addQuery('name',"!=", checklistInfo[item].name);
  		}
  	}
  	cli.deleteMultiple();
  },
  
  toggleItem: function(itemId) {
  	var cli = new GlideRecord('checklist_item');
  	if(cli.get(itemId)){
  		cli.setValue('complete',String(cli.complete)!='true');
  		cli.update();
  	}
  },
  
  /*************Private Methods***************/
  
  _getChecklist: function(documentId, checklistTable) {
  	var cl = new GlideRecord('checklist');
  	cl.addQuery('document',documentId);
  	cl.query();
  	if(cl.next())		
  		return cl;
  	else if(checklistTable)
  		return this._createChecklist(documentId,checklistTable);
  },
  
  _createChecklist: function(documentId,checklistTable) {
  	var cl = new GlideRecord('checklist');
  	cl.setValue('document',documentId);
  	cl.setValue('table',checklistTable);
  	cl.insert();
  	return cl;
  },
  
  _updateItem: function(item,checklistId) {
  	var cli = new GlideRecord('checklist_item');
  	if(item.id){
  		if(!cli.get(item.id))
  			gs.error("Checklist item not found");
  	} else {
  		cli.addQuery('name',item.name);
  		cli.addQuery('checklist',checklistId);
  		cli.query();
  		if(!cli.next()) {
  			cli.initialize();
  			cli.setValue('checklist',checklistId);
  		}
  	}
  	cli.setValue('complete',item.complete);
  	cli.setValue('name',item.name);
  	cli.setValue('order',item.order);
  	cli.update();
  },

  type: 'hr_ChecklistUtil'
};

Sys ID

48c1f33fc3933200b599b4ad81d3aef5

Offical Documentation

Official Docs: