summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2011-07-26 01:25:27 +0000
committerivan <ivan>2011-07-26 01:25:27 +0000
commit31c11989cb384c8e5eac83bebac5d00519b217d9 (patch)
tree6f7ac9f78edf05df407f9c4fd083bb5f1fc4dd0b
parent1b7e75938c52dd285ca95c56b56747c2ca001e3f (diff)
fix late fee holding until next invoice w/suspended packages set to bill while suspended, RT#13638
-rw-r--r--FS/FS/cust_main/Packages.pm20
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