[freeside-commits] branch master updated. 798ab9a07d08c2a302ffc7d03a66962ab6c2d5b9

Ivan ivan at 420.am
Mon Mar 21 13:35:19 PDT 2016


The branch, master has been updated
       via  798ab9a07d08c2a302ffc7d03a66962ab6c2d5b9 (commit)
      from  156e74067cc8723e187dfd9c5aa7ff956306fe01 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 798ab9a07d08c2a302ffc7d03a66962ab6c2d5b9
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Mar 21 13:35:17 2016 -0700

    optimize customer list, RT#20173

diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index 032b832..e2e321c 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -4458,7 +4458,7 @@ and customer address. Include units.',
   {
     'key'         => 'cust_main-default_agent_custid',
     'section'     => 'UI',
-    'description' => 'Display the agent_custid field when available instead of the custnum field.',
+    'description' => 'Display the agent_custid field when available instead of the custnum field.  Restart Apache after changing.',
     'type'        => 'checkbox',
   },
 
@@ -4495,19 +4495,9 @@ and customer address. Include units.',
   },
 
   {
-    'key'         => 'cust_main-custnum-display_special',
-    'section'     => 'UI',
-    'description' => 'Use this customer number prefix format',
-    'type'        => 'select',
-    'select_hash' => [ '' => '',
-                       'CoStAg' => 'CoStAg (country, state, agent name or display_prefix)',
-                       'CoStCl' => 'CoStCl (country, state, class name)' ],
-  },
-
-  {
     'key'         => 'cust_main-custnum-display_length',
     'section'     => 'UI',
-    'description' => 'Zero fill the customer number to this many digits for display purposes.',
+    'description' => 'Zero fill the customer number to this many digits for display purposes.  Restart Apache after changing.',
     'type'        => 'text',
   },
 
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm
index 5f77ab5..906b0f3 100644
--- a/FS/FS/cust_main.pm
+++ b/FS/FS/cust_main.pm
@@ -98,12 +98,16 @@ our @encrypted_fields = ('payinfo', 'paycvv');
 sub nohistory_fields { ('payinfo', 'paycvv'); }
 
 our $conf;
+our $default_agent_custid;
+our $custnum_display_length;
 #ask FS::UID to run this stuff for us later
 #$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');
+  $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');
 };
 
 sub _cache {
@@ -3584,34 +3588,16 @@ cust_main-default_agent_custid is set and it has a value, custnum otherwise.
 sub display_custnum {
   my $self = shift;
 
+  return $self->agent_custid
+    if $default_agent_custid && $self->agent_custid;
+
   my $prefix = $conf->config('cust_main-custnum-display_prefix', $self->agentnum) || '';
-  if ( my $special = $conf->config('cust_main-custnum-display_special') ) {
-    if ( $special eq 'CoStAg' ) {
-      $prefix = uc( join('',
-        $self->country,
-        ($self->state =~ /^(..)/),
-        $prefix || ($self->agent->agent =~ /^(..)/)
-      ) );
-    }
-    elsif ( $special eq 'CoStCl' ) {
-      $prefix = uc( join('',
-        $self->country,
-        ($self->state =~ /^(..)/),
-        ($self->classnum ? $self->cust_class->classname =~ /^(..)/ : '__')
-      ) );
-    }
-    # add any others here if needed
-  }
 
-  my $length = $conf->config('cust_main-custnum-display_length');
-  if ( $conf->exists('cust_main-default_agent_custid') && $self->agent_custid ){
-    return $self->agent_custid;
-  } elsif ( $prefix ) {
-    $length = 8 if !defined($length);
+  if ( $prefix ) {
     return $prefix . 
-           sprintf('%0'.$length.'d', $self->custnum)
-  } elsif ( $length ) {
-    return sprintf('%0'.$length.'d', $self->custnum);
+           sprintf('%0'.($custnum_display_length||8).'d', $self->custnum)
+  } elsif ( $custnum_display_length ) {
+    return sprintf('%0'.$custnum_display_length.'d', $self->custnum);
   } else {
     return $self->custnum;
   }

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Conf.pm      |   14 ++------------
 FS/FS/cust_main.pm |   38 ++++++++++++--------------------------
 2 files changed, 14 insertions(+), 38 deletions(-)




More information about the freeside-commits mailing list