summaryrefslogtreecommitdiff
path: root/FS/FS/cust_main_invoice.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-03-21 06:19:33 -0700
committerIvan Kohler <ivan@freeside.biz>2017-03-21 06:19:33 -0700
commit0fff8be254172452fabeef67f8136127466ab34b (patch)
treee03185001f48a7b29e50874b23f814616be4d37f /FS/FS/cust_main_invoice.pm
parent247a72232486b809bd0f0d88f3506dc0a1e79d93 (diff)
fix upgrade for dangling cust_main_invoice, RT#75271
Diffstat (limited to 'FS/FS/cust_main_invoice.pm')
-rw-r--r--FS/FS/cust_main_invoice.pm18
1 files changed, 17 insertions, 1 deletions
diff --git a/FS/FS/cust_main_invoice.pm b/FS/FS/cust_main_invoice.pm
index 6c155ac..31a07bc 100644
--- a/FS/FS/cust_main_invoice.pm
+++ b/FS/FS/cust_main_invoice.pm
@@ -2,7 +2,7 @@ package FS::cust_main_invoice;
use base qw( FS::Record );
use strict;
-use FS::Record qw( qsearchs );
+use FS::Record qw( qsearchs dbh );
use FS::Conf;
use FS::svc_acct;
use FS::Msgcat qw(gettext);
@@ -167,6 +167,22 @@ Returns the parent customer object (see L<FS::cust_main>).
=back
+=cut
+
+sub _upgrade_schema {
+ my ($class, %opts) = @_;
+
+ # delete records where custnum points to a nonexistent customer
+ my $sql = 'DELETE FROM cust_main_invoice
+ WHERE NOT EXISTS (
+ SELECT 1 FROM cust_main WHERE cust_main.custnum = cust_main_invoice.custnum
+ )';
+ my $sth = dbh->prepare($sql) or die dbh->errstr;
+ $sth->execute or die $sth->errstr;
+
+ '';
+}
+
=head1 BUGS
=head1 SEE ALSO