[freeside-commits] freeside/FS/FS pay_batch.pm,1.15.2.4,1.15.2.5

Mark Wells mark at wavetail.420.am
Tue Jun 15 19:19:27 PDT 2010


Update of /home/cvs/cvsroot/freeside/FS/FS
In directory wavetail.420.am:/tmp/cvs-serv28360/FS/FS

Modified Files:
      Tag: FREESIDE_1_9_BRANCH
	pay_batch.pm 
Log Message:
RT#5683: payment batch upload uses job queue and progressbar

Index: pay_batch.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/pay_batch.pm,v
retrieving revision 1.15.2.4
retrieving revision 1.15.2.5
diff -u -w -d -r1.15.2.4 -r1.15.2.5
--- pay_batch.pm	10 Feb 2010 02:13:01 -0000	1.15.2.4
+++ pay_batch.pm	16 Jun 2010 02:19:24 -0000	1.15.2.5
@@ -195,6 +195,9 @@
   my $info = $import_info{$format}
     or die "unknown format $format";
 
+  my $job = $param->{'job'};
+  $job->update_statustext(0) if $job;
+
   my $filetype            = $info->{'filetype'};      # CSV or fixed
   my @fields              = @{ $info->{'fields'}};
   my $formatre            = $info->{'formatre'};      # for fixed
@@ -286,7 +289,12 @@
     }
   }
 
+  my $num = 0;
   foreach (@all_values) {
+    if($job) {
+      $num++;
+      $job->update_statustext(int(100 * $num/scalar(@all_values)));
+    }
     my @values = @$_;
 
     my %hash;
@@ -404,6 +412,29 @@
 
 }
 
+use MIME::Base64;
+use Storable 'thaw';
+use Data::Dumper;
+sub process_import_results {
+  my $job = shift;
+  my $param = thaw(decode_base64(shift));
+  $param->{'job'} = $job;
+  warn Dumper($param) if $DEBUG;
+  my $batchnum = delete $param->{'batchnum'} or die "no batchnum specified\n";
+  my $batch = FS::pay_batch->by_key($batchnum) or die "batchnum '$batchnum' not found\n";
+
+  my $file = $param->{'uploaded_files'} or die "no files provided\n";
+  $file =~ s/^(\w+):([\.\w]+)$/$2/;
+  my $dir = '%%%FREESIDE_CACHE%%%/cache.' . $FS::UID::datasrc;
+  open( $param->{'filehandle'}, 
+        '<',
+        "$dir/$file" )
+      or die "unable to open '$file'.\n";
+  my $error = $batch->import_results($param);
+  unlink $file;
+  die $error if $error;
+}
+
 # Formerly httemplate/misc/download-batch.cgi
 sub export_batch {
   my $self = shift;



More information about the freeside-commits mailing list