X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=FS%2FFS%2Fcdr%2FImport.pm;h=29a2fe8dae417b19cbfa0b7c1281d68b55b3799e;hb=57bb423fe457ba4e13726877f53bcdf944f828f8;hp=f2263c5526f0b347584c474e92b553c2b7c035bb;hpb=ca5b77df888ac14882c290f10f625654e39d9072;p=freeside.git diff --git a/FS/FS/cdr/Import.pm b/FS/FS/cdr/Import.pm index f2263c552..29a2fe8da 100644 --- a/FS/FS/cdr/Import.pm +++ b/FS/FS/cdr/Import.pm @@ -4,7 +4,7 @@ use strict; use Date::Format 'time2str'; use FS::UID qw(adminsuidsetup dbh); use FS::cdr; -use DBI; +use FS::DBI; use Getopt::Std; use vars qw( $DEBUG ); @@ -60,6 +60,8 @@ sub dbi_import { my $dbd_type = $args{'dbd'} ? $args{'dbd'} : 'Pg'; my $status_column = $args{status_column} ? $args{status_column} : 'freesidestatus'; my $status_column_info = $args{status_column_info} ? $args{status_column} : 'VARCHAR(32)'; + my $st_sql; + my $batch_name = $args{batch_name} ? $args{batch_name} : 'CDR_DB'; my $queries = get_queries({ 'dbd' => $dbd_type, @@ -75,8 +77,8 @@ sub dbi_import { my $dsn = 'dbi:'. $dbd_type . $queries->{connect_type}; $dsn .= ";database=$database" if $database; - my $dbi = DBI->connect($dsn, $opt{U}, $opt{P}) - or die $DBI::errstr; + my $dbi = FS::DBI->connect($dsn, $opt{U}, $opt{P}) + or die $FS::DBI::errstr; adminsuidsetup $user; @@ -88,6 +90,7 @@ sub dbi_import { $dbi->do( $queries->{create_statustable} ) or die $dbi->errstr; } + $st_sql = "INSERT INTO $status_table ( $pkey, $status_column ) VALUES ( ?, 'done' )"; } ## check for column freeside status if not using status table and create it if not there. else { @@ -97,6 +100,7 @@ sub dbi_import { $dbi->do( $queries->{create_statuscolumn} ) or die $dbi->errstr; } + $st_sql = "UPDATE $table SET $status_column = 'done' WHERE $pkey = ?"; } #my @cols = values %{ $args{column_map} }; @@ -110,7 +114,7 @@ sub dbi_import { $sth->execute or die $sth->errstr. " executing $sql"; my $cdr_batch = new FS::cdr_batch({ - 'cdrbatch' => $args{batch_name} . '-import-'. time2str('%Y/%m/%d-%T',time), + 'cdrbatch' => $batch_name . '-import-'. time2str('%Y/%m/%d-%T',time), }); my $error = $cdr_batch->insert; die $error if $error; @@ -149,19 +153,6 @@ sub dbi_import { $imported++; - my $st_sql; - if ( $status_table ) { - - $st_sql = - 'INSERT INTO '. $status_table. " ( $pkey, $status_column ) ". - " VALUES ( ?, 'done' )"; - - } else { - - $st_sql = "UPDATE $table SET $status_column = 'done' WHERE $pkey = ?"; - - } - my $updated = $dbi->do($st_sql, undef, $pkey_value ); #$updates += $updated; die "failed to set status: ".$dbi->errstr."\n" unless $updated; @@ -195,7 +186,7 @@ sub get_queries { $port ||= '5000'; # check for pg default 5000 is sybase. my %dbi_connect_types = ( - 'Sybase' => ':host='.$host.';port='.$port, + 'Sybase' => ':server='.$host.';port='.$port, 'Pg' => ':host='.$info->{host}, );