summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2008-03-13 08:57:41 +0000
committerivan <ivan>2008-03-13 08:57:41 +0000
commit188c20600560139fc40811c6538a18109c050f95 (patch)
treeb705dc05407786d6538eaab22978108183928b8f
parent99037cf94d9d6b5d7c1e512a6dca842706851710 (diff)
allow cust_pay.otaker upgrade to proceed even if there are some old crufty records around attached to now-deleted customers
-rw-r--r--FS/FS/cust_pay.pm12
1 files changed, 11 insertions, 1 deletions
diff --git a/FS/FS/cust_pay.pm b/FS/FS/cust_pay.pm
index acb284429..de14610d6 100644
--- a/FS/FS/cust_pay.pm
+++ b/FS/FS/cust_pay.pm
@@ -673,7 +673,9 @@ sub _upgrade_data { #class method
#not the most efficient, but hey, it only has to run once
- my $where = "WHERE otaker IS NULL OR otaker = '' OR otaker = 'ivan' ";
+ my $where = "WHERE ( otaker IS NULL OR otaker = '' OR otaker = 'ivan' ) ".
+ " AND 0 < ( SELECT COUNT(*) FROM cust_main ".
+ " WHERE cust_main.custnum = cust_pay.custnum ) ";
my $count_sql = "SELECT COUNT(*) FROM cust_pay $where";
@@ -705,7 +707,15 @@ 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;
+
$FS::payby::hash{'COMP'}->{cust_pay} = ''; #restore it
$count++;