From d86f30add230405cb3ff689846ecce7e639e461b Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Wed, 6 Nov 2013 12:14:42 -0800 Subject: [PATCH] TomTom: return a definite error on incomplete matches, #25261 --- FS/FS/Misc/Geo.pm | 11 ++++++-- httemplate/misc/confirm-address_standardize.html | 34 +++++++++++++----------- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/FS/FS/Misc/Geo.pm b/FS/FS/Misc/Geo.pm index bf4840bbd..9f6b89bf2 100644 --- a/FS/FS/Misc/Geo.pm +++ b/FS/FS/Misc/Geo.pm @@ -447,6 +447,12 @@ sub standardize_tomtom { my ($address1, $address2) = ($location->{address1}, $location->{address2}); my $subloc = ''; + # trim whitespace + $address1 =~ s/^\s+//; + $address1 =~ s/\s+$//; + $address2 =~ s/^\s+//; + $address2 =~ s/\s+$//; + # try to fix some cases of the address fields being switched if ( $address2 =~ /^\d/ and $address1 !~ /^\d/ ) { $address2 = $address1; @@ -487,8 +493,8 @@ sub standardize_tomtom { } } - if (!$match) { - die "Location not found.\n"; + if ( !$match or !$clean ) { # partial matches are not useful + die "Address not found\n"; } my $tract = ''; if ( defined $match->{censusTract} ) { @@ -642,6 +648,7 @@ sub subloc_address2 { warn "normalizing '$addr2' to '$result'\n" if $DEBUG > 1; $addr2 = $result; } + $addr2 = '' if $addr2 eq $subloc; # if it was entered redundantly ($subloc, $addr2); } diff --git a/httemplate/misc/confirm-address_standardize.html b/httemplate/misc/confirm-address_standardize.html index 33d22195b..2eae011c4 100644 --- a/httemplate/misc/confirm-address_standardize.html +++ b/httemplate/misc/confirm-address_standardize.html @@ -19,52 +19,57 @@ Confirm address standardization % } % for my $pre (@prefixes) { % my $name = $pre eq 'bill_' ? 'billing' : 'service'; -% if ( $new{$pre.'addr_clean'} ) { +% if ( $new{$pre.'error'} ) { Entered <%$name%> address - Standardized <%$name%> address - % if ( $old{$pre.'company'} ) { <% $old{$pre.'company'} %> - <% $new{$pre.'company'} %> % } <% $old{$pre.'address1'} %> - <% $new{$pre.'address1'} %> + <% $new{$pre.'error'} %> <% $old{$pre.'address2'} %> - <% $new{$pre.'address2'} %> <% $old{$pre.'city'} %>, <% $old{$pre.'state'} %> <% $old{$pre.'zip'} %> - <% $new{$pre.'city'} %>, <% $new{$pre.'state'} %> <% $new{$pre.'zip'} %> - -% } # if addr_clean -% elsif ( $new{$pre.'error'} ) { +% } else { # not an error Entered <%$name%> address + Standardized <%$name%> address + +% if ( !$new{$pre.'addr_clean'} ) { + + + (unverified) +% } + % if ( $old{$pre.'company'} ) { <% $old{$pre.'company'} %> + <% $new{$pre.'company'} %> % } <% $old{$pre.'address1'} %> - <% $new{$pre.'error'} %> + <% $new{$pre.'address1'} %> <% $old{$pre.'address2'} %> + <% $new{$pre.'address2'} %> <% $old{$pre.'city'} %>, <% $old{$pre.'state'} %> <% $old{$pre.'zip'} %> + <% $new{$pre.'city'} %>, <% $new{$pre.'state'} %> <% $new{$pre.'zip'} %> -% } #if error + +% } # if error % } # for $pre %# only do this part if address standardization provided a censustract @@ -88,7 +93,7 @@ Confirm address standardization % } #if censustract -% if ( $new{bill_error} or $new{ship_error} ) { +% if ( grep {$new{$_.'error'}} @prefixes ) { -% } -% else { +% } else {