summaryrefslogtreecommitdiff
path: root/FS/FS/cust_main/Packages.pm
diff options
context:
space:
mode:
authorivan <ivan>2010-10-13 20:20:34 +0000
committerivan <ivan>2010-10-13 20:20:34 +0000
commita912e1a940a5d168ecb603cf025ede6dd63aae43 (patch)
treefa75e171b8e3eb3d421e204fb5e71537768d4d00 /FS/FS/cust_main/Packages.pm
parenteb8d9935daec7013b9bc66a7e63c3e06d249125e (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.pm17
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