summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-01-25 11:26:46 -0800
committerIvan Kohler <ivan@freeside.biz>2017-01-25 11:26:46 -0800
commit3653b9063c8114a1977234bd0957593009c5d577 (patch)
treee1493e9b92e9b2abe21787d4b3c0f145d047aa94
parent71df2acf44b4f4c87b52195465f6403e4c7419d2 (diff)
fix encryption upgrades when a payment is refunded, then deleted. RT#74270, RT#73085
-rw-r--r--FS/FS/cust_refund.pm13
1 files changed, 13 insertions, 0 deletions
diff --git a/FS/FS/cust_refund.pm b/FS/FS/cust_refund.pm
index 12ab0d693..2d5b3aaae 100644
--- a/FS/FS/cust_refund.pm
+++ b/FS/FS/cust_refund.pm
@@ -472,6 +472,19 @@ sub unapplied_sql {
}
+sub _upgrade_schema {
+ #my ($class, %opts) = @_;
+
+ my $sql = 'UPDATE cust_refund SET source_paynum = NULL
+ WHERE source_paynum IS NOT NULL
+ AND NOT EXISTS ( SELECT 1 FROM cust_pay
+ WHERE paynum = cust_refund.source_paynum )
+ ';
+ my $sth = dbh->prepare($sql) or die dbh->errstr;
+ $sth->execute or die $sth->errstr;
+ '';
+}
+
# Used by FS::Upgrade to migrate to a new database.
sub _upgrade_data { # class method
my ($class, %opts) = @_;