summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2011-06-27 21:27:35 +0000
committerivan <ivan>2011-06-27 21:27:35 +0000
commit2a4b095a488228d7c53201031ad67677c9c11390 (patch)
tree8e4465286041b8b27e6231f96765f593513e0793
parent002da834587858fe1761816d5127afb05e064a15 (diff)
fix over-discounting resulting in an error, RT#13450
-rw-r--r--FS/FS/part_pkg/discount_Mixin.pm3
1 files changed, 2 insertions, 1 deletions
diff --git a/FS/FS/part_pkg/discount_Mixin.pm b/FS/FS/part_pkg/discount_Mixin.pm
index a789ab309..87ec3a708 100644
--- a/FS/FS/part_pkg/discount_Mixin.pm
+++ b/FS/FS/part_pkg/discount_Mixin.pm
@@ -130,11 +130,12 @@ sub calc_discount {
&& ! defined $param->{'setup_charge'});
die "error discounting: $error" if $error;
+ $amount = min($amount, $br);
$amount *= $months;
$amount = sprintf('%.2f', $amount);
next unless $amount > 0;
-
+
# transfer remainder of discount, if any, to setup
if ( $discount->setup && $discount->amount
&& (!$discount->months || $discount->months != 1)