diff options
author | ivan <ivan> | 2010-10-13 20:20:34 +0000 |
---|---|---|
committer | ivan <ivan> | 2010-10-13 20:20:34 +0000 |
commit | a912e1a940a5d168ecb603cf025ede6dd63aae43 (patch) | |
tree | fa75e171b8e3eb3d421e204fb5e71537768d4d00 /FS/FS/cust_main/Packages.pm | |
parent | eb8d9935daec7013b9bc66a7e63c3e06d249125e (diff) |
fix late fee held for next invoice triggering immediately if next bill dates have been manually added to one-time charges, RT#10192
Diffstat (limited to 'FS/FS/cust_main/Packages.pm')
-rw-r--r-- | FS/FS/cust_main/Packages.pm | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/FS/FS/cust_main/Packages.pm b/FS/FS/cust_main/Packages.pm index 316ae37..ab7bde3 100644 --- a/FS/FS/cust_main/Packages.pm +++ b/FS/FS/cust_main/Packages.pm @@ -385,6 +385,21 @@ sub unsuspended_pkgs { grep { ! $_->susp } $self->ncancelled_pkgs; } +=item active_pkgs + +Returns all unsuspended (and uncancelled) packages (see L<FS::cust_pkg>) for +this customer that are active (recurring). + +=cut + +sub active_pkgs { + my $self = shift; + grep { my $part_pkg = $_->part_pkg; + $part_pkg->freq ne '' && $part_pkg->freq ne '0'; + } + $self->unsuspended_pkgs; +} + =item next_bill_date Returns the next date this customer will be billed, as a UNIX timestamp, or @@ -394,7 +409,7 @@ undef if no active package has a next bill date. sub next_bill_date { my $self = shift; - min( map $_->get('bill'), grep $_->get('bill'), $self->unsuspended_pkgs ); + min( map $_->get('bill'), grep $_->get('bill'), $self->active_pkgs ); } =item num_cancelled_pkgs |