X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fgeocode_Mixin.pm;h=1e92ddc8b64503d5fa7214e22cfe1d3e470d5b3d;hb=f460000a78d4e74881051e1999197ddab3b1b81d;hp=cf45a92ee4820e15deb3774666b2d2af3a0eb464;hpb=eec4949e2c8f09a0b89331437186b77c4db6ff38;p=freeside.git diff --git a/FS/FS/geocode_Mixin.pm b/FS/FS/geocode_Mixin.pm index cf45a92ee..1e92ddc8b 100644 --- a/FS/FS/geocode_Mixin.pm +++ b/FS/FS/geocode_Mixin.pm @@ -5,6 +5,7 @@ use vars qw( $DEBUG $me ); use Carp; use Locale::Country; use FS::Record qw( qsearchs qsearch ); +use FS::Conf; use FS::cust_pkg; use FS::cust_location; use FS::cust_tax_location; @@ -82,7 +83,7 @@ sub location_label { my $ds = $opt{double_space} || ' '; my $line = ''; my $cydefault = - $opt{'countrydefault'} || FS::conf->new->config('countrydefault') || 'US'; + $opt{'countrydefault'} || FS::Conf->new->config('countrydefault') || 'US'; my $prefix = $self->has_ship_address ? 'ship_' : ''; my $notfirst = 0; @@ -122,7 +123,7 @@ sub geocode { return $geocode if $geocode; my $prefix = - ( FS::conf->new->exists('tax-ship_address') && $self->has_ship_address ) + ( FS::Conf->new->exists('tax-ship_address') && $self->has_ship_address ) ? 'ship_' : ''; @@ -132,7 +133,8 @@ sub geocode { $zip ||= ''; $plus4 ||= ''; #CCH specific location stuff - my $extra_sql = "AND plus4lo <= '$plus4' AND plus4hi >= '$plus4'"; + my $extra_sql = $plus4 ? "AND plus4lo <= '$plus4' AND plus4hi >= '$plus4'" + : ''; my @cust_tax_location = qsearch( { @@ -145,6 +147,11 @@ sub geocode { $geocode = $cust_tax_location[0]->geocode if scalar(@cust_tax_location); + warn "WARNING: customer ". $self->custnum. + ": multiple locations for zip ". $self->get("${prefix}zip"). + "; using arbitrary geocode $geocode\n" + if scalar(@cust_tax_location) > 1; + $geocode; }