X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main%2FImport.pm;h=e58a0447bb36541705879979bca77f51a38fef4b;hb=5a52da30588e8811338845ce2edaf0631acad479;hp=f477323d1bfdfe2eff3630311ec346c9cbb16dcc;hpb=40a7b3dc653e099f7bd0bd762b649b04c4432db2;p=freeside.git diff --git a/FS/FS/cust_main/Import.pm b/FS/FS/cust_main/Import.pm index f477323d1..e58a0447b 100644 --- a/FS/FS/cust_main/Import.pm +++ b/FS/FS/cust_main/Import.pm @@ -5,8 +5,8 @@ use vars qw( $DEBUG $conf ); use Storable qw(thaw); use Data::Dumper; use MIME::Base64; -use Date::Parse; use File::Slurp qw( slurp ); +use FS::Misc::DateTime qw( parse_datetime ); use FS::UID qw( dbh ); use FS::Record qw( qsearchs ); use FS::cust_main; @@ -214,6 +214,10 @@ sub batch_import { my $oldAutoCommit = $FS::UID::AutoCommit; local $FS::UID::AutoCommit = 0; my $dbh = dbh; + + #implies ignore_expired_card + local($FS::cust_main::import) = 1; + local($FS::cust_main::import) = 1; my $line; my $row = 0; @@ -264,13 +268,13 @@ sub batch_import { if ( $field =~ /^cust_pkg\.(pkgpart|setup|bill|susp|adjourn|expire|cancel)$/ ) { - #$cust_pkg{$1} = str2time( shift @$columns ); + #$cust_pkg{$1} = parse_datetime( shift @$columns ); if ( $1 eq 'pkgpart' ) { $cust_pkg{$1} = shift @columns; } elsif ( $1 eq 'setup' ) { - $billtime = str2time(shift @columns); + $billtime = parse_datetime(shift @columns); } else { - $cust_pkg{$1} = str2time( shift @columns ); + $cust_pkg{$1} = parse_datetime( shift @columns ); } } elsif ( $field =~ /^svc_acct\.(username|_password)$/ ) { @@ -328,6 +332,12 @@ sub batch_import { tie my %hash, 'Tie::RefHash'; #this part is important if ( $cust_pkg{'pkgpart'} ) { + + unless ( $cust_pkg{'pkgpart'} =~ /^\d+$/ ) { + $dbh->rollback if $oldAutoCommit; + return 'illegal pkgpart: '. $cust_pkg{'pkgpart'}; + } + my $cust_pkg = new FS::cust_pkg ( \%cust_pkg ); my @svc_x = ();