add billing address fields to RT ticket search, #19154
authorMark Wells <mark@freeside.biz>
Tue, 24 Nov 2015 20:23:14 +0000 (12:23 -0800)
committerMark Wells <mark@freeside.biz>
Tue, 24 Nov 2015 20:23:35 +0000 (12:23 -0800)
FS/FS/cust_location.pm
rt/lib/RT/URI/freeside/Internal.pm
rt/share/html/Elements/CustomerFields

index 09baff3..74b1bd1 100644 (file)
@@ -641,6 +641,11 @@ Prospect object (see L<FS::prospect_main>)
 
 String used to join location elements
 
+=item no_prefix
+
+Don't label the default service location as "Default service location".
+May become the default at some point.
+
 =back
 
 =cut
@@ -650,6 +655,7 @@ sub location_label {
 
   my $prefix = $self->label_prefix;
   $prefix .= ($opt{join_string} ||  ': ') if $prefix;
+  $prefix = '' if $opt{'no_prefix'};
 
   $prefix . $self->SUPER::location_label(%opt);
 }
index d1479b5..33831bc 100644 (file)
@@ -211,6 +211,8 @@ sub CustomerResolver {
 sub CustomerInfo {
   my $self = shift;
   $self = $self->CustomerResolver;
+  return $self->{CustomerInfo} if $self->{CustomerInfo};
+
   my $rec = $self->_FreesideGetRecord() if $self;
   if (!$rec) {
     # AsStringLong will report an error;
@@ -232,7 +234,11 @@ sub CustomerInfo {
   my $referral = qsearchs('part_referral', { refnum => $cust_main->refnum });
   my @part_tags = $cust_main->part_tag;
 
-  return $self->{CustomerInfo} ||= {
+  my @lf = $cust_main->location_fields;
+  my $bill_location = $cust_main->bill_location;
+  my $ship_location = $cust_main->ship_location;
+
+  my $info = {
     %$rec,
 
     AgentName     => ($agent ? ($agent->agentnum.': '.$agent->agent) : ''),
@@ -246,7 +252,17 @@ sub CustomerInfo {
     Referral      => ($referral ? $referral->referral : ''),
     InvoiceEmail  => $cust_main->invoicing_list_emailonly_scalar,
     BillingType   => FS::payby->longname($cust_main->payby),
+  };
+
+  foreach my $field (@lf) {
+    $info->{"bill_$field"} = $bill_location->get($field);
+    $info->{"ship_$field"} = $ship_location->get($field);
   }
+  $info->{"bill_location"} = $bill_location->location_label(no_prefix => 1);
+  $info->{"ship_location"} = $ship_location->location_label(no_prefix => 1);
+
+
+  return $self->{CustomerInfo} = $info;
 }
 
 sub ServiceInfo {
index d5419d2..226378e 100644 (file)
@@ -90,16 +90,29 @@ my @customer_fields = ( # ordered
     # query/sort needed?
   },
   {
+    Name    => 'BillingAddress',
+    Label   => 'Billing Address',
+    Display => 'bill_location',
+  },
+  {
+    Name    => 'StreetAddress1',
+    Label   => 'Street Address',
+    Display => 'bill_address1',
+  },
+  {
+    Name    => 'StreetAddress2',
+    Label   => '',
+    Display => 'bill_address2',
+  },
+  {
     Name    => 'City',
     Label   => 'City',
-    Display => 'city',
-    OrderBy => 'Customer.city',
+    Display => 'bill_city',
   },
   {
     Name    => 'State',
     Label   => 'State',
-    Display => 'state',
-    OrderBy => 'Customer.state',
+    Display => 'bill_state',
   },
   {
     Name    => 'CustomerTags',