diff options
author | ivan <ivan> | 2011-06-27 21:27:35 +0000 |
---|---|---|
committer | ivan <ivan> | 2011-06-27 21:27:35 +0000 |
commit | 2a4b095a488228d7c53201031ad67677c9c11390 (patch) | |
tree | 8e4465286041b8b27e6231f96765f593513e0793 | |
parent | 002da834587858fe1761816d5127afb05e064a15 (diff) |
fix over-discounting resulting in an error, RT#13450
-rw-r--r-- | FS/FS/part_pkg/discount_Mixin.pm | 3 |
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) |