my $recur = $cust_bill_pkg->recur || 0;
if ( $freq eq '1' ) { # monthly recurring package
- my $permonth = $part_pkg->base_recur_permonth || 0;
+ my $permonth = $part_pkg->base_recur_permonth($cust_pkg) || 0;
my ($discount) = grep { $_->months == $months }
map { $_->discount } $part_pkg->part_pkg_discount;
$self->{discounted} += $setup;
}
- if ( $discount->percent ) {
+ if ( $discount->percent > 0 ) {
$discountable += $months * $permonth;
$discountable -= ($discountable * $discount->percent / 100);
$discountable -= ($permonth - $recur); # correct for prorate
$self->{discounted} += $discountable;
}
- else {
+ elsif ( $discount->amount > 0 ) {
$discountable += $recur;
$discountable -= $discount->amount * $recur/$permonth;
$discountable += ($months - 1) * max($permonth - $discount->amount,0);
+ $self->{discounted} += $discountable;
+ }
+ else {
+ warn "discountnum ".$discount->discountnum.
+ " has no amount or percentage, ignored\n";
+ $self->{discounted} = $self->{base};
}
- $self->{discounted} += $discountable;
push @{ $self->{pkgnums} }, $cust_pkg->pkgnum;
}
else { #no discount