diff options
author | Ivan Kohler <ivan@freeside.biz> | 2017-03-09 12:53:28 -0800 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2017-03-09 12:53:28 -0800 |
commit | 63aca7680cca3df7f0b2e84d75fefd1912e009ec (patch) | |
tree | 22eb3a78b8a92579d2979e28a261c6d7abd5b10a | |
parent | 5eb48cca81177ae5336fd014808eefe5cc75c8f4 (diff) |
fix upgrade for cust_bill_pay_batch when a batched payment was deleted by legacy code in the past, RT#75089
-rw-r--r-- | FS/FS/Upgrade.pm | 1 | ||||
-rw-r--r-- | FS/FS/cust_bill_pay_batch.pm | 19 |
2 files changed, 20 insertions, 0 deletions
diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm index cf3e81e..19e084a 100644 --- a/FS/FS/Upgrade.pm +++ b/FS/FS/Upgrade.pm @@ -574,6 +574,7 @@ sub upgrade_schema_data { 'pkg_referral' => [], 'cust_bill_pkg_discount' => [], 'cust_msg' => [], + 'cust_bill_pay_batch' => [], #update records referencing removed things with their FKs 'cust_pkg' => [], ; diff --git a/FS/FS/cust_bill_pay_batch.pm b/FS/FS/cust_bill_pay_batch.pm index 8a8bef3..a9d07d3 100644 --- a/FS/FS/cust_bill_pay_batch.pm +++ b/FS/FS/cust_bill_pay_batch.pm @@ -2,6 +2,7 @@ package FS::cust_bill_pay_batch; use base qw( FS::Record ); use strict; +use FS::Record qw( dbh ); =head1 NAME @@ -103,6 +104,24 @@ sub check { =back +=cut + + +sub _upgrade_schema { + my ($class, %opts) = @_; + + my $sql = ' + DELETE FROM cust_bill_pay_batch WHERE NOT EXISTS + ( SELECT 1 FROM cust_pay_batch WHERE cust_pay_batch.paybatchnum = cust_bill_pay_batch.paybatchnum ) + '; + + my $sth = dbh->prepare($sql) or die dbh->errstr; + $sth->execute or die $sth->errstr; + ''; + +} + + =head1 BUGS Just hangs there. |