summaryrefslogtreecommitdiff
path: root/FS/FS/cust_main
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2016-06-06 10:20:52 -0700
committerIvan Kohler <ivan@freeside.biz>2016-06-06 10:20:52 -0700
commite3f0183408387878d3c6989895a8bcb65e395284 (patch)
tree1eb5b27b8707954dfdf32a11fdf978429eccc57f /FS/FS/cust_main
parent9c2854f48fb79a5534bbb35c4b7c12b2e6acc0a4 (diff)
missing piece of #42043
Diffstat (limited to 'FS/FS/cust_main')
-rw-r--r--FS/FS/cust_main/Packages.pm20
1 files changed, 20 insertions, 0 deletions
diff --git a/FS/FS/cust_main/Packages.pm b/FS/FS/cust_main/Packages.pm
index fc5927c..89d25d2 100644
--- a/FS/FS/cust_main/Packages.pm
+++ b/FS/FS/cust_main/Packages.pm
@@ -500,6 +500,26 @@ sub ncancelled_pkgs {
}
+=item cancelled_pkgs [ EXTRA_QSEARCH_PARAMS_HASHREF ]
+
+Returns all cancelled packages (see L<FS::cust_pkg>) for this customer.
+
+=cut
+
+sub cancelled_pkgs {
+ my $self = shift;
+ my $extra_qsearch = ref($_[0]) ? shift : { @_ };
+
+ return $self->num_cancelled_pkgs($extra_qsearch) unless wantarray;
+
+ $extra_qsearch->{'extra_sql'} .=
+ ' AND cust_pkg.cancel IS NOT NULL AND cust_pkg.cancel > 0 ';
+
+ local($skip_label_sort) = 1 if $extra_qsearch->{skip_label_sort};
+
+ sort sort_packages $self->_cust_pkg($extra_qsearch);
+}
+
sub _cust_pkg {
my $self = shift;
my $extra_qsearch = ref($_[0]) ? shift : {};