how do i add catalog item's delivery time to RITM's due date?

BoHyun Jung
Mega Sage

Catalog item's delivery time

BoHyunJung_0-1674779471720.png

 

Client Script

function onLoad() {
//Type appropriate comment here, and begin script below
var today = new Date();

var ga = new GlideAjax('RITM_DueDate_WorkingDay');
ga.addParam('sysparm_name', 'getDeliveryTime');
ga.addParam('name', g_form.getValue('cat_item'));
ga.addParam('today', today);
ga.getXML(getDeliveryTime);

function getDeliveryTime(response){
var answer = response.responseXML.documentElement.getAttribute("answer");
g_form.setValue('due_date', answer);
}
}

 

Script include

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

getDeliveryTime: function(){
var name = this.getParameter('name');
var today = this.getParameter('today');

var gr = new GlideRecord('sc_cat_item');
gr.addQuery('sys_id', name);
gr.query();

if(gr.next()){
//calculate RITM's due_date -> today(new Date()) + delivery time(gr.delivery_time)
var due_date = today + gr.delivery_time;
return due_date;
}
},

type: 'RITM_DueDate_WorkingDay'
});

 

 

I want to calculate it from Script include and send it to client script, what should I do?

 

1 ACCEPTED SOLUTION

Basheer
Mega Sage

Hi @BoHyun Jung ,

Follow as below

Client Script:

 

function onLoad() {
//Type appropriate comment here, and begin script below

var ga = new GlideAjax('RITM_DueDate_WorkingDay');
ga.addParam('sysparm_name', 'getDeliveryTime');
ga.addParam('sysparm_item', g_form.getValue('cat_item'));
ga.getXML(getDeliveryTime);

function getDeliveryTime(response){
var answer = response.responseXML.documentElement.getAttribute("answer");
alert(answer);
g_form.setValue('due_date', answer);
}
}

 

Script Include

 

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

getDeliveryTime: function(){
var name = this.getParameter('sysparm_item');
var today = new GlideDateTime();
var dueDate = " ";

var gr = new GlideRecord('sc_cat_item');
gr.addQuery('sys_id', name);
gr.query();
if(gr.next()){

var deliveryTime = new GlideDateTime(gr.delivery_time);
var seconds = deliveryTime .getNumericValue() / 1000;
dueDate = today.addSeconds(seconds);
return dueDate;
}
},

type: 'RITM_DueDate_WorkingDay'
});

 

Please hit like button if my suggestion has helped you in any way.
Please mark correct if my response has solved your query.

Cheers,
Mohammed Basheer Ahmed.

View solution in original post

4 REPLIES 4

Basheer
Mega Sage

Hi @BoHyun Jung ,

Follow as below

Client Script:

 

function onLoad() {
//Type appropriate comment here, and begin script below

var ga = new GlideAjax('RITM_DueDate_WorkingDay');
ga.addParam('sysparm_name', 'getDeliveryTime');
ga.addParam('sysparm_item', g_form.getValue('cat_item'));
ga.getXML(getDeliveryTime);

function getDeliveryTime(response){
var answer = response.responseXML.documentElement.getAttribute("answer");
alert(answer);
g_form.setValue('due_date', answer);
}
}

 

Script Include

 

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

getDeliveryTime: function(){
var name = this.getParameter('sysparm_item');
var today = new GlideDateTime();
var dueDate = " ";

var gr = new GlideRecord('sc_cat_item');
gr.addQuery('sys_id', name);
gr.query();
if(gr.next()){

var deliveryTime = new GlideDateTime(gr.delivery_time);
var seconds = deliveryTime .getNumericValue() / 1000;
dueDate = today.addSeconds(seconds);
return dueDate;
}
},

type: 'RITM_DueDate_WorkingDay'
});

 

Please hit like button if my suggestion has helped you in any way.
Please mark correct if my response has solved your query.

Cheers,
Mohammed Basheer Ahmed.

Thanks,  Basheer

 

In this situation...

How do I apply Working Day in due_Date ?

Do you mean : neglect the holidays and only calculate working days?

 

Please hit like button if my suggestion has helped you in any way.
Please mark correct if my response has solved your query.

Cheers,
Mohammed Basheer Ahmed.

right.

 

when i add delivery time to due date.

if today is monday, delivery time is 5days.

due date is next week's monday.