shorter names and rearranged weights for a brighter tommorow^W^Wbetter price plan...
[freeside.git] / FS / FS / cust_pay.pm
index de14610..ab81133 100644 (file)
@@ -687,19 +687,19 @@ sub _upgrade_data {  #class method
 
   my $count = 0;
   my $lastprog = 0;
-  while (1) {
 
-    my $cust_pay = qsearchs( {
+  my @cust_pay = qsearch( {
       'table'     => 'cust_pay',
       'hashref'   => {},
       'extra_sql' => $where,
-      'order_by'  => 'ORDER BY paynum LIMIT 1',
-    } );
+      'order_by'  => 'ORDER BY paynum',
+  } );
 
-    return unless $cust_pay;
+  foreach my $cust_pay (@cust_pay) {
 
     my $h_cust_pay = $cust_pay->h_search('insert');
     if ( $h_cust_pay ) {
+      next if $cust_pay->otaker eq $h_cust_pay->history_user;
       $cust_pay->otaker($h_cust_pay->history_user);
     } else {
       $cust_pay->otaker('legacy');
@@ -708,13 +708,11 @@ sub _upgrade_data {  #class method
     delete $FS::payby::hash{'COMP'}->{cust_pay}; #quelle kludge
     my $error = $cust_pay->replace;
 
-    #infinite...
-    #if ( $error ) {
-    #  warn " *** WARNING: Error updaating order taker for payment paynum".
-    #       $cust_pay->paynun. ": $error\n";
-    #  next;
-    #}
-    die $error if $error;
+    if ( $error ) {
+      warn " *** WARNING: Error updaating order taker for payment paynum".
+           $cust_pay->paynun. ": $error\n";
+      next;
+    }
 
     $FS::payby::hash{'COMP'}->{cust_pay} = ''; #restore it