summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2003-09-19 12:02:45 +0000
committerivan <ivan>2003-09-19 12:02:45 +0000
commit5a9cfe0333e442472880b26398930e4160071949 (patch)
treef1987ae1fb295d474e9935fc0f53055b2a72effd
parent8141f1dde4994789cbc6298e6cfdf3050d2fbfdc (diff)
cache initial signup_info for performance
-rw-r--r--FS/FS/ClientAPI/Signup.pm8
1 files changed, 6 insertions, 2 deletions
diff --git a/FS/FS/ClientAPI/Signup.pm b/FS/FS/ClientAPI/Signup.pm
index 710c16c7a..8f6dc2949 100644
--- a/FS/FS/ClientAPI/Signup.pm
+++ b/FS/FS/ClientAPI/Signup.pm
@@ -23,7 +23,8 @@ sub signup_info {
my $conf = new FS::Conf;
- my $signup_info = {
+ use vars qw($signup_info); #cache for performance;
+ $signup_info ||= {
'cust_main_county' =>
[ map { $_->hashref } qsearch('cust_main_county', {}) ],
@@ -57,7 +58,10 @@ sub signup_info {
};
- if ( $conf->config('signup_server-default_agentnum') ) {
+ if (
+ $conf->config('signup_server-default_agentnum')
+ || !exists $signup_info->{'part_pkg'} #cache for performance
+ ) {
my $agentnum = $conf->config('signup_server-default_agentnum');
my $agent = qsearchs( 'agent', { 'agentnum' => $agentnum } )
or die "fatal: signup_server-default_agentnum $agentnum not found\n";