From: Ivan Kohler Date: Sat, 18 Feb 2017 22:21:03 +0000 (-0800) Subject: fix 4.x upgrades when an invoice with a discount was deleted instead of voided, RT... X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=717ed956e64cfc10f1e78e67b6c82dfcf212a18d fix 4.x upgrades when an invoice with a discount was deleted instead of voided, RT#74611 --- 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