From: ivan Date: Tue, 29 Nov 2011 01:23:16 +0000 (+0000) Subject: also supress sending invoices w/selfservice-hide_invoices-taxclass, RT#15327 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=8dc972c612f36b3c8155914105f1173f93efcc5a also supress sending invoices w/selfservice-hide_invoices-taxclass, RT#15327 --- diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 71e47b567..2530725ef 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 d4983ae48..a3fabc7d4 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 d9a5e42fb..79c78d859 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, 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, 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;