function onClick(g_form) {
var messages = [
'Transfer Type', 'New HR Service', 'Transfer Case',
'Warning: Transferring a case closes all related child cases or tasks.'
];
getMessages(messages, function() {
var sysId = g_form.getUniqueValue();
var table = g_form.getTableName();
var gA = new GlideAjax("sn_hr_core.hr_CaseTransferAjax");
gA.addParam('sysparm_name', 'getTransferFields');
gA.addParam('sysparm_sys_id', sysId);
gA.addParam('sysparm_table_name', table);
gA.addParam('sysparm_subject_person', g_form.getValue('subject_person'));
gA.getXMLAnswer(openModal);
function openModal(answer) {
answer = JSON.parse(answer) || {};
var fields = [];
var oneTransferMethod = (answer.transferMethods && answer.transferMethods.length == 1) ? true : false;
if (answer.transferMethods && answer.transferMethods.length > 1) {
fields.push({
type: 'choice',
name: 'reasonChoice',
label: getMessage('Transfer Type'),
value: (answer.transferMethods && answer.transferMethods.length > 0) ? answer.transferMethods[0].value : '',
choices: answer.transferMethods,
mandatory: true
});
}
fields.push({
type: 'choice',
name: 'newService',
label: getMessage('New HR Service'),
choices: answer.services,
mandatory: true
});
var warning = getMessage('Warning: Transferring a case closes all related child cases or tasks.');
g_modal.showFields({
title: getMessage('Transfer Case'),
fields: fields,
instruction: warning,
size: 'md'
}).then(function(response) {
var transferMethod = (oneTransferMethod) ? answer.transferMethods[0].value : response.updatedFields[0].value;
var hrService = (oneTransferMethod) ? response.updatedFields[0].value : response.updatedFields[1].value;
var ga = new GlideAjax("sn_hr_core.hr_CaseTransferAjax");
ga.addParam("sysparm_name", "transferCase");
ga.addParam("sysparm_transfer_method", transferMethod);
ga.addParam("sysparm_hr_service", hrService);
ga.addParam("sysparm_sys_id", sysId);
ga.getXMLAnswer(saveForm);
function saveForm(result) {
result = JSON.parse(result);
if (!result.error) {
g_aw.openRecord(result.table, result.id);
} else {
g_modal.alert(result.error);
}
}
});
}
});
}