Trying to Calculate Days remaining

jasonjones
Giga Contributor

All,

I'm trying to create a client script or business rule that calculates the difference of a Warranty Expiration Date and the current date to determine a "Number of Days remaining" on the warranty.

find_real_file.png

I found this script in community to modify, but I'm still missing something.

function onChange(control, oldValue, newValue, isLoading) {
    var strt = g_form.getValue(warranty_expiration);  //set this as current warranty date
    var end = new Date(now.getFullYear(), now.getMonth(), no.getDate());  //This retrieves the current date
    var ajax = new GlideAjax('AjaxDurCalc');
    ajax.addParam('sysparm_name','durCalc');
    ajax.addParam('sysparm_strt',strt);
    ajax.addParam('sysparm_end',end);
    ajax.getXMLWait();
    var answer = ajax.getAnswer();
    g_form.setValue('u_days_of_remaining_warranty', answer);
}

Below is an error that is received.

find_real_file.png

Any help is appreciated.

Jason

41 REPLIES 41

Still nothing.

Prateek kumar
Mega Sage

Hey jason

Here you go, Before BR

(function executeRule(current, previous /*null when async*/) {

var start = new GlideDateTime();
var end = new GlideDateTime();
end.setValue(current.warranty_expiration);
// Duration in days
var dur = GlideDateTime.subtract(start, end);

current.u_days_remaining_on_warranty = dur.getDayPart();

})(current, previous);


Please mark my response as correct and helpful if it helped solved your question.
-Thanks

I quickly copied and pasted this and no results either.

find_real_file.png

I thought you are using String field?


Please mark my response as correct and helpful if it helped solved your question.
-Thanks

jasonjones
Giga Contributor

Mike indicated that I need to use Duration field instead of String.