diff options
| author | Mark Wells <mark@freeside.biz> | 2016-08-31 12:41:32 -0700 | 
|---|---|---|
| committer | Mark Wells <mark@freeside.biz> | 2016-08-31 12:48:55 -0700 | 
| commit | d26b7edb666abcaed41193ec40dbb00781848b13 (patch) | |
| tree | 9dd52a5da3fce22f985af8441980219e9df54581 | |
| parent | 8a90342b21d4ae2e132bdbc12b9bb6523e8847e4 (diff) | |
on upgrade, remove all leading/trailing whitespace from address fields, #72194
Conflicts:
	FS/FS/Upgrade.pm
| -rw-r--r-- | FS/FS/Upgrade.pm | 6 | ||||
| -rw-r--r-- | FS/FS/cust_location.pm | 19 | 
2 files changed, 15 insertions, 10 deletions
diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm index 5b2750577..8b7d7337f 100644 --- a/FS/FS/Upgrade.pm +++ b/FS/FS/Upgrade.pm @@ -329,6 +329,9 @@ sub upgrade_data {    tie my %hash, 'Tie::IxHash',  +    #fix whitespace - before cust_main +    'cust_location' => [], +      #cust_main (remove paycvv from history)      'cust_main' => [], @@ -444,9 +447,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 481ebb11a..67a5e3eb1 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; @@ -143,9 +149,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'); @@ -346,9 +349,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') @@ -907,7 +910,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 '% '"  | 
