summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-01-31 05:50:52 -0800
committerIvan Kohler <ivan@freeside.biz>2017-01-31 05:50:52 -0800
commit67ce801775e44289e9868593d58bfa78aed2ae45 (patch)
tree7357ea948a3c18253ee709b53667b2a5e137c2c4
parentea1f12bb5c5764f784e884fa8d7c37e5cd0b28e0 (diff)
fix perf issues displaying bulk invoices w/100k+ services, RT#74103
-rw-r--r--FS/FS/Template_Mixin.pm44
1 files changed, 26 insertions, 18 deletions
diff --git a/FS/FS/Template_Mixin.pm b/FS/FS/Template_Mixin.pm
index d7add71..5e85f8e 100644
--- a/FS/FS/Template_Mixin.pm
+++ b/FS/FS/Template_Mixin.pm
@@ -3338,19 +3338,24 @@ sub _items_cust_bill_pkg {
&& ! $cust_bill_pkg->recur_show_zero;
my @d = ();
- my $svc_label;
-
- # always pass the svc_label through to the template, even if
- # not displaying it as an ext_description
- my @svc_labels = map &{$escape_function}($_),
- $cust_pkg->h_labels_short($self->_date,
- undef,
- 'I',
- $self->conf->{locale},
- );
- $svc_label = $svc_labels[0];
-
- unless ( $cust_pkg->part_pkg->hide_svc_detail
+ my @svc_labels = ();
+ my $svc_label = '';
+
+ unless ( $part_pkg->hide_svc_detail ) {
+
+ # still pass the svc_label through to the template, even if
+ # not displaying it as an ext_description
+ @svc_labels = map &{$escape_function}($_),
+ $cust_pkg->h_labels_short($self->_date,
+ undef,
+ 'I',
+ $self->conf->{locale},
+ );
+ $svc_label = $svc_labels[0];
+
+ }
+
+ unless ( $part_pkg->hide_svc_detail
|| $cust_bill_pkg->hidden )
{
@@ -3427,6 +3432,7 @@ sub _items_cust_bill_pkg {
my @d = ();
my @seconds = (); # for display of usage info
+ my @svc_labels = ();
my $svc_label = '';
#at least until cust_bill_pkg has "past" ranges in addition to
@@ -3436,11 +3442,13 @@ sub _items_cust_bill_pkg {
push @dates, $prev->sdate if $prev;
push @dates, undef if !$prev;
- my @svc_labels = map &{$escape_function}($_),
- $cust_pkg->h_labels_short(@dates,
- 'I',
- $self->conf->{locale});
- $svc_label = $svc_labels[0];
+ unless ( $part_pkg->hide_svc_detail ) {
+ @svc_labels = map &{$escape_function}($_),
+ $cust_pkg->h_labels_short(@dates,
+ 'I',
+ $self->conf->{locale});
+ $svc_label = $svc_labels[0];
+ }
# show service labels, unless...
# the package is set not to display them