Name
global.AgentEventUtil
Description
Implements extension point global.AgentEventUtil
Script
var AgentEventUtil = Class.create();
AgentEventUtil.prototype = {
initialize: function() {
},
computeEvents: function(){
try {
var usersScheduleData = new global.AgentScheduleExtPointUtil().loadExtension("global.AgentScheduleUtil").getTimeOffSpansForUsers(users, startDate, endDate, eventType, configId, displayField);
for (var index = 0; index < users.length; index++) {
var user = users[index];
var scheduleData = usersScheduleData[user];
for (var i = 0; i < scheduleData.length; i++) {
var timeoffData = scheduleData[i];
var timeOffObj = {};
timeOffObj.start_date = timeoffData.origin_start_date.getGlideDateTime().getValue();
timeOffObj.end_date = timeoffData.origin_end_date.getGlideDateTime().getValue();
timeOffObj.start_date_display = timeoffData.origin_start_date.convertTimeZone(timeoffData.timezone, GlideSession.get().getTimeZoneName());
timeOffObj.end_date_display = timeoffData.origin_end_date.convertTimeZone(timeoffData.timezone, GlideSession.get().getTimeZoneName());
timeOffObj.origin_start_date = timeoffData.origin_start_date.convertTimeZone(timeoffData.timezone, GlideSession.get().getTimeZoneName());
timeOffObj.origin_end_date = timeoffData.origin_end_date.convertTimeZone(timeoffData.timezone, GlideSession.get().getTimeZoneName());
timeOffObj.dhtmlx_start_date = timeoffData.origin_start_date.getGlideDateTime().getDisplayValueInternal();
timeOffObj.dhtmlx_end_date = timeoffData.origin_end_date.getGlideDateTime().getDisplayValueInternal();
timeOffObj.number = timeoffData.text;
timeOffObj.sys_id = timeoffData.sys_id;
timeOffObj.user = user;
result.push(timeOffObj);
}
var agentScheduleUtil = new global.AgentScheduleUtil();
var personalScheduleGR = agentScheduleUtil.getAgentPersonalSchedule(user);
if(personalScheduleGR.getRowCount() == 0) {
var personalScheduleID = this.createPersonalSchedule(user);
if (personalScheduleID) {
var agentPersonalScheduleConfigID = this.createPersonalScheduleConfig(user, personalScheduleID);
if (agentPersonalScheduleConfigID) {
var agentEventGR = new GlideRecord("agent_events");
agentEventGR.addQuery("user", user);
agentEventGR.query();
if (agentEventGR.next()) {
result.personalSchedule["name"] = agentEventGR.getDisplayValue("personal_schedule");
result.personalSchedule["sys_id"] = agentEventGR.getValue("sys_id");
}
}
}
}
}
} catch (err) {
gs.info(err);
}
},
createPersonalSchedule: function(user) {
var personalScheduleID = "";
if (user) {
var userGR = new GlideRecord("sys_user");
userGR.addQuery('sys_id', user);
userGR.query();
if (userGR.next()) {
var personalScheduleGR = new GlideRecord('cmn_schedule');
personalScheduleGR.initialize();
personalScheduleGR.setValue('name', userGR.getValue('name') + " Personal Schedule");
if(userGR.getValue('time_zone'))
personalScheduleGR.setValue('time_zone',userGR.getValue('time_zone'));
personalScheduleID = personalScheduleGR.insert();
}
}
return personalScheduleID;
},
createPersonalScheduleConfig: function(user, personalScheduleID) {
var agentPersonalScheduleConfigID = "";
if (user && personalScheduleID) {
var agentEventGR = new GlideRecord('agent_events');
agentEventGR.initialize();
agentEventGR.setValue('user', user);
agentEventGR.setValue('personal_schedule', personalScheduleID);
agentPersonalScheduleConfigID = agentEventGR.insert();
}
return agentPersonalScheduleConfigID;
},
type: 'AgentEventUtil'
};
Sys ID
c3969d76231023002dd6cb0a56bf65f0