X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcdr%2FImport.pm;h=a97472e7a62cb0213b903d7d66af48991144a35b;hb=960e5018d7e63f96f57fed4a56a2c1b700e8a64e;hp=7a377587866446fabbf6b9c919022c1870a25f89;hpb=d9fa8a0de78a94df5f7c92b7d51e128550710ab0;p=freeside.git diff --git a/FS/FS/cdr/Import.pm b/FS/FS/cdr/Import.pm index 7a3775878..a97472e7a 100644 --- a/FS/FS/cdr/Import.pm +++ b/FS/FS/cdr/Import.pm @@ -74,11 +74,19 @@ sub dbi_import { # else { # print "freesidestatus column present\n"; # } + # or if using a status_table: + # CREATE TABLE FREESIDE_BILLING ( + # BILLING_ID BIGINT, + # FREESIDESTATUS VARCHAR(32) + # ) #my @cols = values %{ $args{column_map} }; - my $sql = "SELECT * FROM $table ". # join(',', @cols). " FROM $table ". + my $sql = "SELECT $table.* FROM $table "; # join(',', @cols). " FROM $table ". + $sql .= 'LEFT JOIN '. $args{status_table}. + " ON ( $table.$pkey = ". $args{status_table}. ".$pkey )" + if $args{status_table}; + $sql .= ' WHERE freesidestatus IS NULL '; - ' WHERE freesidestatus IS NULL '; #$sql .= ' LIMIT '. $opt{L} if $opt{L}; my $sth = $dbi->prepare($sql); $sth->execute or die $sth->errstr. " executing $sql"; @@ -109,21 +117,37 @@ sub dbi_import { $cdr->cdrtypenum($opt{c}) if $opt{c}; - #print $row->{$pkey},"\n" if $opt{v}; + my $pkey_value = $row->{$pkey}; + + #print "$pkey_value\n" if $opt{v}; my $error = $cdr->insert; + if ($error) { - #die $row->{$pkey} . ": failed import: $error\n"; - print $row->{$pkey} . ": failed import: $error\n"; + + #die "$pkey_value: failed import: $error\n"; + print "$pkey_value: failed import: $error\n"; + } else { + $imported++; - my $updated = $dbi->do( - "UPDATE $table SET freesidestatus = 'done' WHERE $pkey = ?", - undef, - $row->{$pkey} - ); + my $st_sql; + if ( $args{status_table} ) { + + $st_sql = + 'INSERT INTO '. $args{status_table}. " ( $pkey, freesidestatus ) ". + " VALUES ( ?, 'done' )"; + + } else { + + $st_sql = "UPDATE $table SET freesidestatus = 'done' WHERE $pkey = ?"; + + } + + my $updated = $dbi->do($st_sql, undef, $pkey_value ); #$updates += $updated; die "failed to set status: ".$dbi->errstr."\n" unless $updated; + } if ( $opt{L} && $imported >= $opt{L} ) {