Link to home
Start Free TrialLog in
Avatar of pdheady
pdheady

asked on

Javascript calculation

I have the provider_payment field set to auto-calculation, however I want to override this and be able to manually enter the provider_payment amount IF the broker_name is set to 0, or null OR it can be done by checking if the broker_discount is 0.0000 or null.


<script type="text/javascript">
var prevSelect=0;
function showDivSelect(divID) {
        var rates_1=[0.0000, 0.0100, 0.0250, 0.0761, 0.000]; 
        if( parseInt(divID) != 0 )
        document.getElementById("promo_rate_span").style.display="";
        else
        document.getElementById("promo_rate_span").style.display="none"; 
    document.getElementById("promo_rate").value=rates_1[divID].toFixed(4);
calculate_worksheet()
} 
 
function showDivSelect2(divID) {
        var rates_2=[0.0000, 0.0600, 0.0600, 0.0600, 0.0600]; 
        if( parseInt(divID) != 0 )
        document.getElementById("broker_discount_rate_span").style.display="";
        else
        document.getElementById("broker_discount_rate_span").style.display="none"; 
    document.getElementById("broker_discount_rate").value=rates_2[divID].toFixed(4);
calculate_worksheet()
} 
 
 
 
 
function two_decimals(number) {
 
      var my_number = String(number);
      
      if(my_number.indexOf('.') < 1) {
            my_number += ".00";
            return my_number;
      } 
      if((my_number.length == my_number.indexOf('.') + 2) && (my_number.indexOf('.') != 0)) {
            my_number += "0";
            return my_number;
      }
      if((my_number.length > my_number.indexOf('.') + 2) && (my_number.indexOf('.') != 0)) {
            my_number = parseFloat(my_number);
            return Math.round(my_number*100)/100;
      }
      return my_number;
}
 
function calculate_worksheet() {
      
      //Promo Amount
      var promo_amount = parseFloat(document.getElementById('charge_auth_amount').value) * parseFloat(document.getElementById('promo_rate').value); 
      document.getElementById('promo_amount').value = two_decimals(promo_amount);      
      if( isNaN(document.getElementById('promo_amount').value) ) { document.getElementById('promo_amount').value = '0.00'; }
 
      //Sub Total Amount
      var sub_total_amount = parseFloat(document.getElementById('charge_auth_amount').value) - parseFloat(document.getElementById('charge_auth_amount').value) * parseFloat(document.getElementById('provider_discount').value); 
      document.getElementById('sub_total_amount').value = two_decimals(sub_total_amount);   
      if( isNaN(document.getElementById('sub_total_amount').value) ) { document.getElementById('sub_total_amount').value = '0.00'; }
 
      //Provider Payment
      var provider_payment = parseFloat(document.getElementById('sub_total_amount').value) - parseFloat(document.getElementById('promo_amount').value); 
      document.getElementById('provider_payment').value = two_decimals(provider_payment);      
      if( isNaN(document.getElementById('provider_payment').value) ) { document.getElementById('provider_payment').value = '0.00'; }     
       
      //mcf Amount
      var mcf_amount = parseFloat(document.getElementById('charge_auth_amount').value) * parseFloat(document.getElementById('broker_discount_rate').value) - parseFloat(document.getElementById('promo_amount').value); 
      document.getElementById('mcf_amount').value = two_decimals(mcf_amount);      
      if( isNaN(document.getElementById('mcf_amount').value) ) { document.getElementById('mcf_amount').value = '0.00'; }
       
      //Broker Amount
      var broker_amount = parseFloat(document.getElementById('sub_total_amount').value) - parseFloat(document.getElementById('provider_payment').value) - parseFloat(document.getElementById('promo_amount').value); 
      document.getElementById('broker_amount').value = two_decimals(broker_amount);       
      if( isNaN(document.getElementById('broker_amount').value) ) { document.getElementById('broker_amount').value = '0.00'; }  
 
}
 
</script>
 
<body onLoad="javascript:calculate_worksheet();">
 
<Table>
 
<tr>
<td id="label">Broker Deal</td>
<td>
<span style="float: left">
<SELECT id="rates_2" NAME="broker_name" onchange="showDivSelect2(this.value);">
<OPTION VALUE="0" <? if ($broker_name == "" || $broker_name == 0) { echo "selected"; } ?>>None</option>
<OPTION VALUE="1" <? if ($broker_name == 1) { echo "selected"; } ?>>MRP</option>
<OPTION VALUE="2" <? if ($broker_name == 2) { echo "selected"; } ?>>Surgery Loans</option>
<OPTION VALUE="3" <? if ($broker_name == 3) { echo "selected"; } ?>>Acquired</option>
<OPTION VALUE="4" <? if ($broker_name == 4) { echo "selected"; } ?>>Surgery Finance Center (TSFC)</option>
<OPTION VALUE="5" <? if ($broker_name == 5) { echo "selected"; } ?>>Other</option>
</SELECT>
</span>			
</td>
</tr>
 
<tr>
<td id="label">Broker Discount</td>
<td>
<span id="broker_discount_rate_span" style="<? if ($broker_name == 0 || $broker_name == "" || $broker_name == 1 || $broker_name == 2 || $broker_name == 3 || $broker_name == 4 || $broker_name == 5) { echo "display: visible"; } else { echo "display:none"; } ?>; float: left">
<input type="text" name="broker_discount_rate" value="<? if ($broker_name == 0 || $broker_name == "") { echo "0.0000"; } elseif ($broker_name == 1) { echo "0.0600"; } elseif ($broker_name == 2) { echo "0.0600"; } elseif ($broker_name == 3) { echo "0.0600"; } elseif ($broker_name == 4) { echo "0.0600"; } elseif ($broker_name == 5) { echo "0.0600"; }?>" size="15" id="broker_discount_rate" onBlur="javascript:calculate_worksheet();">
</span> 
 </td>
</tr>
 
<tr>
<td id="label">Provider Payment</td>
<td><input type="text" name="provider_payment" value="<?=$provider_payment?>" size="10" id="provider_payment" onBlur="javascript:calculate_worksheet();"></td>
</tr>	 
 
</body>

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of HonorGod
HonorGod
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of pdheady
pdheady

ASKER

Thanks forgot to close this out.
You are very welcome.  Thanks for the grade and points.

Good luck & have a great day