[freeside-commits] branch master updated. c53b9ea5e995de0388c4e1973b1929626fdc29a6

Mark Wells mark at 420.am
Wed Aug 31 13:00:48 PDT 2016


The branch, master has been updated
       via  c53b9ea5e995de0388c4e1973b1929626fdc29a6 (commit)
      from  6a9de13acfad21b7f0839749aa3bdc6355ae4cbd (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 c53b9ea5e995de0388c4e1973b1929626fdc29a6
Author: Mark Wells <mark at freeside.biz>
Date:   Wed Aug 31 12:41:32 2016 -0700

    on upgrade, remove all leading/trailing whitespace from address fields, #72194
    
    Conflicts:
    	FS/FS/Upgrade.pm

diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm
index 3faf47e..c959ba9 100644
--- a/FS/FS/Upgrade.pm
+++ b/FS/FS/Upgrade.pm
@@ -355,6 +355,9 @@ sub upgrade_data {
     #remap log levels
 	'log' => [],
 
+    #fix whitespace - before cust_main
+    'cust_location' => [],
+
     #cust_main (remove paycvv from history, locations, cust_payby, etc)
     'cust_main' => [],
 
@@ -484,9 +487,6 @@ sub upgrade_data {
     #mark certain taxes as system-maintained,
     # and fix whitespace
     'cust_main_county' => [],
-
-    #fix whitespace
-    'cust_location' => [],
   ;
 
   \%hash;
diff --git a/FS/FS/cust_location.pm b/FS/FS/cust_location.pm
index 5a144b8..a9660d8 100644
--- a/FS/FS/cust_location.pm
+++ b/FS/FS/cust_location.pm
@@ -14,6 +14,12 @@ use FS::cust_main_county;
 use FS::part_export;
 use FS::GeocodeCache;
 
+# Essential fields. Can't be modified in place, will be considered in
+# deciding if a location is "new", and (because of that) can't have
+# leading/trailing whitespace.
+my @essential = (qw(custnum address1 address2 city county state zip country
+  location_number location_type location_kind disabled));
+
 $import = 0;
 
 $DEBUG = 0;
@@ -174,9 +180,6 @@ sub find_or_insert {
 
   warn "find_or_insert:\n".Dumper($self) if $DEBUG;
 
-  my @essential = (qw(custnum address1 address2 city county state zip country
-    location_number location_type location_kind disabled));
-
   if ($conf->exists('cust_main-no_city_in_address')) {
     warn "Warning: passed city to find_or_insert when cust_main-no_city_in_address is configured, ignoring it"
       if $self->get('city');
@@ -377,9 +380,9 @@ sub check {
 
   return '' if $self->disabled; # so that disabling locations never fails
 
-  # maybe should just do all fields in the table?
-  # or in every table?
-  $self->trim_whitespace(qw(district city county state country));
+  # whitespace in essential fields leads to problems figuring out if a
+  # record is "new"; get rid of it.
+  $self->trim_whitespace(@essential);
 
   my $error = 
     $self->ut_numbern('locationnum')
@@ -929,7 +932,9 @@ sub _upgrade_data {
 
   # trim whitespace on records that need it
   local $allow_location_edit = 1;
-  foreach my $field (qw(city county state country district)) {
+  foreach my $field (@essential) {
+    next if $field eq 'custnum';
+    next if $field eq 'disabled';
     foreach my $location (qsearch({
       table => 'cust_location',
       extra_sql => " WHERE $field LIKE ' %' OR $field LIKE '% '"

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

Summary of changes:
 FS/FS/Upgrade.pm       |    6 +++---
 FS/FS/cust_location.pm |   19 ++++++++++++-------
 2 files changed, 15 insertions(+), 10 deletions(-)




More information about the freeside-commits mailing list