[freeside-commits] branch master updated. 6ff1c755b054201c38b0a2a7b6161325af5c0bcf

Mark Wells mark at 420.am
Thu Apr 26 17:10:51 PDT 2012


The branch, master has been updated
       via  6ff1c755b054201c38b0a2a7b6161325af5c0bcf (commit)
      from  88269174c839d6953f30e2f849bc60327dd10f07 (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 6ff1c755b054201c38b0a2a7b6161325af5c0bcf
Author: Mark Wells <mark at freeside.biz>
Date:   Thu Apr 26 17:09:53 2012 -0700

    site id in cust_location labels, #16815

diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index 31999bc..82e5ea8 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -3052,6 +3052,24 @@ and customer address. Include units.',
   },
 
   {
+    'key'         => 'cust_location-label_prefix',
+    'section'     => 'UI',
+    'description' => 'Optional "site ID" to show in the location label',
+    'type'        => 'select',
+    'select_hash' => [ '' => '',
+                       'CoStAg' => 'CoStAgXXXXX (country, state, agent name, locationnum)',
+                      ],
+  },
+
+  {
+    'key'         => 'cust_location-agent_code',
+    'section'     => 'UI',
+    'description' => 'Optional agent string for cust_location-label_prefix',
+    'type'        => 'text',
+    'per_agent'   => 1,
+  },
+
+  {
     'key'         => 'cust_pkg-display_times',
     'section'     => 'UI',
     'description' => 'Display full timestamps (not just dates) for customer packages.  Useful if you are doing real-time things like hourly prepaid.',
diff --git a/FS/FS/cust_location.pm b/FS/FS/cust_location.pm
index a5250ec..a99fa17 100644
--- a/FS/FS/cust_location.pm
+++ b/FS/FS/cust_location.pm
@@ -408,6 +408,42 @@ sub dealternize {
   '';
 }
 
+=item location_label
+
+Returns the label of the location object, with an optional site ID
+string (based on the cust_location-label_prefix config option).
+
+=cut
+
+sub location_label {
+  my $self = shift;
+  my %opt = @_;
+  my $conf = new FS::Conf;
+  my $prefix = '';
+  my $format = $conf->config('cust_location-label_prefix') || '';
+  if ( $format eq 'CoStAg' ) {
+    my $cust_or_prospect;
+    if ( $self->custnum ) {
+      $cust_or_prospect = FS::cust_main->by_key($self->custnum);
+    }
+    elsif ( $self->prospectnum )  {
+      $cust_or_prospect = FS::prospect_main->by_key($self->prospectnum);
+    }
+    my $agent = $conf->config('cust_location-agent_code', 
+                  $cust_or_prospect->agentnum)
+                || $cust_or_prospect->agent->agent;
+    # else this location is invalid
+    $prefix = uc( join('',
+        $self->country,
+        ($self->state =~ /^(..)/),
+        ($agent =~ /^(..)/),
+        sprintf('%05d', $self->locationnum)
+    ) );
+  }
+  $prefix .= ($opt{join_string} ||  ': ') if $prefix;
+  $prefix . $self->SUPER::location_label(%opt);
+}
+
 =back
 
 =head1 BUGS

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

Summary of changes:
 FS/FS/Conf.pm          |   18 ++++++++++++++++++
 FS/FS/cust_location.pm |   36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 54 insertions(+), 0 deletions(-)




More information about the freeside-commits mailing list