Forum Moderators: open
var subtotal = 0.00, salestax = 0.00, taxrate = 0.00, surcharge = 0.00, salestotal = 0.00;
// get each item cost and calculate subtotal.
$('#workorder-form #sa-table-1 tbody tr input[name="wi-Cost"]').each(function (){if($(this).val() != ''){subtotal += parseFloat($(this).val());}});
// calculate surcharge.
if(subtotal == 0.00){surcharge = 0.00;}else if(subtotal <= 100.00){surcharge = 5.00;}else{surcharge = subtotal * 0.06;} // gas surcharge calculation.
taxrate = 0.00;
subtotal = (subtotal).toFixed(2);
salestax = (subtotal * (taxrate / 100)).toFixed(2);
taxrate = (taxrate).toFixed(2);
surcharge = (surcharge).toFixed(2);
salestotal = (subtotal + salestax + surcharge); //.toFixed(2);
console.log('subtotal: ',isNaN(subtotal),', salestax: ',isNaN(salestax),',taxrate: ',isNaN(taxrate),',surcharge: ',isNaN(surcharge),',salestotal: ',salestotal);
subtotal = (subtotal).toFixed(2);
salestax = (parseFloat(subtotal) * (parseFloat(taxrate) / 100)).toFixed(2);
taxrate = (taxrate).toFixed(2);
surcharge = (surcharge).toFixed(2);
salestotal = (parseFloat(subtotal) + parseFloat(salestax) + parseFloat(surcharge)).toFixed(2);
// fill sales total fields. all totals set to 2 decimal places.
$('#workorder-form input#wo-SubTotal' ).val(subtotal);
$('#workorder-form input#wo-SalesTax' ).val(salestax);
$('#workorder-form label#wo-TaxRate' ).text(taxrate+'%');
$('#workorder-form input#wo-SurCharge' ).val(surcharge);
$('#workorder-form input#wo-SalesTotal').val(salestotal);
You probably shouldn't be relying on JavaScript to do these calculations.
toFixed may give different results in different browsers.
[edited by: nelsonm at 1:33 pm (utc) on May 30, 2012]
function recalcTotals(){
var subtotal = 0.00, salestax = 0.00, taxrate = 0.00, surcharge = 0.00, salestotal = 0.00;
var taxEnabled = true, data, sdata;
// get each item cost and calculate subtotal.
$('#workorder-form #sa-table-1 tbody tr input[name="wi-Cost"]').each(function (){if($(this).val() != ''){subtotal += parseFloat($(this).val());}});
// calculate surcharge.
if(subtotal == 0.00){surcharge = 0.00;}else if(subtotal <= 100.00){surcharge = 5.00;}else{surcharge = subtotal * 0.06;} // gas surcharge calculation.
var updateForm = function() {
salestax = subtotal * (taxrate / 100);
salestotal = subtotal + salestax + surcharge;
// fill sales total fields. set all totals to 2 decimal places.
$('#workorder-form input#wo-SubTotal' ).val(subtotal.toFixed(2));
$('#workorder-form input#wo-SalesTax' ).val(salestax.toFixed(2));
$('#workorder-form label#wo-TaxRate' ).text(taxrate.toFixed(2)+'%');
$('#workorder-form input#wo-SurCharge' ).val(surcharge.toFixed(2));
$('#workorder-form input#wo-SalesTotal').val(salestotal.toFixed(2));
};
if(taxEnabled) {
data = {'_search':true, filters: '{"groupOp":"AND","rules":[{"field":"st.StateAbbrev","op":"eq","data":"'+$('#workorder-form select#cu-STID option:selected').text()+'"}]}', page:1, rows:40, searchField:'', searchOper:'', searchString:'', sidx:'st.StateAbbrev', sord:'asc'};
$.post('php/statetab-script.php', data, function(sdata){
var response = JSON.parse(sdata);
var row = response.rows['0'];
taxrate = parseFloat(row['cell']['4']);
updateForm();
});
}else{
updateForm();
}
}
[edited by: nelsonm at 1:52 pm (utc) on May 30, 2012]
You probably shouldn't be relying on JavaScript to do these calculations.
Yea... I'm discovering that javascript can be a little tricky with math.
toFixed may give different results in different browsers.
really?! Is there an example of this?