[freeside-commits] branch master updated. dbc85ed7e7020bd91f63cdb58039731e2abe44ca

Jonathan Prykop jonathan at 420.am
Mon May 9 15:50:41 PDT 2016


The branch, master has been updated
       via  dbc85ed7e7020bd91f63cdb58039731e2abe44ca (commit)
      from  9acbc523636914be2788718d54f92dcc69863a28 (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 dbc85ed7e7020bd91f63cdb58039731e2abe44ca
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Mon May 9 17:50:27 2016 -0500

    RT#41124: Backend Unti Search

diff --git a/httemplate/edit/process/cust_main.cgi b/httemplate/edit/process/cust_main.cgi
index d590fde..99c7f90 100755
--- a/httemplate/edit/process/cust_main.cgi
+++ b/httemplate/edit/process/cust_main.cgi
@@ -76,8 +76,8 @@ if ( ($cgi->param('same') || '') eq 'Y' ) {
 # but explicitly avoid setting ship_ fields
 
 my $new = new FS::cust_main ( {
-  map { ( $_, scalar($cgi->param($_)) ) } (fields('cust_main')),
-  map { ( "ship_$_", '' ) } (FS::cust_main->location_fields)
+  (map { ( $_, scalar($cgi->param($_)) ) } (fields('cust_main'))),
+  (map { ( "ship_$_", '' ) } (FS::cust_main->location_fields))
 } );
 
 warn Dumper( $new ) if $DEBUG > 1;
diff --git a/httemplate/search/cust_main.cgi b/httemplate/search/cust_main.cgi
index c501c50..76cbe49 100755
--- a/httemplate/search/cust_main.cgi
+++ b/httemplate/search/cust_main.cgi
@@ -700,12 +700,20 @@ sub address2search {
       or errorpage(emt("Illegal address2"));
   my $address2 = $1;
 
-  push @cust_main, qsearch( 'cust_main',
-                            { 'address2' => { 'op'    => 'ILIKE',
-                                              'value' => $address2 } } );
-  push @cust_main, qsearch( 'cust_main',
-                            { 'ship_address2' => { 'op'    => 'ILIKE',
-                                                   'value' => $address2 } } );
+  # matching at the start or end of an address, but not in the middle
+  my @where;
+  foreach my $toggle (0,1) {
+    push @where, 'LOWER(cust_location.address2) LIKE LOWER('
+                 . dbh->quote($toggle ? $address2 . '%' : '%' . $address2)
+                 . ')';
+  }
+
+  push @cust_main, qsearch({
+    'debug'     => 1,
+    'table'     => 'cust_main',
+    'addl_from' => 'JOIN cust_location ON (cust_location.locationnum IN (cust_main.bill_locationnum, cust_main.ship_locationnum))',
+    'extra_sql' => 'WHERE ' . join(' OR ', at where),
+  });
 
   \@cust_main;
 }

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

Summary of changes:
 httemplate/edit/process/cust_main.cgi |    4 ++--
 httemplate/search/cust_main.cgi       |   20 ++++++++++++++------
 2 files changed, 16 insertions(+), 8 deletions(-)




More information about the freeside-commits mailing list