how to exclude weekends from onchange client script date set

kevin_munguia
Tera Guru

I currently have an onchange client script that will add 3 days to a date field in my service portal. However, I want to make sure I exclude weekends. I currently have a schedule set in cmn_schedule_list.do so how do I point back to this table to look at the specific schedule that excludes weekends?

The scripts I'm currently using below. 

onchange client script: 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {

if (newValue == 'Letterhead') {

var ajax = new GlideAjax('ClientDateTimeUtils');
ajax.addParam('sysparm_name', 'addDateAmount');
ajax.getXML(calThreeDays);
}
function calThreeDays(response){
var answer = response.responseXML.documentElement.getAttribute("answer");

g_form.setValue('u_delivery_date', answer);
}
}

script include: 

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

addDateAmount: function(){

var date = new GlideDateTime(gs.now());
date.addDays(3);
return date.getDate();
},
type : 'ClientDateTimeUtils'

});

 

1 ACCEPTED SOLUTION

kevin_munguia
Tera Guru

CATALOG CLIENT SCRIPT:

function onChange(control, oldValue, newValue, isLoading, isTemplate) {

if (newValue == 'Letterhead') {

var ajax = new GlideAjax('ClientDateTimeUtils');
ajax.addParam('sysparm_name', 'addDateAmount');
ajax.getXML(calThreeDays);
}
function calThreeDays(response){
var answer = response.responseXML.documentElement.getAttribute("answer");

g_form.setValue('u_delivery_date', answer);
}
}

 

SCRIPT INCLUDE:

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

addDateAmount: function(){

var date = new GlideDateTime(gs.now());
if(date.getDayOfWeekUTC() == 2){
date.addDays(2); // if MONDAY then add 6 days to get Monday
}
else if(date.getDayOfWeekUTC() == 3){
date.addDays(2); // if TUESDAY then add 7 days to get Monday
}
else if(date.getDayOfWeekUTC() == 4){
date.addDays(4); // if WEDNESDAY then add 8 days to get Monday
}
else if(date.getDayOfWeekUTC() == 5){
date.addDays(3); // if THURSDAY then add 3 days to get Monday
}
else if(date.getDayOfWeekUTC() == 6){
date.addDays(2); // if FRIDAY then add 3 days to get Monday
}
else if(date.getDayOfWeekUTC() == 7){
date.addDays(1); // if SATURDAY then add 6 days to get Monday
}
else if(date.getDayOfWeekUTC() == 1){
date.addDays(0); // if SUNDAY then add 6 days to get Monday
}
return date.getDate();
},
type : 'ClientDateTimeUtils'

});

View solution in original post

10 REPLIES 10

kevin_munguia
Tera Guru

CATALOG CLIENT SCRIPT:

function onChange(control, oldValue, newValue, isLoading, isTemplate) {

if (newValue == 'Letterhead') {

var ajax = new GlideAjax('ClientDateTimeUtils');
ajax.addParam('sysparm_name', 'addDateAmount');
ajax.getXML(calThreeDays);
}
function calThreeDays(response){
var answer = response.responseXML.documentElement.getAttribute("answer");

g_form.setValue('u_delivery_date', answer);
}
}

 

SCRIPT INCLUDE:

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

addDateAmount: function(){

var date = new GlideDateTime(gs.now());
if(date.getDayOfWeekUTC() == 2){
date.addDays(2); // if MONDAY then add 6 days to get Monday
}
else if(date.getDayOfWeekUTC() == 3){
date.addDays(2); // if TUESDAY then add 7 days to get Monday
}
else if(date.getDayOfWeekUTC() == 4){
date.addDays(4); // if WEDNESDAY then add 8 days to get Monday
}
else if(date.getDayOfWeekUTC() == 5){
date.addDays(3); // if THURSDAY then add 3 days to get Monday
}
else if(date.getDayOfWeekUTC() == 6){
date.addDays(2); // if FRIDAY then add 3 days to get Monday
}
else if(date.getDayOfWeekUTC() == 7){
date.addDays(1); // if SATURDAY then add 6 days to get Monday
}
else if(date.getDayOfWeekUTC() == 1){
date.addDays(0); // if SUNDAY then add 6 days to get Monday
}
return date.getDate();
},
type : 'ClientDateTimeUtils'

});