summaryrefslogtreecommitdiff
path: root/FS/FS/tax_class.pm
diff options
context:
space:
mode:
authorjeff <jeff>2008-11-19 14:56:00 +0000
committerjeff <jeff>2008-11-19 14:56:00 +0000
commitf32fab28c5cea2b5619c9b1d5cc6e3fe7beef126 (patch)
tree0e069e7e490d9d102a5ee0379788d824326e3b83 /FS/FS/tax_class.pm
parent7c9c69a6e85094310f437d01877b79b3d5c845db (diff)
support for cch fixed format
Diffstat (limited to 'FS/FS/tax_class.pm')
-rw-r--r--FS/FS/tax_class.pm16
1 files changed, 12 insertions, 4 deletions
diff --git a/FS/FS/tax_class.pm b/FS/FS/tax_class.pm
index 2fa9fb0..8ce70f5 100644
--- a/FS/FS/tax_class.pm
+++ b/FS/FS/tax_class.pm
@@ -4,6 +4,7 @@ use strict;
use vars qw( @ISA );
use FS::UID qw(dbh);
use FS::Record qw( qsearch qsearchs );
+use FS::Misc qw( csv_from_fixed );
@ISA = qw(FS::Record);
@@ -147,12 +148,19 @@ sub batch_import {
my $imported = 0;
my $dbh = dbh;
+ my @column_lengths = ();
+ my @column_callbacks = ();
+ if ( $format eq 'cch-fixed' || $format eq 'cch-fixed-update' ) {
+ $format =~ s/-fixed//;
+ push @column_lengths, qw( 8 10 3 2 2 10 100 );
+ push @column_lengths, 1 if $format eq 'cch-update';
+ }
+
my $line;
my ( $count, $last, $min_sec ) = (0, time, 5); #progressbar
- if ( $job ) {
- $count++
- while ( defined($line=<$fh>) );
- seek $fh, 0, 0;
+ if ( $job || scalar(@column_callbacks) ) {
+ my $error = csv_from_fixed(\$fh, \$count, \@column_lengths);
+ return $error if $error;
}
if ( $format eq 'cch' || $format eq 'cch-update' ) {