diff options
author | ivan <ivan> | 2011-07-26 01:25:29 +0000 |
---|---|---|
committer | ivan <ivan> | 2011-07-26 01:25:29 +0000 |
commit | a10881a4daca69112f2bd18bce0c57b934a6fefa (patch) | |
tree | 30b4c9050c52f6bdaa6c4eaa8928e68ae5116b4c /FS | |
parent | 5e4b86a7f3d7dfecc307bb96b3ea3ca7abb468ae (diff) |
fix late fee holding until next invoice w/suspended packages set to bill while suspended, RT#13638
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/cust_main/Packages.pm | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/FS/FS/cust_main/Packages.pm b/FS/FS/cust_main/Packages.pm index 4b44fdd5d..c75b99f10 100644 --- a/FS/FS/cust_main/Packages.pm +++ b/FS/FS/cust_main/Packages.pm @@ -395,16 +395,32 @@ sub active_pkgs { $self->unsuspended_pkgs; } +=item billing_pkgs + +Returns active packages, and also any suspended packages which are set to +continue billing while suspended. + +=cut + +sub billing_pkgs { + my $self = shift; + grep { my $part_pkg = $_->part_pkg; + $part_pkg->freq ne '' && $part_pkg->freq ne '0' + && ( ! $_->susp || $part_pkg->option('suspend_bill', 1) ); + } + $self->ncancelled_pkgs; +} + =item next_bill_date Returns the next date this customer will be billed, as a UNIX timestamp, or -undef if no active package has a next bill date. +undef if no billing package has a next bill date. =cut sub next_bill_date { my $self = shift; - min( map $_->get('bill'), grep $_->get('bill'), $self->active_pkgs ); + min( map $_->get('bill'), grep $_->get('bill'), $self->billing_pkgs ); } =item num_cancelled_pkgs |