X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg_taxproduct.pm;h=51bc37f9c437d4eed03c9d52a2ba3ff8671aef29;hp=e86d0285a4d33ebba9b9b9df08fd3d6eb995e128;hb=7a33cb6e4c3e33b7399d6574cbd3ee38ddcba5e0;hpb=ecd038f7ae5c1ffc929f3c928ecd161eeb45d9be diff --git a/FS/FS/part_pkg_taxproduct.pm b/FS/FS/part_pkg_taxproduct.pm index e86d0285a..51bc37f9c 100644 --- a/FS/FS/part_pkg_taxproduct.pm +++ b/FS/FS/part_pkg_taxproduct.pm @@ -223,7 +223,8 @@ sub batch_import { my $imported = 0; my $csv = Text::CSV_XS->new; - # fields: taxproduct, description + my $error; + # for importing the "transervdesc.txt" file while ( my $row = $csv->getline($fh) ) { if (!defined $row) { $dbh->rollback if $oldAutoCommit; @@ -236,15 +237,32 @@ sub batch_import { ); } - my $new = FS::part_pkg_taxproduct->new({ - 'data_vendor' => 'billsoft', - 'taxproduct' => $row->[0], - 'description' => $row->[1], + # columns 0-2: irrelevant here + my $taxproduct = $row->[3] . ':' . $row->[5]; + my $description = $row->[4]; + $description =~ s/\s+$//; + $description .= ':' . $row->[6]; + $description =~ s/\s+$//; + my $ppt = qsearchs('part_pkg_taxproduct', { + 'data_vendor' => 'billsoft', + 'taxproduct' => $taxproduct }); - my $error = $new->insert; + if ( $ppt ) { + $ppt->set('description', $description); + $ppt->set('note', $row->[7]); + $error = $ppt->replace; + } else { + $ppt = FS::part_pkg_taxproduct->new({ + 'data_vendor' => 'billsoft', + 'taxproduct' => $taxproduct, + 'description' => $description, + 'note' => $row->[7], + }); + $error = $ppt->insert; + } if ( $error ) { $dbh->rollback if $oldAutoCommit; - return "error inserting part_pkg_taxproduct: $error\n"; + return "error inserting part_pkg_taxproduct $taxproduct: $error\n"; } $imported++; }