summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2016-03-28 17:29:37 -0700
committerIvan Kohler <ivan@freeside.biz>2016-03-28 17:29:37 -0700
commita003b8c5b495cdcd0d79440a5613bcbcca17035e (patch)
tree2b397a9310538fcdbcf6cde2c60f10f05b61e31d /FS
parentc41cc3dd17fdb3c80ccc392accec60d6cd092de5 (diff)
optimize customer list, RT#30173
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/cust_main.pm6
1 files changed, 5 insertions, 1 deletions
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm
index 565b36baa..cfcd5f43f 100644
--- a/FS/FS/cust_main.pm
+++ b/FS/FS/cust_main.pm
@@ -4297,13 +4297,17 @@ sub status { shift->cust_status(@_); }
sub cust_status {
my $self = shift;
+ return $self->hashref->{cust_status} if $self->hashref->{cust_status};
for my $status ( FS::cust_main->statuses() ) {
my $method = $status.'_sql';
my $numnum = ( my $sql = $self->$method() ) =~ s/cust_main\.custnum/?/g;
my $sth = dbh->prepare("SELECT $sql") or die dbh->errstr;
$sth->execute( ($self->custnum) x $numnum )
or die "Error executing 'SELECT $sql': ". $sth->errstr;
- return $status if $sth->fetchrow_arrayref->[0];
+ if ( $sth->fetchrow_arrayref->[0] ) {
+ $self->hashref->{cust_status} = $status;
+ return $status;
+ }
}
}