sub calc_discount {
my($self, $cust_pkg, $sdate, $details, $param ) = @_;
- my $br = $self->base_recur($cust_pkg, $sdate);
+ my $br = $self->base_recur_permonth($cust_pkg, $sdate);
$br += $param->{'override_charges'} if $param->{'override_charges'};
my $tot_discount = 0;
$param->{'discount_left_recur'}{$discount->discountnum} = 0;
$months = 1;
}
+ elsif ( $discount->setup && $discount->months == 1 && $discount->amount ) {
+ next;
+ }
my $error = $cust_pkg_discount->increment_months_used($months)
if (defined $param->{'real_pkgpart'}
&& ! 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)