Issue Comparing Values

arobertson
Tera Guru

Hi All,

 

I have the following script that compares if the repair cost of a machine is greater than the value of the laptop and then returns if the laptop should be disposed or repaired.

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
     if (isLoading || newValue == '') {
           return;
     }
     
     var value = g_form.getValue('u_net_book_value');
     var repair = g_form.getValue('u_repair_cost____');
     
     if (repair > value) {
           g_form.setValue('u_dispose_ci_', 'Dispose');
     }
     else {
           g_form.setValue('u_dispose_ci_', 'Repair');
     }
}

 

The issue i have is that sometimes it's advising me to repair a laptop even though it should be disposed.

 

For example in the below screenshot. The laptop is worth £33.81 and the repair cost is £10.000. it should tell me to dispose but it's not.

Capture.PNG

 

I have tried setting "Net Book Value ( £)" & "Repair Cost ( £)" to decimal and integer but its makes no difference.

1 ACCEPTED SOLUTION

Ok. Just tried below one and it worked.


Please try this as well



var value = parseInt(g_form.getValue('u_price').toString().replace(',',''));


var repair = parseInt(g_form.getValue('u_price_2').toString().replace(',',''));



replace the variables with your variables


View solution in original post

18 REPLIES 18

parseInt now alerts both as a type of number but:



A repair cost of 100,000 is alerted as 100.


A repair cost of 10,000 is alerted as 10.



It's like any repair cost bigger than 999 starts messing up...


Ok. Just tried below one and it worked.


Please try this as well



var value = parseInt(g_form.getValue('u_price').toString().replace(',',''));


var repair = parseInt(g_form.getValue('u_price_2').toString().replace(',',''));



replace the variables with your variables


Thanks RKumar02,



That seems to have worked but can you explain how? and why it did not work in the first place?


Good to hear that. ServiceNow adds comma as separator for numbers and when you pick those values they are returns as it is(with comma). Probably this is the issue they need to fix.


Are these fields set as Currency data type?