- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-23-2014 07:25 AM
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.
I have tried setting "Net Book Value ( £)" & "Repair Cost ( £)" to decimal and integer but its makes no difference.
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-23-2014 09:13 AM
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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-23-2014 08:25 AM
If both of the fields are integer, you don't need to parse them as float. This should work by simply getting the value and comparing both. It is working for me perfectly fine. Please check if both the fields are Integer as your screen shot does not suggest so.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-23-2014 08:42 AM
Removing parseFloat now correctly alerts the numbers that are inputted but now both types are returned as object.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-23-2014 08:47 AM
If they are returned as object how are you verifying that they are returning the same value which you have input?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-23-2014 08:49 AM
By alerting the values.
alert("value\n" + typeof(value) + "\n" + value);
alert("repair\n" + typeof(repair) + "\n" + repair);

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-23-2014 08:59 AM
Try parseInt instead of parseFloat and it should work.