From 1c6508abd06f10bdd8cf8104a8da3ce02945d351 Mon Sep 17 00:00:00 2001 From: Jonathan Rosenbaum Date: Wed, 2 Aug 2017 20:16:17 +0000 Subject: [PATCH] This corrects the math for all situations. --- js/transaction.js | 40 +++++++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/js/transaction.js b/js/transaction.js index 5bb86da..bd00ec4 100644 --- a/js/transaction.js +++ b/js/transaction.js @@ -626,6 +626,8 @@ $(function() { var redeemable_value; if ($("#transaction_type").val() !== "Stand Time") { redeemable_value = obj.volunteer_hour_value * spinner_value; + console.log("HHU " + obj.volunteer_hour_value); + console.log("HHU2 " + spinner_value); } else { redeemable_value = obj.stand_time_value * spinner_value } @@ -642,7 +644,7 @@ $(function() { // no volunteer_hours_redeemed or still less than the allowable sweat_equity_hours if (isNaN(sweat_equity_hours) || volunteer_hours_redeemed < sweat_equity_hours) { - console.log(sweat_equity_hours); + // only 1 bike per year earned with sweat_equity_hours if (price >= redeemable_value) { @@ -653,16 +655,38 @@ $(function() { // discount is now applied if (sweat_equity_limit > obj.sweat_equity_limit) { - var value_to_apply_discount = price - sweat_equity_limit; - var difference = price - obj.sweat_equity_limit; - var hours_applied_with_value = difference - value_to_apply_discount; - - redeemable_value = value_to_apply_discount + (difference - (hours_applied_with_value * (discount / 100).toFixed(2))); - + var value_to_apply_discount, difference, hours_applied_with_value; + + // bug final value is fine , but 12 is being deducted or added per hour + // are maxable redeemable hours less than price + var max_discount_price = obj.current_year_volunteer_hours * obj.volunteer_hour_value; + var max_discount_price_difference; + + if (price > max_discount_price) { + max_discount_price_difference = price - max_discount_price; + console.log("we have to do things differently " + max_discount_price_difference); + value_to_apply_discount = (price - max_discount_price_difference) - sweat_equity_limit; + difference = (price - max_discount_price_difference) - obj.sweat_equity_limit; + hours_applied_with_value = difference - value_to_apply_discount; + + console.log(max_discount_price_difference + " + ( " + value_to_apply_discount + " + " + " ( " + difference + " - (" + hours_applied_with_value + " * ." + discount + ") )"); + redeemable_value = (max_discount_price_difference + difference) - + (hours_applied_with_value * (discount / 100).toFixed(2)); + } else { + difference = price - obj.sweat_equity_limit; + hours_applied_with_value = difference - value_to_apply_discount; + + console.log(value_to_apply_discount + " + " + " ( " + difference + " - (" + hours_applied_with_value + " * ." + discount + ") )"); + redeemable_value = difference - (hours_applied_with_value * (discount / 100).toFixed(2)); + } + + console.log("HERE1"); amount.val(redeemable_value); + // volunteer hours redeemed } else { + console.log("HERE2 " + redeemable_value); amount.val(price - redeemable_value); } @@ -854,7 +878,9 @@ $(function() { if ($(this).spinner("value") > obj.current_year_volunteer_hours) { spinner_value = obj.current_year_volunteer_hours; } else { + // in some cases this is 1 if value is greater than price like 16 * 8 = 128 > 120 spinner_value = $(this).spinner("value"); + console.log("weird " + spinner_value); } console.log("spinner value " + spinner_value);