[freeside-commits] branch FREESIDE_4_BRANCH updated. 59320822a090d7fab5caa7aff39c98d07fc15ea3

Ivan ivan at 420.am
Tue Mar 21 06:19:36 PDT 2017


The branch, FREESIDE_4_BRANCH has been updated
       via  59320822a090d7fab5caa7aff39c98d07fc15ea3 (commit)
      from  6bbf2c9748aaf75e7609bf4a14dcb411eed8cf81 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 59320822a090d7fab5caa7aff39c98d07fc15ea3
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Tue Mar 21 06:19:35 2017 -0700

    fix upgrade for dangling cust_main_invoice, RT#75271

diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm
index 3a99cd3..5528906 100644
--- a/FS/FS/Upgrade.pm
+++ b/FS/FS/Upgrade.pm
@@ -581,6 +581,7 @@ sub upgrade_schema_data {
     'cust_event_fee' => [],
     'radius_attr' => [],
     'queue_depend' => [],
+    'cust_main_invoice' => [],
     #update records referencing removed things with their FKs
     'cust_pkg' => [],
   ;
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

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Upgrade.pm           |    1 +
 FS/FS/cust_main_invoice.pm |   18 +++++++++++++++++-
 2 files changed, 18 insertions(+), 1 deletion(-)




More information about the freeside-commits mailing list