X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main.pm;h=38edd0493f5846b9853cdd61e32d53d79961e159;hb=8873189f93ad32da7f619959c51a35ed66e19b30;hp=906b0f37d16f209cd9f77cbbf9e14796b6ada70a;hpb=798ab9a07d08c2a302ffc7d03a66962ab6c2d5b9;p=freeside.git diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index 906b0f37d..38edd0493 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -104,7 +104,6 @@ our $custnum_display_length; #$FS::UID::callback{'FS::cust_main'} = sub { install_callback FS::UID sub { $conf = new FS::Conf; - #yes, need it for stuff below (prolly should be cached) $ignore_invalid_card = $conf->exists('allow_invalid_cards'); $default_agent_custid = $conf->exists('cust_main-default_agent_custid'); $custnum_display_length = $conf->config('cust_main-custnum-display_length'); @@ -3804,13 +3803,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; + } } }