[freeside-commits] branch FREESIDE_3_BRANCH updated. ed4d5fe0311a21c687083e1edca5ef36b9dbb049

Mark Wells mark at 420.am
Wed May 7 23:35:34 PDT 2014


The branch, FREESIDE_3_BRANCH has been updated
       via  ed4d5fe0311a21c687083e1edca5ef36b9dbb049 (commit)
      from  abae41e9c876ad16fb8b82049583e960daa641ed (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 ed4d5fe0311a21c687083e1edca5ef36b9dbb049
Author: Mark Wells <mark at freeside.biz>
Date:   Wed May 7 23:34:54 2014 -0700

    run time-consuming cust_pay upgrade from the job queue, #29017

diff --git a/FS/FS/cust_pay.pm b/FS/FS/cust_pay.pm
index 26d46dc..7b68ae2 100644
--- a/FS/FS/cust_pay.pm
+++ b/FS/FS/cust_pay.pm
@@ -933,7 +933,7 @@ sub unapplied_sql {
 use FS::h_cust_pay;
 
 sub _upgrade_data {  #class method
-  my ($class, %opts) = @_;
+  my ($class, %opt) = @_;
 
   warn "$me upgrading $class\n" if $DEBUG;
 
@@ -1047,9 +1047,33 @@ sub _upgrade_data {  #class method
   ###
 
   delete $FS::payby::hash{'COMP'}->{cust_pay}; #quelle kludge
-  $class->_upgrade_otaker(%opts);
+  $class->_upgrade_otaker(%opt);
   $FS::payby::hash{'COMP'}->{cust_pay} = ''; #restore it
 
+  # if we do this anywhere else, it should become an FS::Upgrade method
+  my $num_to_upgrade = $class->count('paybatch is not null');
+  my $num_jobs = FS::queue->count('job = \'FS::cust_pay::process_upgrade_paybatch\' and status != \'failed\'');
+  if ( $num_to_upgrade > 0 ) {
+    warn "Need to migrate paybatch field in $num_to_upgrade payments.\n";
+    if ( $opt{queue} ) {
+      if ( $num_jobs > 0 ) {
+        warn "Upgrade already queued.\n";
+      } else {
+        warn "Scheduling upgrade.\n";
+        my $job = FS::queue->new({ job => 'FS::cust_pay::process_upgrade_paybatch' });
+        $job->insert;
+      }
+    } else {
+      process_upgrade_paybatch();
+    }
+  }
+}
+
+sub process_upgrade_paybatch {
+  my $dbh = dbh;
+  local $FS::payinfo_Mixin::ignore_masked_payinfo = 1;
+  local $FS::UID::AutoCommit = 1;
+
   ###
   # migrate batchnums from the misused 'paybatch' field to 'batchnum'
   ###

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

Summary of changes:
 FS/FS/cust_pay.pm |   28 ++++++++++++++++++++++++++--
 1 files changed, 26 insertions(+), 2 deletions(-)




More information about the freeside-commits mailing list