X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Ftax_class.pm;h=c8fe88968dd86bc8eb80a5bcf335fc3aa64cfba4;hb=f744f757a01e1750afa55072c7208714f16d1d13;hp=bfec2c06c27b9d9f4dd26eaf2c7b6b94cefacff1;hpb=7792fb0d3dfa4e77f41b8055e96a8938153a7677;p=freeside.git diff --git a/FS/FS/tax_class.pm b/FS/FS/tax_class.pm index bfec2c06c..c8fe88968 100644 --- a/FS/FS/tax_class.pm +++ b/FS/FS/tax_class.pm @@ -169,7 +169,8 @@ sub batch_import { $hook = sub { my $hash = shift; - +use Data::Dumper; +warn Dumper($hash); if ($hash->{'table'} eq 'DETAIL') { push @{$data->{'taxcat'}}, [ $hash->{'value'}, $hash->{'description'} ] if ($hash->{'name'} eq 'TAXCAT' && @@ -194,6 +195,7 @@ sub batch_import { ($name eq 'TAXCAT' ? $value : '%')."'", ); foreach (@tax_class) { +warn "deleting ". $_->taxclass. ' '. $_->description. "\n"; my $error = $_->delete; return $error if $error; } @@ -253,14 +255,23 @@ sub batch_import { } } - my $tax_class = - new FS::tax_class( { 'data_vendor' => 'cch', - 'taxclass' => $type->[0].':'.$cat->[0], - 'description' => $type->[1].':'.$cat->[1], - } ); - my $error = $tax_class->insert; - return $error if $error; + my %hash = ( 'data_vendor' => 'cch', + 'taxclass' => $type->[0].':'.$cat->[0], + 'description' => $type->[1].':'.$cat->[1], + ); + unless ( qsearchs('tax_class', \%hash) ) { + my $tax_class = new FS::tax_class \%hash; + my $error = $tax_class->insert; + + return "can't insert tax_class for ". + " old TAXTYPE ". $type->[0].':'.$type->[1]. + " and new TAXCAT ". $cat->[0].':'. $cat->[1]. + " : $error" + if $error; + } + $imported++; + } } @@ -283,7 +294,7 @@ sub batch_import { 'description' => $type->[1].':'.$cat->[1], } ); my $error = $tax_class->insert; - return $error if $error; + return "can't insert tax_class for new TAXTYPE $type and TAXCAT $cat: $error" if $error; $imported++; } } @@ -363,7 +374,7 @@ sub batch_import { my $error = &{$endhook}(); if ( $error ) { $dbh->rollback if $oldAutoCommit; - return "can't insert tax_class for $line: $error"; + return "can't run end hook: $error"; } $dbh->commit or die $dbh->errstr if $oldAutoCommit;