From: Ivan Kohler Date: Wed, 25 Jan 2017 19:26:49 +0000 (-0800) Subject: fix encryption upgrades when a payment is refunded, then deleted. RT#74270, RT#73085 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=61bd7e302ca504d1321981a51f389fa01d5a5187 fix encryption upgrades when a payment is refunded, then deleted. RT#74270, RT#73085 --- diff --git a/FS/FS/cust_refund.pm b/FS/FS/cust_refund.pm index 4affb151a..44d4d97d6 100644 --- a/FS/FS/cust_refund.pm +++ b/FS/FS/cust_refund.pm @@ -515,6 +515,19 @@ sub reason { ( $self->addlinfo ? ' '.$self->addlinfo : '' ); } +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) = @_;