Check if specific date has active task
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2024 12:03 AM
Hello, everyone. I have a catalog item that allows users to book space. And the space is reserved after a 'catalog task' created by the flow with updated u_start and u_end (datetime custom fields).
For each start date/time selected by the requestor, the catalog client script should check to see if it is available. And I need assistance with the script below.
Catalog client script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('CheckActiveBooking');
ga.addParam('sysparm_name', "checkActiveBooking");
ga.addParam('sysparm_start', newValue);
ga.getXMLAnswer(function(answer) {
if (answer != 'false') {
var parser = JSON.parse(answer);
alert('No availability at your preferred start time. Please choose another time.');
return false;
}
});
}
Script include:
var CheckActiveBooking = Class.create();
CheckActiveBooking.prototype = Object.extendsObject(AbstractAjaxProcessor, {
checkActiveBooking: function() {
var newbookingStart = this.getParameter('sysparm_start');
var answer = '';
var gr = new GlideRecord('sc_task');
gr.addActiveQuery();
gr.query();
if (gr.next()) {
var startDateTime = new GlideDateTime('u_start');
var endDateTime = new GlideDateTime('u_end');
if (newbookingStart.getNumericValue() > startDateTime.getNumericValue() && newbookingStart.getNumericValue() < endDateTime.getNumericValue()) {
answer = 'true'; //Existing booking found.
} else {
answer = 'false'; //Allow new booking
}
return answer;
}
},
type: 'CheckActiveBooking'
});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2024 12:38 AM
Hi @tsoct
There is one mistake in the script include.
Please update below 2 lines.
var startDateTime = new GlideDateTime(gr.u_start);
var endDateTime = new GlideDateTime(gr.u_end);
Please mark my answer as Accepted as Solution & hit Helpful button if it helped you.
Thanks,
Shikha