validation for last date of loan

lakshman nalla
Tera Contributor

I have below requirement, on change of tenure in months -- last date of loan should auto populate. It should take the date of after tenure in months from the start date of loan. can someone help me how to resolve this. 

1 ACCEPTED SOLUTION

Tai Vu
Kilo Patron
Kilo Patron

Hi @lakshman nalla 

Let's try the below approach.

1. Create a ClientCallable Script Include (AJAX)

 

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

	getEndDateOfLoan: function(){
		var start_date = this.getParameter('sysparm_start_date');
		var months = this.getParameter('sysparm_months');
		var gdt = new GlideDateTime(start_date);
		gdt.addMonthsUTC(months);
		return gdt.getDate();
	},

    type: 'CLCatalogItemUtilAJAX'
});

 

 

2. Create OnChange Client Script on the variable Month

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading) {
        return;
    }

    if (newValue === '') {
        g_form.clearValue('end_date_of_loan'); //replace your variable name
    }

    var ga = new GlideAjax('CLCatalogItemUtilAJAX');
    ga.addParam('sysparm_name', 'getEndDateOfLoan');
    ga.addParam('sysparm_start_date', g_form.getValue('start_date_of_loan')); //replace your variable name
    ga.addParam('sysparm_months', newValue);
    ga.getXMLAnswer(function(response) {
        if(response){
			g_form.setValue('end_date_of_loan', response); //replace your variable name
		}
    });

}

 

 

Let me know if it works for you.

 

Cheers,

Tai Vu

View solution in original post

1 REPLY 1

Tai Vu
Kilo Patron
Kilo Patron

Hi @lakshman nalla 

Let's try the below approach.

1. Create a ClientCallable Script Include (AJAX)

 

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

	getEndDateOfLoan: function(){
		var start_date = this.getParameter('sysparm_start_date');
		var months = this.getParameter('sysparm_months');
		var gdt = new GlideDateTime(start_date);
		gdt.addMonthsUTC(months);
		return gdt.getDate();
	},

    type: 'CLCatalogItemUtilAJAX'
});

 

 

2. Create OnChange Client Script on the variable Month

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading) {
        return;
    }

    if (newValue === '') {
        g_form.clearValue('end_date_of_loan'); //replace your variable name
    }

    var ga = new GlideAjax('CLCatalogItemUtilAJAX');
    ga.addParam('sysparm_name', 'getEndDateOfLoan');
    ga.addParam('sysparm_start_date', g_form.getValue('start_date_of_loan')); //replace your variable name
    ga.addParam('sysparm_months', newValue);
    ga.getXMLAnswer(function(response) {
        if(response){
			g_form.setValue('end_date_of_loan', response); //replace your variable name
		}
    });

}

 

 

Let me know if it works for you.

 

Cheers,

Tai Vu