- my $error = $cust_pkg_discount->increment_months_used($months)
- if (defined $param->{'real_pkgpart'}
- && $cust_pkg->pkgpart == $param->{'real_pkgpart'}
- && ! defined $param->{'setup_charge'});
- die "error discounting: $error" if $error;
+ if ( ! defined $param->{'setup_charge'} ) {
+ if ( $cust_pkg->pkgpart == $param->{'real_pkgpart'} ) {
+ push @{ $param->{precommit_hooks} }, sub {
+ my $error = $cust_pkg_discount->increment_months_used($months);
+ die "error discounting: $error" if $error;
+ };
+ }
+
+ $amount = min($amount, $br);
+ $amount *= $months;
+ }