diff options
author | Ivan Kohler <ivan@freeside.biz> | 2017-02-18 14:21:03 -0800 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2017-02-18 14:21:03 -0800 |
commit | 717ed956e64cfc10f1e78e67b6c82dfcf212a18d (patch) | |
tree | c276ff86845aeddf3b5473e3ebe25d4ebaffc1be | |
parent | d500b4af779a13e2fc862637fe67fe9394d5f286 (diff) |
fix 4.x upgrades when an invoice with a discount was deleted instead of voided, RT#74611
-rw-r--r-- | FS/FS/cust_bill_pkg_discount.pm | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/FS/FS/cust_bill_pkg_discount.pm b/FS/FS/cust_bill_pkg_discount.pm index 616657a4f..2a638a90e 100644 --- a/FS/FS/cust_bill_pkg_discount.pm +++ b/FS/FS/cust_bill_pkg_discount.pm @@ -2,6 +2,7 @@ package FS::cust_bill_pkg_discount; use base qw( FS::cust_main_Mixin FS::Record ); use strict; +use FS::Record qw( dbh ); =head1 NAME @@ -185,6 +186,19 @@ sub description { return $desc; } +sub _upgrade_schema { + my ($class, %opts) = @_; + + my $sql = ' + DELETE FROM cust_bill_pkg_discount WHERE NOT EXISTS + ( SELECT 1 FROM cust_bill_pkg WHERE cust_bill_pkg.billpkgnum = cust_bill_pkg_discount.billpkgnum ) + '; + + my $sth = dbh->prepare($sql) or die dbh->errstr; + $sth->execute or die $sth->errstr; + ''; +} + =back =head1 BUGS |