[freeside-commits] branch master updated. e6796fcb87b17c937eacfacacd933da7bc5f0996

Mark Wells mark at 420.am
Tue Aug 25 01:41:18 PDT 2015


The branch, master has been updated
       via  e6796fcb87b17c937eacfacacd933da7bc5f0996 (commit)
      from  33b89d345f9f3f687c958056aeb85471f7f4c8f5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit e6796fcb87b17c937eacfacacd933da7bc5f0996
Author: Mark Wells <mark at freeside.biz>
Date:   Tue Aug 25 01:40:21 2015 -0700

    RBC download script: option to avoid closing the batch, #35228

diff --git a/FS/FS/pay_batch.pm b/FS/FS/pay_batch.pm
index df969a0..2a522b4 100644
--- a/FS/FS/pay_batch.pm
+++ b/FS/FS/pay_batch.pm
@@ -222,6 +222,8 @@ I<format> - an L<FS::pay_batch> module
 I<gateway> - an L<FS::payment_gateway> object for a batch gateway.  This 
 takes precedence over I<format>.
 
+I<no_close> - do not try to close batches
+
 Supported format keys (defined in the specified FS::pay_batch module) are:
 
 I<filetype> - required, can be CSV, fixed, variable, XML
@@ -456,26 +458,28 @@ sub import_results {
   } # foreach (@all_values)
 
   # decide whether to close batches that had payments posted
-  foreach my $batchnum (keys %target_batches) {
-    my $pay_batch = FS::pay_batch->by_key($batchnum);
-    my $close = 1;
-    if ( defined($close_condition) ) {
-      # Allow the module to decide whether to close the batch.
-      # $close_condition can also die() to abort the whole import.
-      $close = eval { $close_condition->($pay_batch) };
-      if ( $@ ) {
-        $dbh->rollback;
-        die $@;
+  if ( !$param->{no_close} ) {
+    foreach my $batchnum (keys %target_batches) {
+      my $pay_batch = FS::pay_batch->by_key($batchnum);
+      my $close = 1;
+      if ( defined($close_condition) ) {
+        # Allow the module to decide whether to close the batch.
+        # $close_condition can also die() to abort the whole import.
+        $close = eval { $close_condition->($pay_batch) };
+        if ( $@ ) {
+          $dbh->rollback;
+          die $@;
+        }
       }
-    }
-    if ( $close ) {
-      my $error = $pay_batch->set_status('R');
-      if ( $error ) {
-        $dbh->rollback if $oldAutoCommit;
-        return $error;
+      if ( $close ) {
+        my $error = $pay_batch->set_status('R');
+        if ( $error ) {
+          $dbh->rollback if $oldAutoCommit;
+          return $error;
+        }
       }
-    }
-  }
+    } # foreach $batchnum
+  } # if (!$param->{no_close})
 
   $dbh->commit or die $dbh->errstr if $oldAutoCommit;
   '';
diff --git a/FS/bin/freeside-rbc-download b/FS/bin/freeside-rbc-download
index 376b839..3f692fa 100755
--- a/FS/bin/freeside-rbc-download
+++ b/FS/bin/freeside-rbc-download
@@ -10,13 +10,13 @@ use FS::Record qw(qsearch qsearchs);
 use FS::pay_batch;
 use FS::Conf;
 
-use vars qw( $opt_v $opt_a $opt_f );
-getopts('va:f:');
+use vars qw( $opt_v $opt_a $opt_f $opt_n );
+getopts('va:f:n');
 
 #$Net::SFTP::Foreign::debug = -1;
 sub usage { "
   Usage:
-      freeside-rbc-download [ -v ] [ -a archivedir ] [ -f filename ] user\n
+      freeside-rbc-download [ -v ] [ -n ] [ -a archivedir ] [ -f filename ] user\n
 " }
 
 sub debug {
@@ -102,6 +102,7 @@ for my $dir ( $ftp->nlst ) {
     my $error = FS::pay_batch->import_results(
       filehandle  => $fh,
       format      => 'RBC',
+      no_close    => ($opt_n ? 1 : 0),
     );
 
     if ( $error ) {
@@ -146,6 +147,8 @@ matching the pattern. This can be used to reprocess a specific file.
 
 -a directory: Archive the files in the specified directory.
 
+-n: Do not try to close batches after applying results.
+
 user: freeside username
 
 =head1 BUGS

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/pay_batch.pm           |   40 ++++++++++++++++++++++------------------
 FS/bin/freeside-rbc-download |    9 ++++++---
 2 files changed, 28 insertions(+), 21 deletions(-)




More information about the freeside-commits mailing list