#29053 -d needs to pass an argument
[freeside.git] / bin / aradial-sftp_and_import
index cc2238e..0cb6bca 100755 (executable)
@@ -65,7 +65,7 @@ our %status_type = (
 ###
 
 use vars qw( $opt_m $opt_a $opt_b $opt_r $opt_d $opt_v $opt_P );
-getopts('m:abr:dP:v:');
+getopts('m:abr:d:P:v:');
 
 my %options = ();
 
@@ -127,6 +127,8 @@ else {
 
 foreach my $filename ( @$ls ) {
 
+  next if $opt_d && $filename eq $opt_d;
+
   warn "Downloading $filename\n" if $opt_v;
 
   #get the file
@@ -157,6 +159,9 @@ foreach my $filename ( @$ls ) {
 
     my @keys = keys %dbhash;
 
+    #skip blank records
+    next unless grep defined($_), values %dbhash;
+
     $hash{'Status-Type'} = $status_type{ $hash{'Status-Type'} }
       if exists $status_type{ $hash{'Status-Type'} };
 
@@ -166,8 +171,8 @@ foreach my $filename ( @$ls ) {
 
       $dbhash{'AcctStartTime'} = $hash{'Date'};
 
-      $sql = 'INSERT INTO radacct ( ', join(',', @keys).
-             ' ) VALUES ( '. map( ' ? ', @keys ). ' )';
+      $sql = 'INSERT INTO radacct ( '. join(',', @keys).
+             ' ) VALUES ( '. join(',', map ' ? ', @keys ). ' )';
 
     } elsif ( $hash{'Status-Type'} eq 'Stop' ) {
 
@@ -194,6 +199,7 @@ foreach my $filename ( @$ls ) {
     foreach my $value ( map $dbhash{$_}, @keys ) {
       my $key = shift @keys;
       my $type = exists($bind_type{$key}) ? $bind_type{$key} : SQL_VARCHAR;
+      $value ||= 0 if $type == SQL_INTEGER;
       $sth->bind_param($p_num++, $value, $type);
     }
     foreach my $value ( @extra_values ) {