X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Ftax_rate_location.pm;h=e33859123685a8f78ead094ea8379928795117d8;hp=0377a7d0407270fd9ced99c43b4aeed546343225;hb=bb7e827141c9ed68f30765c9ca2ddcd1d760ad2d;hpb=147c94865852a93bf192ef15e931e456d487b69b diff --git a/FS/FS/tax_rate_location.pm b/FS/FS/tax_rate_location.pm index 0377a7d04..e33859123 100644 --- a/FS/FS/tax_rate_location.pm +++ b/FS/FS/tax_rate_location.pm @@ -111,6 +111,7 @@ sub check { $self->ut_numbern('taxratelocationnum') || $self->ut_textn('data_vendor') || $self->ut_alpha('geocode') + || $self->ut_textn('district') || $self->ut_textn('city') || $self->ut_textn('county') || $self->ut_textn('state') @@ -118,20 +119,12 @@ sub check { ; return $error if $error; - my @unique = qw( data_vendor geocode ); - push @unique, qw( state country ) - if $self->data_vendor eq 'compliance_solutions'; - - my $t; - $t = qsearchs( 'tax_rate_location', - { disabled => '', - ( map { $_ => $self->$_ } @unique ), - }, - ) + my $t = ''; + $t = $self->existing_search unless $self->disabled; $t = $self->by_key( $self->taxratelocationnum ) - if ( !$t && $self->taxratelocationnum ); + if !$t && $self->taxratelocationnum; return "geocode ". $self->geocode. " already in use for this vendor" if ( $t && $t->taxratelocationnum != $self->taxratelocationnum ); @@ -157,11 +150,7 @@ record. sub find_or_insert { my $self = shift; - my $existing = qsearchs('tax_rate_location', { - disabled => '', - data_vendor => $self->data_vendor, - geocode => $self->geocode - }); + my $existing = $self->existing_search; if ($existing) { my $update = 0; foreach (qw(city county state country)) { @@ -180,6 +169,16 @@ sub find_or_insert { } } +sub existing_search { + my $self = shift; + + qsearchs( 'tax_rate_location', + { disabled => '', + map { $_ => $self->$_ } qw( data_vendor geocode ) + } + ); +} + =back =head1 CLASS METHODS @@ -397,13 +396,14 @@ sub batch_import { } sub _upgrade_data { - my $class = shift; - - my $sql = "UPDATE tax_rate_location SET data_vendor = 'compliance_solutions' WHERE data_vendor = 'compliance solutions'"; - - my $sth = dbh->prepare($sql) or die $DBI::errstr; - $sth->execute() or die $sth->errstr; - +#actually no, we want to leave those records behind now that they're giving us +# geo_state etc. +# my $class = shift; +# +# my $sql = "UPDATE tax_rate_location SET data_vendor = 'compliance_solutions' WHERE data_vendor = 'compliance solutions'"; +# +# my $sth = dbh->prepare($sql) or die $DBI::errstr; +# $sth->execute() or die $sth->errstr; } =head1 BUGS