summaryrefslogtreecommitdiff
path: root/FS/FS/cust_pay_pending.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-03-10 12:02:33 -0800
committerIvan Kohler <ivan@freeside.biz>2017-03-10 12:02:33 -0800
commit1115cbfe4ba825c46be63a46bd2b5c34e910eab1 (patch)
tree2c09603a4685e9181fe2d0a3cd692ca8b23b5090 /FS/FS/cust_pay_pending.pm
parent65cb2bea6e8e93e268d45b523efe1a6666c521f6 (diff)
fix upgrade of cust_pay_pending for deleted customers, RT#75118
Diffstat (limited to 'FS/FS/cust_pay_pending.pm')
-rw-r--r--FS/FS/cust_pay_pending.pm10
1 files changed, 10 insertions, 0 deletions
diff --git a/FS/FS/cust_pay_pending.pm b/FS/FS/cust_pay_pending.pm
index d108341..8f313f4 100644
--- a/FS/FS/cust_pay_pending.pm
+++ b/FS/FS/cust_pay_pending.pm
@@ -504,6 +504,16 @@ sub _upgrade_schema {
)';
my $sth = dbh->prepare($sql) or die dbh->errstr;
$sth->execute or die $sth->errstr;
+
+ # fix records where custnum points to a nonexistent customer
+ $sql = 'UPDATE cust_pay_pending SET custnum = NULL
+ WHERE NOT EXISTS (
+ SELECT 1 FROM cust_main WHERE cust_main.custnum = cust_pay_pending.custnum
+ )';
+ $sth = dbh->prepare($sql) or die dbh->errstr;
+ $sth->execute or die $sth->errstr;
+
+
'';
}