summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2010-10-11 10:36:20 +0000
committerivan <ivan>2010-10-11 10:36:20 +0000
commit001393ff80427429f376f7bf38c42d5280d98dc5 (patch)
tree3bd6e28faf4c1ba7f122f9b8d2494b613e40c452
parent5f3c29a2151a7054c6dd492bedcc1891e24d7620 (diff)
optimization to speed up new customer page when there's lots of agents, RT#10184
-rw-r--r--FS/FS/agent_type.pm14
1 files changed, 9 insertions, 5 deletions
diff --git a/FS/FS/agent_type.pm b/FS/FS/agent_type.pm
index 2660bb4..5d6b94e 100644
--- a/FS/FS/agent_type.pm
+++ b/FS/FS/agent_type.pm
@@ -2,7 +2,7 @@ package FS::agent_type;
use strict;
use vars qw( @ISA );
-use FS::Record qw( qsearch );
+use FS::Record qw( qsearch dbh );
use FS::m2m_Common;
use FS::agent;
use FS::type_pkgs;
@@ -119,9 +119,7 @@ L<FS::part_pkg>.
sub pkgpart_hashref {
my $self = shift;
my %pkgpart;
- #$pkgpart{$_}++ foreach $self->pkgpart;
- # not compatible w/5.004_04 (fixed in 5.004_05)
- foreach ( $self->pkgpart ) { $pkgpart{$_}++; }
+ $pkgpart{$_}++ foreach $self->pkgpart;
\%pkgpart;
}
@@ -166,7 +164,13 @@ agent type.
sub pkgpart {
my $self = shift;
- map $_->pkgpart, $self->type_pkgs;
+
+ #map $_->pkgpart, $self->type_pkgs;
+
+ my $sql = 'SELECT pkgpart FROM type_pkgs WHERE typenum = ?';
+ my $sth = dbh->prepare($sql) or die dbh->errstr;
+ $sth->execute( $self->typenum ) or die $sth->errstr;
+ map $_->[0], @{ $sth->fetchall_arrayref };
}
=back