X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fdiscount_plan.pm;h=3ae44c8d417493bca7acbafddb5845426d49d3a6;hb=75e11f1d1a5ced24496b5732e290f7762403feb8;hp=081f2404503b750d4765fb3530d20a9d84621194;hpb=c5e31619e5a3071506cff19578e9e377753a96f4;p=freeside.git diff --git a/FS/FS/discount_plan.pm b/FS/FS/discount_plan.pm index 081f24045..3ae44c8d4 100644 --- a/FS/FS/discount_plan.pm +++ b/FS/FS/discount_plan.pm @@ -47,10 +47,12 @@ sub new { my ($previous_balance) = $cust_bill->previous; my $self = { + cust_bill => $cust_bill, + months => $months, pkgnums => [], base => $previous_balance || 0, # sum of charges before discount discounted => $previous_balance || 0, # sum of charges after discount - list_pkgnums => 0, # whether any packages are not discounted + list_pkgnums => undef, # whether any packages are not discounted }; foreach my $cust_bill_pkg ( $cust_bill->cust_bill_pkg ) { @@ -61,7 +63,7 @@ sub new { 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; @@ -182,6 +184,19 @@ sub pkgnums { @{ $self->{pkgnums} }; } +=item list_pkgnums + +Returns a true value if any packages listed on the invoice do not +receive a discount, either because there isn't one at the specified +term length or because they're not monthly recurring packages. + +=cut + +sub list_pkgnums { + my $self = shift; + $self->{list_pkgnums}; +} + # any others? don't think so 1;