summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2011-11-29 01:23:16 +0000
committerivan <ivan>2011-11-29 01:23:16 +0000
commit8dc972c612f36b3c8155914105f1173f93efcc5a (patch)
treeeed8fcf681f683efbf289a23217fe2b6c4b607a1
parent7109bfc5e06bbabb3d61c6298ce59cf287541667 (diff)
also supress sending invoices w/selfservice-hide_invoices-taxclass, RT#15327
-rw-r--r--FS/FS/ClientAPI/MyAccount.pm11
-rw-r--r--FS/FS/Conf.pm2
-rw-r--r--FS/FS/cust_bill.pm22
3 files changed, 24 insertions, 11 deletions
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm
index 71e47b5..2530725 100644
--- a/FS/FS/ClientAPI/MyAccount.pm
+++ b/FS/FS/ClientAPI/MyAccount.pm
@@ -1248,16 +1248,7 @@ sub list_invoices {
my @legacy_cust_bill = $cust_main->legacy_cust_bill;
- my @cust_bill = $cust_main->cust_bill;
-
- my $hide_taxclass = $conf->config('selfservice-hide_invoices-taxclass');
- if ( $hide_taxclass ) {
- @cust_bill = grep { my @cust_bill_pkg = $_->cust_bill_pkg;
- my @part_pkg= grep $_, map $_->part_pkg, @cust_bill_pkg;
- grep { $_->taxclass ne $hide_taxclass } @part_pkg;
- }
- @cust_bill;
- }
+ my @cust_bill = grep ! $_->hide, $cust_main->cust_bill;
my $balance = 0;
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index d4983ae..a3fabc7 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -2494,7 +2494,7 @@ and customer address. Include units.',
{
'key' => 'selfservice-hide_invoices-taxclass',
'section' => 'self-service',
- 'description' => 'Hide invoices with only this package tax class from self-service. Typically set to something like "Previous balance" and used when importing legacy invoices into legacy_cust_bill.',
+ 'description' => 'Hide invoices with only this package tax class from self-service and supress sending (emailing, printing, faxing) them. Typically set to something like "Previous balance" and used when importing legacy invoices into legacy_cust_bill.',
'type' => 'text',
},
diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm
index d9a5e42..79c78d8 100644
--- a/FS/FS/cust_bill.pm
+++ b/FS/FS/cust_bill.pm
@@ -796,6 +796,23 @@ sub owed_pkgnum {
$balance;
}
+=item hide
+
+Returns true if this invoice should be hidden. See the
+selfservice-hide_invoices-taxclass configuraiton setting.
+
+=cut
+
+sub hide {
+ my $self = shift;
+ my $conf = $self->conf;
+ my $hide_taxclass = $conf->config('selfservice-hide_invoices-taxclass')
+ or return '';
+ my @cust_bill_pkg = $self->cust_bill_pkg;
+ my @part_pkg = grep $_, map $_->part_pkg, @cust_bill_pkg;
+ ! grep { $_->taxclass ne $hide_taxclass } @part_pkg;
+}
+
=item apply_payments_and_credits [ OPTION => VALUE ... ]
Applies unapplied payments and credits to this invoice.
@@ -1335,6 +1352,7 @@ sub queueable_email {
#sub email_invoice {
sub email {
my $self = shift;
+ return if $self->hide;
my $conf = $self->conf;
my( $template, $invoice_from, $notice_name, $no_coupon );
@@ -1453,7 +1471,9 @@ I<notice_name>, if specified, overrides "Invoice" as the name of the sent docume
#sub print_invoice {
sub print {
my $self = shift;
+ return if $self->hide;
my $conf = $self->conf;
+
my( $template, $notice_name );
if ( ref($_[0]) ) {
my $opt = shift;
@@ -1493,7 +1513,9 @@ I<notice_name>, if specified, overrides "Invoice" as the name of the sent docume
sub fax_invoice {
my $self = shift;
+ return if $self->hide;
my $conf = $self->conf;
+
my( $template, $notice_name );
if ( ref($_[0]) ) {
my $opt = shift;