compliance solutions, RT#77676
authorIvan Kohler <ivan@freeside.biz>
Thu, 21 Sep 2017 22:52:11 +0000 (15:52 -0700)
committerIvan Kohler <ivan@freeside.biz>
Thu, 21 Sep 2017 22:52:11 +0000 (15:52 -0700)
FS/FS/TaxEngine/compliance_solutions.pm
FS/FS/Upgrade.pm
FS/FS/tax_rate.pm
FS/FS/tax_rate_location.pm

index 92ca2ce..c21234e 100644 (file)
@@ -263,7 +263,7 @@ sub make_taxlines {
     # create a tax rate location if there isn't one yet
     my $taxname = $tax_data->{descript};
     my $tax_rate = FS::tax_rate->new({
     # create a tax rate location if there isn't one yet
     my $taxname = $tax_data->{descript};
     my $tax_rate = FS::tax_rate->new({
-        data_vendor   => 'compliance solutions',
+        data_vendor   => 'compliance_solutions',
         taxname       => $taxname,
         taxclassnum   => '',
         taxauth       => $tax_data->{'taxauthtype'}, # federal / state / city / district
         taxname       => $taxname,
         taxclassnum   => '',
         taxauth       => $tax_data->{'taxauthtype'}, # federal / state / city / district
@@ -277,13 +277,14 @@ sub make_taxlines {
     $tax_rate = $tax_rate->replace_old;
 
     my $tax_rate_location = FS::tax_rate_location->new({
     $tax_rate = $tax_rate->replace_old;
 
     my $tax_rate_location = FS::tax_rate_location->new({
-        data_vendor => 'compliance solutions',
+        data_vendor => 'compliance_solutions',
+        geocode     => $tax_data->{'geocode'},
         state       => $tax_data->{'state'},
         country     => $tax_data->{'country'},
         state       => $tax_data->{'state'},
         country     => $tax_data->{'country'},
-        geocode     => $tax_data->{'geocode'},
     });
     $error = $tax_rate_location->find_or_insert;
     });
     $error = $tax_rate_location->find_or_insert;
-    die "error inserting tax_rate_location record: $error\n"
+    die 'error inserting tax_rate_location record for '.  $tax_data->{state}.
+        '/'. $tax_data->{country}. ' ('. $tax_data->{'geocode'}. "): $error\n"
       if $error;
     $tax_rate_location = $tax_rate_location->replace_old;
 
       if $error;
     $tax_rate_location = $tax_rate_location->replace_old;
 
index 6edec90..0069e20 100644 (file)
@@ -497,6 +497,10 @@ sub upgrade_data {
     #mark certain taxes as system-maintained,
     # and fix whitespace
     'cust_main_county' => [],
     #mark certain taxes as system-maintained,
     # and fix whitespace
     'cust_main_county' => [],
+
+    #'compliance solutions' -> 'compliance_solutions'
+    'tax_rate' => [],
+    'tax_rate_location' => [],
   ;
 
   \%hash;
   ;
 
   \%hash;
index 5416ff5..8bc0c6e 100644 (file)
@@ -2335,7 +2335,15 @@ EOF
 
 }
 
 
 }
 
+sub _upgrade_data {
+  my $class = shift;
 
 
+  my $sql = "UPDATE tax_rate 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;
+  
+}
 
 =back
 
 
 =back
 
index d9646e4..0377a7d 100644 (file)
@@ -118,10 +118,14 @@ sub check {
   ;
   return $error if $error;
 
   ;
   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 => '',
   my $t;
   $t = qsearchs( 'tax_rate_location',
                  { disabled => '',
-                   ( map { $_ => $self->$_ } qw( data_vendor geocode ) ),
+                   ( map { $_ => $self->$_ } @unique ),
                  },
                )
     unless $self->disabled;
                  },
                )
     unless $self->disabled;
@@ -392,6 +396,16 @@ 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;
+  
+}
+
 =head1 BUGS
 
 Currently somewhat specific to CCH supplied data.
 =head1 BUGS
 
 Currently somewhat specific to CCH supplied data.