$(document).ready(function () { $('head').append(''); $('.cf-table-block').on('blur change', 'input', sumtotal); $('.cf-table-block').on('blur change', 'input', mealtotal); $(document).on('click', '.form-del-field', sumtotal); $(document).on('click', '.form-del-field', mealtotal); $('.subtotalreadonly input').attr('readonly', true); $('.totalreadonly input').attr('readonly', true); $('.advanceamount').on('change', 'input', balancetotal); function autofill() { $('.autofill').trigger('click'); } $('#q170').change(autofill); var d = new Date(); var month_name=new Array(12); month_name[0]="January" month_name[1]="February" month_name[2]="March" month_name[3]="April" month_name[4]="May" month_name[5]="June" month_name[6]="July" month_name[7]="August" month_name[8]="September" month_name[9]="October" month_name[10]="November" month_name[11]="December" var currmonth = month_name[d.getMonth()]; var curryear = d.getFullYear(); if($('.month input').val()=="") { $('.month input').val(currmonth+" "+curryear); } function sumtotal() { var sum = 0; var bf = 0; var lunch = 0, dinner = 0, hotel = 0 , mileageamount = 0; var taxis =0, travel =0, misc =0, mileage = 0,rowTotal=0,mealTotal=0, totalsubtotal=0, finaltotal= 0; var isPcard = 0; $('.cf-table-block tbody tr').each(function () { var s1=0,s2=0,s3=0,s4=0,s5=0,s6=0,s7=0, s8=0; $(this).find('.breakfast input').each(function () { s1 = parseNumber($(this).val()); bf += parseNumber($(this).val()); $('.bfsubtotal input').val(bf.toFixed(2)); }); $(this).find('.lunch input').each(function () { s2 = parseNumber($(this).val()); lunch += parseNumber($(this).val()); $('.lunchsubtotal input').val(lunch.toFixed(2)); }); $(this).find('.dinner input').each(function () { s3 = parseNumber($(this).val()); dinner += parseNumber($(this).val()); $('.dinnersubtotal input').val(dinner.toFixed(2)); }); $(this).find('.hotel input').each(function () { s4 = parseNumber($(this).val()); hotel += parseNumber($(this).val()); $('.hotelsubtotal input').val(hotel.toFixed(2)); }); $(this).find('.taxis input').each(function () { s5 =parseNumber($(this).val()); taxis += parseNumber($(this).val()); $('.taxissubtotal input').val(taxis.toFixed(2)); }); $(this).find('.travel input').each(function () { s6 = parseNumber($(this).val()); travel += parseNumber($(this).val()); $('.travelsubtotal input').val(travel.toFixed(2)); }); $(this).find('.misc input').each(function () { s7 = parseNumber($(this).val()); misc += parseNumber($(this).val()); $('.miscsubtotal input').val(misc.toFixed(2)); }); $(this).find('.mileage input').each(function () { s8 = parseNumber($(this).val()); mileage += parseNumber($(this).val()); mileageamount = (mileage * 0.565); $('.mileagesubtotal input').val(mileageamount.toFixed(2)); }); rowTotal = s1 + s2 + s3 + s4 + s5 + s6 + s7 + ( s8 * 0.565); $(this).find('.rowTotal input').val(rowTotal.toFixed(2)); mealTotal = s1+s2+s3; $(this).find('.meal input').val(mealTotal.toFixed(2)); $(this).find('.rowTotal input').each(function () { totalsubtotal += parseNumber($(this).val()); $('.totalsubtotal input').val(totalsubtotal.toFixed(2)); }); var bfpcard = 0,lunchpcard = 0, dinnerpcard = 0, hotelpcard = 0, taxispcard = 0, travelpcard = 0,miscpcard = 0; bfpcard = parseNumber($('.bfpcard input').val()); lunchpcard = parseNumber($('.lunchpcard input').val()); dinnerpcard = parseNumber($('.dinnerpcard input').val()); hotelpcard = parseNumber($('.hotelpcard input').val()); taxispcard = parseNumber($('.taxispcard input').val()) travelpcard = parseNumber($('.travelpcard input').val()); miscpcard = parseNumber($('.miscpcard input').val()); if(bfpcard > 0||lunchpcard >0||dinnerpcard>0||hotelpcard>0||taxispcard>0||travelpcard>0||miscpcard>0) { isPcard = 1; } var pcardtotal = bfpcard + lunchpcard + dinnerpcard + hotelpcard + taxispcard + travelpcard + miscpcard; $(this).find('.totalpcard input').val(pcardtotal.toFixed(2)); finaltotal = totalsubtotal - pcardtotal $('.bftotal input').val((bf - bfpcard).toFixed(2)); $('.lunchtotal input').val((lunch -lunchpcard).toFixed(2)); $('.dinnertotal input').val((dinner -dinnerpcard).toFixed(2)); $('.hoteltotal input').val((hotel - hotelpcard).toFixed(2)); $('.taxistotal input').val((taxis - taxispcard).toFixed(2)); $('.traveltotal input').val((travel - travelpcard).toFixed(2)); $('.misctotal input').val((misc - miscpcard).toFixed(2)); $('.mileagetotal input').val(mileageamount.toFixed(2)); $('.finaltotal input').val (finaltotal.toFixed(2)); $('.allowableexpense input').val(finaltotal.toFixed(2)); $('.balanceemployee input').val(finaltotal.toFixed(2)); $('#q197 input').val(isPcard); }); } function balancetotal() { var expense = parseNumber($('.allowableexpense input').val()); var advance = parseNumber($('.advanceamount input').val()); if(advance > 0) { if(advance > expense) { $('.balanceemployee input').val(''); $('.balance input').val((advance - expense).toFixed(2)); } else { $('.balance input').val(''); $('.balanceemployee input').val((expense - advance).toFixed(2)); } } else if(advance == 0 || advance == null || advance == '') { var exp = parseNumber($('.allowableexpense input').val()); $('.balanceemployee input').val(exp.toFixed(2)); $('.balance input').val(''); } } function mealtotal() { var meal = 0, num=0; $('.meal input').each(function() { meal += parseNumber($(this).val()); if(parseNumber($(this).val()) > 0) { num += 1; } }); meal = meal/num; $('.avg input').val(meal.toFixed(2)); } function parseNumber(n) { var f = parseFloat(n); //Convert to float number. return isNaN(f) ? 0 : f; //treat invalid input as 0; } });