X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main%2FPackages.pm;h=ab7bde3163b063e0300c094ef4b8ade787f5c9ad;hb=aaf8baf3662e16e9414de236a39f8801a8c41b01;hp=103b9435b13f97314f300ff6d9596f3909746016;hpb=5c9d03cf63378dbca8fc062ed25e781f9c7bb61b;p=freeside.git diff --git a/FS/FS/cust_main/Packages.pm b/FS/FS/cust_main/Packages.pm index 103b9435b..ab7bde316 100644 --- a/FS/FS/cust_main/Packages.pm +++ b/FS/FS/cust_main/Packages.pm @@ -69,7 +69,7 @@ sub order_pkg { my $self = shift; my $opt = ref($_[0]) ? shift : { @_ }; - local($DEBUG) = $cust_main::DEBUG if $cust_main::DEBUG > $DEBUG; + local($DEBUG) = $FS::cust_main::DEBUG if $FS::cust_main::DEBUG > $DEBUG; warn "$me order_pkg called with options ". join(', ', map { "$_: $opt->{$_}" } keys %$opt ). "\n" @@ -189,7 +189,7 @@ sub order_pkgs { my %options = @_; $seconds_ref ||= $options{'seconds_ref'}; - local($DEBUG) = $cust_main::DEBUG if $cust_main::DEBUG > $DEBUG; + local($DEBUG) = $FS::cust_main::DEBUG if $FS::cust_main::DEBUG > $DEBUG; warn "$me order_pkgs called with options ". join(', ', map { "$_: $options{$_}" } keys %options ). "\n" @@ -271,7 +271,7 @@ sub ncancelled_pkgs { my $self = shift; my $extra_qsearch = ref($_[0]) ? shift : {}; - local($DEBUG) = $cust_main::DEBUG if $cust_main::DEBUG > $DEBUG; + local($DEBUG) = $FS::cust_main::DEBUG if $FS::cust_main::DEBUG > $DEBUG; return $self->num_ncancelled_pkgs unless wantarray; @@ -385,6 +385,21 @@ sub unsuspended_pkgs { grep { ! $_->susp } $self->ncancelled_pkgs; } +=item active_pkgs + +Returns all unsuspended (and uncancelled) packages (see L) 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