[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