option to adjust zero-filling of custnum, #16815
authorMark Wells <mark@freeside.biz>
Thu, 8 Mar 2012 22:56:23 +0000 (14:56 -0800)
committerMark Wells <mark@freeside.biz>
Thu, 8 Mar 2012 22:56:23 +0000 (14:56 -0800)
FS/FS/Conf.pm
FS/FS/cust_main.pm

index ac80a55..2bc1f19 100644 (file)
@@ -3848,12 +3848,19 @@ and customer address. Include units.',
   {
     'key'         => 'cust_main-custnum-display_prefix',
     'section'     => 'UI',
-    'description' => 'Prefix the customer number with this number for display purposes (and zero fill to 8 digits).',
+    'description' => 'Prefix the customer number with this string for display purposes.',
     'type'        => 'text',
     #and then probably agent-virt this to merge these instances
   },
 
   {
+    'key'         => 'cust_main-custnum-display_length',
+    'section'     => 'UI',
+    'description' => 'Zero fill the customer number to this many digits for display purposes.',
+    'type'        => 'text',
+  },
+
+  {
     'key'         => 'cust_main-default_areacode',
     'section'     => 'UI',
     'description' => 'Default area code for customers.',
index 1da788c..069d5b6 100644 (file)
@@ -3961,11 +3961,15 @@ cust_main-default_agent_custid is set and it has a value, custnum otherwise.
 
 sub display_custnum {
   my $self = shift;
+  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 ( $conf->config('cust_main-custnum-display_prefix') ) {
+    $length = 8 if !defined($length);
     return $conf->config('cust_main-custnum-display_prefix').
-           sprintf('%08d', $self->custnum)
+           sprintf('%0'.$length.'d', $self->custnum)
+  } elsif ( $length ) {
+    return sprintf('%0'.$length.'d', $self->custnum);
   } else {
     return $self->custnum;
   }