diff options
author | Ivan Kohler <ivan@freeside.biz> | 2013-07-08 14:09:36 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2013-07-08 14:09:36 -0700 |
commit | d4bd6b057accfd69731168873d57f5d0e652cf43 (patch) | |
tree | 59f52a400f3295c8398974467fc57c72b37369b3 | |
parent | 3d0a1bb06b895c5be6e3f0517d355442a6b1e125 (diff) |
performance improvement for packages with many services, patch from jeff finucane, RT#23900
-rw-r--r-- | FS/FS/cust_pkg.pm | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm index ddfab5dcb..398dce134 100644 --- a/FS/FS/cust_pkg.pm +++ b/FS/FS/cust_pkg.pm @@ -2485,11 +2485,13 @@ sub _sort_cust_svc { my $sort = sub ($$) { my ($a, $b) = @_; $b->[1] cmp $a->[1] or $a->[2] <=> $b->[2] }; + my %pkg_svc = map { $_->svcpart => $_ } + qsearch( 'pkg_svc', { 'pkgpart' => $self->pkgpart } ); + map { $_->[0] } sort $sort map { - my $pkg_svc = qsearchs( 'pkg_svc', { 'pkgpart' => $self->pkgpart, - 'svcpart' => $_->svcpart } ); + my $pkg_svc = $pkg_svc{ $_->svcpart } || ''; [ $_, $pkg_svc ? $pkg_svc->primary_svc : '', $pkg_svc ? $pkg_svc->quantity : 0, |